Dear deal.ii community, first of all, a big thank you for all the effort going into this software.
I am currently developing an application and I stumbled upon implementing periodic boundary conditions for discontinuous Lagrange elements. I found the following thread https://groups.google.com/g/dealii/c/WlOiww5UVxc/m/mtQJDUwiBQAJ In this thread Dr. Arndt explains that when discontinuous elements were used, it made more sense to enforce boundary conditions weakly instead of using strong boundary conditions. In deal.ii this seems to be tantamount to telling the MeshWorker to treat the boundary faces as internal faces without using an additional constraint matrix enforcing the equality of DoFs on the periodic parts of the domain. If I understand correctly the MeshWorker can be informed to treat the boundary faces as internal faces by modifying the triangulation with a call of the function triangulation.add_periodocity(periodicity_vector). Where the periodicity vector is filled by calling the function collect_periodic_faces. I tried this and it works as expected in 1D, but in 2D I get the following error message. > An error occurred in line <1001> of file > </home/schween/.tmp/dealii/src/dealii-9.4.1/include/deal.II/grid/tria_iterator.h> > in function > const Accessor& dealii::TriaRawIterator<Accessor>::operator*() const > [with Accessor = dealii::CellAccessor<2, 2>] > The violated condition was: > Accessor::structure_dimension != Accessor::dimension || state() == > IteratorState::valid > Additional information: > You tried to dereference a cell iterator for which this is not > possible. More information on this iterator: level=-1, index=-1, > state=past_the_end I adapted the step 12 tutorial such that it is easy for you to reproduce the error. I attach the code to this email. Just change the template argument for the parameter dim from 1 to 2 to see for yourself. I should mention the adapted tutorial is not working with a distributed triangulation. In my application I am. So at first I thought, that I was using a wrong filter for the iterator range which I am handing over to mesh_loop function. But since the error persist even when using only one processor, it must be something else. What am I doing wrong? Any help is appreciated. Thank you very much. Regards, Nils -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/87pmadlmn0.fsf%40mpi-hd.mpg.de.
periodic_boundary_step12.cpp
Description: adapted_step12
-- Nils Schween PhD Student Phone: +49 6221 516 557 Mail: nils.schw...@mpi-hd.mpg.de PGP-Key: 4DD3DCC0532EE96DB0C1F8B5368DBFA14CB81849 Max Planck Institute for Nuclear Physics Astrophysical Plasma Theory (APT) Saupfercheckweg 1, D-69117 Heidelberg https://www.mpi-hd.mpg.de/mpi/en/research/scientific-divisions-and-groups/independent-research-groups/apt -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/87pmadlmn0.fsf%40mpi-hd.mpg.de.
smime.p7s
Description: S/MIME cryptographic signature