[petsc-users] DMPlex: a Mapping Array between Natural and Distributed Cell Index
Matthew Knepley
knepley at gmail.com
Thu Jul 14 10:49:13 CDT 2022
On Wed, Jul 13, 2022 at 10:17 PM Bora Jeong <boraj1021 at gmail.com> wrote:
> Dear petsc team,
>
> I am a user of DMPlex for a finite volume code and there is a necessity to
> know global index of each cell. Here the global index means the indexing
> that can be found from a mesh file itself without distribution over
> processors. It seems petsc community denotes this indexing term as
> "natural".
>
> What I want to do is to create a local array (not petsc vector but just an
> array variable in the program) to map distributed cell ID to natual cell
> ID, for example, an array "A";
> A(distributed_node_ID) = natural_node_ID
>
> There are some petsc functions to support mapping between global and
> natural vectors. However, I just need to define the array "A" as above
> example. To achieve this, what is a proper/smart way? In other words, how
> can I extract the natural_cell_ID from a distributed local_cell_ID?
>
> I turned on DMSetUseNatural(DM, PETSC_TRUE) before distribution, but after
> this, defining all the required section and star forest objects to get
> natural and global vectors seems not that direct way for my purpose, which
> is just to extract the above mapping array "A". Can I get any comments
> about it?
>
There is only one thing created, the sfNatural PetscSF object, which you
can get with DMGetNaturalSF(). The roots of this SF are
the global numbers of dofs stored in PETSc vectors, and the leaves are
natural numbers for these dofs. Thus, when we map global
vectors to natural vectors in DMPlexGlobalToNaturalBegin/End(), we
call PetscSFBcastBegin/End(). Mapping natural to global we call
PetscSFReduceBegin/End(). You could pull the information out of the SF
using PetscSFGetGraph() if you want.
Thanks,
Matt
> Regards
> Mo
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220714/6af88e79/attachment.html>
More information about the petsc-users
mailing list