Hi Jed! I have been thinking about this and I think more correct would be not to create the label with an empty name. It is not all or nothing kind of a deal. Some side sets may have a name, some may not.
What I sent is probably more convenient, since after loading the mesh there is either a label with a name or with an ID which can be easily grabbed and passed into `PetscDSAddBoundary`. However, I agree that assigning the name with an ID like this is specific to an application. I can send a patch that will prevent the creation of a label with an empty name if you think this is what should be happening instead. — David > On Jun 25, 2022, at 22:54, Jed Brown <[email protected]> wrote: > > Do you think this is more correct than just using "Face Sets", which gives > you a numbered index? > > There is curently some inconsistency between file formats in whether various > sets show up as stand-alone labels or values under Face Sets. And there's > this lingering issue to have a way to name Face Sets (and Cell Sets). > > https://gitlab.com/petsc/petsc/-/issues/689 > > The issue is that if we just make named labels, there's no good way to do > structured traversal (handle all Face Sets) and one also has to be careful to > avoid namespace collisions between application sets and sets created by the > mesh. > > David Andrs <[email protected]> writes: > >> Hello! >> >> The current behavior in DMPlexCreateExodus is assuming that side sets are >> always named. However, that is not always true. If there are unnamed side >> sets in an ExodusII file, the created DM will contain a label with an empty >> name (“”) with as many stratas as there are side sets. See the sample output >> from DMView below: >> >> Labels: >> celltype: 3 strata with value/size (0 (138900), 4 (125514), 1 (265620)) >> depth: 3 strata with value/size (0 (138900), 1 (265620), 2 (125514)) >> Cell Sets: 4 strata with value/size (1 (57888), 2 (57888), 4 (1824), 5 >> (7914)) >> Face Sets: 6 strata with value/size (1000 (28944), 1001 (28944), 1003 >> (28944), 1005 (15144), 1100 (120), 1200 (120)) >> : 6 strata with value/size (1000 (28944), 1001 (28944), 1003 (28944), 1005 >> (15144), 1100 (120), 1200 (120)) >> >> The attached patch fixes the behavior and names the side sets according to >> their IDs if there is no name associated with it in the ExodusII file. See >> the modified behavior below: >> >> Labels: >> celltype: 3 strata with value/size (0 (138900), 4 (125514), 1 (265620)) >> depth: 3 strata with value/size (0 (138900), 1 (265620), 2 (125514)) >> Cell Sets: 4 strata with value/size (1 (57888), 2 (57888), 4 (1824), 5 >> (7914)) >> Face Sets: 6 strata with value/size (1000 (28944), 1001 (28944), 1003 >> (28944), 1005 (15144), 1100 (120), 1200 (120)) >> 1000: 1 strata with value/size (1000 (28944)) >> 1001: 1 strata with value/size (1001 (28944)) >> 1003: 1 strata with value/size (1003 (28944)) >> 1005: 1 strata with value/size (1005 (15144)) >> 1100: 1 strata with value/size (1100 (120)) >> 1200: 1 strata with value/size (1200 (120)) >> >> The patch is against 3.17.0, but is seems it should apply cleanly on 3.17.2. >> >> With regards, >> >> David Andrs
