<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Nov 27, 2017 at 9:24 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> writes:<br>
<br>
> On Mon, Nov 27, 2017 at 8:08 PM, Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br>
><br>
>> I don't know the answer to your question (Matt?), but do you really need<br>
>> to reorder the entire mesh or would it be sufficient to label your<br>
>> points with their original numbering?<br>
><br>
><br>
> Maybe I am wrong, but I think it amounts to the same thing. If we are going<br>
> to output things in parallel,<br>
> we would need to communicate to he writing process, which this essentially<br>
> does.<br>
<br>
Writing a label doesn't require redistribution of the mesh.  It's possible to do parallel IO.<br></blockquote><div><br></div><div>My understanding is that 3rd party programs want the mesh in the original order, so we</div><div>want it ordered in the HDF5 file in the original order. You could I guess write it in the order,</div><div>but it seems messy to write stuff all over the place in the file. Is that what you mean?</div><div><br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> I thought I responded, but what has to happen is that the SF for this<br>
> reordering must be decimated to<br>
> produce a subSF for the subDM. Its just not simple, so I have not had the<br>
> free time to work it out.<br>
><br>
>    Matt<br>
><br>
><br>
>> Blaise A Bourdin <<a href="mailto:bourdin@lsu.edu">bourdin@lsu.edu</a>> writes:<br>
>><br>
>> > Hi,<br>
>> > I am fighting with natural ordering in DMplex with multi-fields / multi<br>
>> components DM.<br>
>> > I need to read / write files in a distribution-independent ordering. The<br>
>> natural way to do so is to define the natural ordering as that of the file,<br>
>> then call DMPlexGlobalToNaturalBegin/End before VecView:<br>
>> > The pseudo code would be<br>
>> ><br>
>> >   DMPlexCreateFromFile(PETSC_<wbr>COMM_WORLD,ifilename,<wbr>interpolate,&dmUAS);<br>
>> >   // create default section associated with a complicated layout of<br>
>> multiple fields<br>
>> >   // (U,\alpha,\sigma)<br>
>> >   DMSetUseNatural(dmUAS,PETSC_<wbr>TRUE);<br>
>> >   DMPlexDistribute(dmUAS,0,&<wbr>migrationSF,&dmDist);<br>
>> ><br>
>> >   DMGetGlobalVector(dmDist,&UAS)<wbr>;<br>
>> >   DMGetGlobalVector(dmDist,&<wbr>UASNatural);<br>
>> >   DMPlexGlobalToNaturalBegin(<wbr>dmDist,UAS,UASNatural);<br>
>> >   DMPlexGlobalToNaturalEnd(<wbr>dmDist,UAS,UASNatural);<br>
>> >   // Do my I/O stuff using UASNatural<br>
>> ><br>
>> > If I try to do the same thing one field at a time, things break:<br>
>> > Say that I get the subDM for the first field (U):<br>
>> ><br>
>> >   DMCreateSubDM(dmDist,1,&<wbr>fieldU,&ISU,&dmU);<br>
>> ><br>
>> > Then dmU->useNatural is PETSC_FALSE and  I cannot compute dmU->sfnatural<br>
>> using DMPlexCreateGlobalToNaturalSF since I do not have the “sequential”<br>
>> version of dmU.<br>
>> ><br>
>> > What is the proper way to handle this situation? Creating sequential<br>
>> subDMs and calling DMDistribute on each of them is ugly and possibly costly.<br>
>> ><br>
>> > Regards,<br>
>> ><br>
>> > Blaise<br>
>> ><br>
>> > --<br>
>> > Department of Mathematics and Center for Computation & Technology<br>
>> > Louisiana State University, Baton Rouge, LA 70803, USA<br>
>> > Tel. <a href="tel:%2B1%20%28225%29%20578%201612" value="+12255781612">+1 (225) 578 1612</a>, Fax  <a href="tel:%2B1%20%28225%29%20578%204276" value="+12255784276">+1 (225) 578 4276</a> <a href="http://www.math.lsu.edu/~" rel="noreferrer" target="_blank">http://www.math.lsu.edu/~</a><br>
>> bourdin<br>
>><br>
><br>
><br>
<span class="HOEnZb"><font color="#888888">><br>
> --<br>
> What most experimenters take for granted before they begin their<br>
> experiments is infinitely more interesting than any results to which their<br>
> experiments lead.<br>
> -- Norbert Wiener<br>
><br>
> <a href="https://www.cse.buffalo.edu/~knepley/" rel="noreferrer" target="_blank">https://www.cse.buffalo.edu/~<wbr>knepley/</a> <<a href="http://www.caam.rice.edu/~mk51/" rel="noreferrer" target="_blank">http://www.caam.rice.edu/~<wbr>mk51/</a>><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>