Hello, 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. Netgen/NGSolve<https://ngsolve.org/> 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 I am looking for something similar to https://fenicsproject.org/docs/dolfin/1.4.0/python/demo/documented/periodic/... 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?
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 meshes Hello, 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. Netgen/NGSolve<https://ngsolve.org/> 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 I am looking for something similar to https://fenicsproject.org/docs/dolfin/1.4.0/python/demo/documented/periodic/... 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?
On Fri, Feb 8, 2019 at 4:34 AM Cotter, Colin J <colin.cotter@imperial.ac.uk> wrote:
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).
I have been thinking about this (while I update the PETSc viz to allow unrolled periodic domains in Paraview). I think you could easily take your mesh, IF the matching vertices on the periodic boundary are marked, and do surgery to connect them into a periodic topology. Localization of coordinates onto the DG space can then be done automatically. Can you mark those vertices in GMsh? Thanks, Matt
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 meshes
Hello,
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. Netgen/NGSolve <https://ngsolve.org/> 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
I am looking for something similar to https://fenicsproject.org/docs/dolfin/1.4.0/python/demo/documented/periodic/... 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
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
participants (3)
- 
                
                Cotter, Colin J
- 
                
                Matthew Knepley
- 
                
                Shrimali, Bhavesh