Research Article

Generating Multibillion Element Unstructured Meshes on Distributed Memory Parallel Machines

Algorithm 1

PMSH parallel mesh generation algorithm.
() On all processors   do
() Load geometry
() Generate coarse surface mesh for
() Generate coarse volume mesh
() Partition the coarse volume mesh into parts ,
() Extract coarse surface mesh faces for all partitions
() Construct surface mesh from
() Perform -level refinement of surface mesh to get fine surface mesh and record barycentric global IDs of each
  newly created vertex
() Project new surface vertices in to the geometric boundary
()   Compute partition boundary vertex adjacencies to adjacent processors by using a map that uses barycentric global IDs
  as keys
()   Generate fine volume mesh from the fine surface mesh
()   Compute owners of partition boundary vertices held by adjacent processors (called holders)
()   Compute global integer IDs of owned vertices
()   Inform global integer IDs of the owned vertices to the holder processors by using barycentric global IDs as keys
  to locate the corresponding vertices on adjacent holder processors
()   Output fine volume mesh in OpenFOAM format
() enddo