[petsc-users] PetscSF leaf ordering behaviour

Nicholas Arnold-Medabalimi narnoldm at umich.edu
Wed Aug 10 20:59:52 CDT 2022


Hi

I have been working on writing an output of a DMPlex object to interface
with an existing code that has some strict requirements. I need each
process to output its partition vertices and cell map but also note the
point number of the cell on the adjacent processor for the boundary faces.

I have two different setups I'm pursuing with different challenges.

1) The DMPlex is distributed with an overlap of 0. This makes the vertex
output trivial as only I don't need to worry about the halo vertices.
However, to get the cell from the other processor, I have to check the star
forest on both processors, figure out the face on the sending processor,
then grab its support cell and trade it with the host processor.

*If I continue on this path I'd say the question would be, is there an
easier way to get the support cell from the adjacent processor when you
don't have an overlap?*

Right now, what I am doing is getting the RootRanks of the DM SF and the
inverse of this SF. I do this because with an overlap of 0, the root
dependency only goes one way on the boundaries, and I need to have the
cells on each side sent to the opposite processor.


2) The DMPlex has an overlap of 1. This makes grabbing the neighboring cell
local point value trivial roots using the support of the faces combined
with the SF. But the issue is now outputting only the vertices of the
process without messing up the cell maps.

*The question here is how are the vertices in the DMPlex organized by
default?* I have noticed that the leaf vertices are always at the end of
the DMPlex stratum.* Is this a guaranteed behavior and then within the leaf
cells when there is an overlap are they organized in any set way? *I'm
hoping that for each layer of overlap those leaves are appended. That way I
can just take the vertices up until the first halo of vertices. Otherwise,
I would search through the list to check if they are in the core partition
and output them, and then account for any removed vertex in the cell maps.

I appreciate the input and help.

Sincerely
Nicholas



-- 
Nicholas Arnold-Medabalimi

Ph.D. Candidate
Computational Aeroscience Lab
University of Michigan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220810/d8694c03/attachment.html>


More information about the petsc-users mailing list