Greetings. I am having trouble exporting a vertex-based solution field to ParaView when I run my PETSc script in parallel (see screenshots). The smoothly changing field is produced by my serial runs whereas the "messed up" one is produced by my parallel runs. This is not a calculation bug, rather, it concerns the vtk output only (the solution field is the same in parallel and serial). I am using DMPlexVTKWriteAll() but will make the switch to hdf5 sometime.
Anyways, my suspicion is about PetscSection and how I am setting it up. I call PetscSectionSetChart() where my "pStart" and "pEnd" I collect from DMPlexGetDepthStratum() where "depth" is set to zero (for vertices) and then I call DMSetLocalSection(). After tinkering with DMPlex routines, I realize that DMPlexGetDepthStratum() returns "pStart" and "pEnd" in local numbering when the run is in parallel. Thus, I think that my serial output is correct because in that case local numbering matches the global numbering. So, am I correct in believing that the PetscSectionSetChart() call should be done with global numbering? Also, I noticed that the parallel DMPlex counts ghost vertices towards the "pStart" and "pEnd". So, when I set the chart in the local PetscSection, should I figure out the chart for the owned vertices or can PETSc figure the ghost/owned dilemma when the local PetscSections feature overlapping charts? Sincerely: J.A. Ferrand Embry-Riddle Aeronautical University - Daytona Beach FL M.Sc. Aerospace Engineering | May 2022 B.Sc. Aerospace Engineering B.Sc. Computational Mathematics Sigma Gamma Tau Tau Beta Pi Phone: (386)-843-1829 Email(s): [email protected] [email protected]
