Dear Bhavesh,
Mesh generation for periodic meshes in Firedrake is somewhat tricky because Firedrake handles periodicity by having a periodic mesh topology with a discontinuous coordinate field supported on that mesh topology. We have some periodic meshes defined in utility_meshes.py but only for squares and intervals. This is because the meshes are generated by meshing circles and tubes by embedding in 2D/3D and then doing surgery on the coordinate field.
There is an example of building the periodic topology directly in OneElementThickMesh, which gets around the fact that this trick doesn't work well if there is only one element in the periodic direction. This builds up the topology using petsc4py. This approach should be possible to build triply periodic domains (but note that we can only support these domains for tetrahedral meshes so you will need to subdivide your cubes into tetrahedra).
all the best
-_Colin
|
Netgen/NGSolve is a high performance multiphysics finite element software. It is widely used to analyze models from solid mechanics, fluid dynamics and electromagnetics.
ngsolve.org
|