[petsc-dev] DMplex: Natural Ordering and subDM

Matthew Knepley knepley at gmail.com
Mon Nov 27 20:20:48 CST 2017


On Mon, Nov 27, 2017 at 8:08 PM, Jed Brown <jed at jedbrown.org> wrote:

> I don't know the answer to your question (Matt?), but do you really need
> to reorder the entire mesh or would it be sufficient to label your
> points with their original numbering?


Maybe I am wrong, but I think it amounts to the same thing. If we are going
to output things in parallel,
we would need to communicate to he writing process, which this essentially
does.

I thought I responded, but what has to happen is that the SF for this
reordering must be decimated to
produce a subSF for the subDM. Its just not simple, so I have not had the
free time to work it out.

   Matt


> Blaise A Bourdin <bourdin at lsu.edu> writes:
>
> > Hi,
> > I am fighting with natural ordering in DMplex with multi-fields / multi
> components DM.
> > I need to read / write files in a distribution-independent ordering. The
> natural way to do so is to define the natural ordering as that of the file,
> then call DMPlexGlobalToNaturalBegin/End before VecView:
> > The pseudo code would be
> >
> >   DMPlexCreateFromFile(PETSC_COMM_WORLD,ifilename,interpolate,&dmUAS);
> >   // create default section associated with a complicated layout of
> multiple fields
> >   // (U,\alpha,\sigma)
> >   DMSetUseNatural(dmUAS,PETSC_TRUE);
> >   DMPlexDistribute(dmUAS,0,&migrationSF,&dmDist);
> >
> >   DMGetGlobalVector(dmDist,&UAS);
> >   DMGetGlobalVector(dmDist,&UASNatural);
> >   DMPlexGlobalToNaturalBegin(dmDist,UAS,UASNatural);
> >   DMPlexGlobalToNaturalEnd(dmDist,UAS,UASNatural);
> >   // Do my I/O stuff using UASNatural
> >
> > If I try to do the same thing one field at a time, things break:
> > Say that I get the subDM for the first field (U):
> >
> >   DMCreateSubDM(dmDist,1,&fieldU,&ISU,&dmU);
> >
> > Then dmU->useNatural is PETSC_FALSE and  I cannot compute dmU->sfnatural
> using DMPlexCreateGlobalToNaturalSF since I do not have the “sequential”
> version of dmU.
> >
> > What is the proper way to handle this situation? Creating sequential
> subDMs and calling DMDistribute on each of them is ugly and possibly costly.
> >
> > Regards,
> >
> > Blaise
> >
> > --
> > Department of Mathematics and Center for Computation & Technology
> > Louisiana State University, Baton Rouge, LA 70803, USA
> > Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~
> bourdin
>



-- 
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.caam.rice.edu/~mk51/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20171127/03111a8d/attachment.html>


More information about the petsc-dev mailing list