Periodic BC in dolfinx

The issue with periodic BCs is that you have to alter the sparsity pattern and index maps underlying your FunctionSpaces, no matter how simple or complicated those may be. A general framework for enforcing periodic boundary conditions for scalable solution via MPI is not trivial.

dolfinx_mpc is very likely the best option for you; its compilation and installation should be straightforward without root access. The syntax here for the periodic Poisson problem is quite similar to old DOLFIN.

If your domain is not a simple shape, and the periodic boundaries are best defined topologically then dolfinx_mpc is absolutely the way to go as topological searches are available.

And finally: if your periodic boundary’s mesh does not conform on both “sides”, dolfinx_mpc takes care of this for you with linear combinations of the appropriate finite element bases over non-matching elements. Provided your “support” degrees of freedom are as fine or coarser than your “main” degrees of freedom, you should converge at optimal rates.

2 Likes