[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