[Gmsh] Partitioned mesh format
Martin Vymazal
martin.vymazal at vki.ac.be
Fri Jun 22 14:00:04 CEST 2012
Dear Gmsh developers,
I'm trying to understand the partitioned format of gmsh. I meshed a square
with triangles and partitioned it with the gui of gmsh using parmetis with
default settings. I have 4 partitions, bounded by 4 lines with elementary tags
1-4 (perimeter of the square) and by 5 more lines with elementary tags
(-1,-2,-3,-4,-5) which separate the partitions. Looking at the '$Elements'
section, I have entries (for triangles) such as:
461 2 5 0 1 2 3 -4 106 328 202
The triangle belongs to 2 partitions: 3 and 4. Unfortunately, I don't
understand the explanation 'negative partition ids indicate ghost cells' from
the reference manual. Which nodes of the triangle belong to partition 3/4 and
which of them are 'owned' by the triangle? Does it mean that the neighbour of
triangle 461 is some element in partition 4?
Strangely, no triangle in the elements section lists -5 among their tags.
There's only one single edge (element type 1) with elementary tag -5 in the
whole mesh.
When a solver reads the mesh in parallel (multiple processes read the file at
the same time, each of them only its own partition), the elements whose nodes
are on partition boundaries (and are possibly marked as ghost nodes) do not
know directly from the mesh file which element in the neighbouring partition
owns those nodes - which means that some extra searching and parallel
communication is necessary to obtain this information. Is that correct?
I'm not sure I understand this. Could someone please suggest an efficient way
for parallel reading of a partitioned *.msh file? Can gmsh export to some
other format which is more suitable for this?
Thank you very much.
Martin Vymazal