Skip to content

Parmmg distributed library examples

luca edited this page Jul 27, 2020 · 4 revisions

You can find examples of the use of the ParMmg library with a distributed input mesh (i.e. with an input mesh already partitioned on multiple processes) in the libexamples/adaptation_example0/parallel_IO subfolder. These examples are intended to introduce the typical library usage that could be done by a third-party, parallel computational mechanics solver. Basically:

  1. To set the mesh,
  2. to perform parallel remeshing, and
  3. to recover the adapted mesh

through the Parmmg API functions.

The provided test cases differ in the way the input mesh is set:

  • libexamples/adaptation_example0/parallel_IO/manual_IO/main.c shows how to set a distributed input mesh which is predefined on each process, and remesh it. Go to the detailed tutorial here.
  • libexamples/adaptation_example0/parallel_IO/external_IO/main.c shows how to load and set a mesh from distributed input files, and remesh it (the companion gen_distributedMesh.c allows to load and partition a centralized input mesh, and save it on file).
  • (Advanced usage) libexamples/adaptation_example0/parallel_IO/automatic_IO/main.c provides a bit more of generality, by calling Parmmg two times to: 1) load a centralized mesh and distribute it, and 2) set the distributed entities through the API functions and remesh in parallel.