How to generate large unstructured mesh in parallel

Hi,

I am trying to generate a very large mesh for a highly resolved simulation in FEniCS. I ran out of memory while generating the mesh in serial using gmsh. I do have access to my university’s cluster and I am wondering if there’s a way to create an unstructured mesh for FEniCS simulations in parallel using MPI?

Hi,

I think Gmsh can be compiled from source on your cluster. See this. Many other open source mesh generators support mesh refinement in parallel (e.g. Netgen). So you can generate a course mesh in serial and then refine it in parallel.

1 Like

Thank you for the answer. On the link for gmsh compilation, it said in the the ENABLE_MPI option that it is not used for meshing. Does that mean that gmsh can only refine the mesh in parallel?

Gmsh as far as I know has experimental support for parallel meshing. I have never used it so can’t comment on the specifics.

Doing a quick search renders this which suggests that it indeed supports multi-threaded meshing. Also the reference manual states:

  • If your version of Gmsh is compiled with OpenMP support (see Compiling the source code), most of the meshing steps can be performed in parallel:

  • 1D and 2D meshing is parallelized using a coarse-grained approach, i.e. curves (resp. surfaces) are each meshed sequentially, but several curves (resp. surfaces) can be meshed at the same time.

  • 3D meshing using HXT is parallelized using a fine-grained approach, i.e. the actual meshing procedure for a single volume is done is parallel.*

You could ask on Gmsh forum to know more about it