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
From: firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac.uk> on behalf of Shrimali, Bhavesh <bshrima2@illinois.edu>
Sent: 07 February 2019 22:48:01
To: firedrake
Subject: [firedrake] Solving BVPs on periodic meshesHello,
Is it possible in firedrake to solve a BVP with periodic BCs on conforming meshes (symmetric nodes on opposite faces in case of a cubic unit cell)? I have a unit cell with random microstructure and a correpsonding periodic mesh at my disposal (generated from Netgen: https://ngsolve.org/) in Gmsh2 (.msh) format.
I am looking for something similar to https://fenicsproject.org/docs/dolfin/1.4.0/python/demo/documented/periodic/python/documentation.html except with the mesh instead of being a plain-unit square (cube) is a unit square (cube) with a bunch of holes inside. Is there a minimal example on how to crete subclasses just like it is done above in dolfin (demo_periodic.py), or otherwise, to illustrate implementation of Periodic BCs?
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake