An implementation of periodic boundary conditions (PBC) was added with the following characteristics:
The parameter files were modified in order to read from input files in case of PBC. The input parameters should include the boundary pair and the direction of the periodicity. (Rotation at the boundary is not yet implemented.)
A modification of the DealiiExtensions files were added in order to create the vector that contain the periodic information. It basically creates a map (cell, face) -> FacePair. FacePair contains all the information needed (cell, neighbor, face, neighbor_face, orientation) to configure the periodicity.
The claw files were modified adding a configure_periodic_boundary() function which uses the input parameters to add the periodicity to the triangulation and then distribute the dof. The setup_system() function was also modified in order to include "periodic neighbors" in case of PBC, so the limiting can work near and through periodic boundaries.
The assemble_explicit.cc file, which integrates the system with the help of MeshWorker, includes a boundary condition check at the integrate_boundary_term_explicit() function. When the boundary is periodic, it uses the "periodic neighbor" information to calculate the numerical fluxes instead of reading a predefine set of values.
An implementation of periodic boundary conditions (PBC) was added with the following characteristics: