I might be able to answer myself.

in the $Nodes section, the mid-face nodes are included with dimension 2 a.k.a 
faces; e.g. the ninth node

2 6 0 1 <-- 2 is the element dimension, 6 is the tag
9
0.5 0.5 1.0

So when creating groups for the surfaces, these nodes are also included into 
their own physical groups, which PETSc adds into Vertex Sets.

I don't quite get why these nodes have dimension 2, but that's probably a 
gmsh-related question.

On Thursday, June 12th, 2025 at 7:08 PM, Noam T. <dontbugthed...@proton.me> 
wrote:

> Hello,
>
> In the mesh attached, a 1x1x1 cube with 8 nodes, physical groups are defined 
> for the 6 bounding faces only. According to the GUI, and looking at the MSH 
> file in $Entities, there are no physical groups for nodes.
>
> Using the following code:
>
> ---
> #include <stdio.h>
> #include <petscdmplex.h>
>
> int main(int argc, char *argv[]) {
>
> DM dm;
> PetscInt v;
>
> PetscCall(PetscInitialize(&argc, &argv, NULL, NULL));
>
> PetscCall(PetscOptionsInsertString(NULL, " -dm_plex_gmsh_mark_vertices "));
> PetscCall(DMPlexCreateFromFile(PETSC_COMM_WORLD, "mesh.msh", "test", 
> PETSC_TRUE, &dm));
> PetscCall(DMGetLabelSize(dm, "Vertex Sets", &v));
> printf("\nVertex set size %d\n", v);
>
> PetscCall(PetscFinalize());
> }
> ---
> it says "Vertex Sets" has size 6, with IS [1, 2, 3, 4, 5, 6]. Is that 
> intended behavior? Up until now I relied on having an empty set whenever 
> physical tags where not explicitly defined, but this one mesh seems to be an 
> exception.
>
> Thanks.
>
> Noam
>
> PS: The size is v = 0 when removing the flag "-dm_plex_gmsh_mark_vertices".

Reply via email to