DMPlexCreateSquareBoundary naively seems to 1. Create topology only on rank 0. 2. Set positions on all ranks.
In particular, if seems to allocate space proportional to the entire number of vertices on every rank: ierr = PetscSectionGetStorageSize(coordSection, &coordSize);CHKERRQ(ierr); ierr = VecCreate(PetscObjectComm((PetscObject)dm), &coordinates);CHKERRQ(ierr); ierr = VecSetSizes(coordinates, coordSize, PETSC_DETERMINE);CHKERRQ(ierr); How does this code work? It's clearly intended to be callable in a parallel context given that it has a !rank conditional, and works as part of various examples, so I'm clearly missing something. Geoffrey
