<div dir="ltr">Dear Matthew,<div><br></div><div>This is great news!</div><div>For my part, I would be mostly interested in the parallel input interface. Sorry for that... </div><div>Indeed, in our application,  we already have a parallel mesh data structure that supports hybrid meshes with parallel I/O and distribution (based on the MED format). We would like to use a DMPlex to make parallel mesh adaptation.</div><div> As a matter of fact, all our meshes are in the MED format. We could also contribute to extend the interface of DMPlex with MED (if you consider it could be usefull).</div><div><br></div><div>Best regards,</div><div>Nicolas</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mar. 21 sept. 2021 à 21:56, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Tue, Sep 21, 2021 at 10:31 AM Karin&NiKo <<a href="mailto:niko.karin@gmail.com" target="_blank">niko.karin@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Dear Eric, dear Matthew,<div><br></div><div>I share Eric's desire to be able to manipulate meshes composed of different types of elements in a PETSc's DMPlex. </div><div>Since this discussion, is there anything new on this feature for the DMPlex object or am I missing something?</div></div></blockquote><div><br></div><div>Thanks for finding this!</div><div><br></div><div>Okay, I did a rewrite of the Plex internals this summer. It should now be possible to interpolate a mesh with any</div><div>number of cell types, partition it, redistribute it, and many other manipulations.</div><div><br></div><div>You can read in some formats that support hybrid meshes. If you let me know how you plan to read it in, we can make it work.</div><div>Right now, I don't want to make input interfaces that no one will ever use. We have a project, joint with Firedrake, to finalize</div><div>parallel I/O. This will make parallel reading and writing for checkpointing possible, supporting topology, geometry, fields and</div><div>layouts, for many meshes in one HDF5 file. I think we will finish in November.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks,</div><div>Nicolas</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mer. 21 juil. 2021 à 04:25, Eric Chamberland <<a href="mailto:Eric.Chamberland@giref.ulaval.ca" target="_blank">Eric.Chamberland@giref.ulaval.ca</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>Hi,<br>
    </p>
    <div>On 2021-07-14 3:14 p.m., Matthew
      Knepley wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div dir="ltr">On Wed, Jul 14, 2021 at 1:25 PM Eric Chamberland
          <<a href="mailto:Eric.Chamberland@giref.ulaval.ca" target="_blank">Eric.Chamberland@giref.ulaval.ca</a>>
          wrote:<br>
        </div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
            <br>
            while playing with DMPlexBuildFromCellListParallel, I
            noticed we have to <br>
            specify "numCorners" which is a fixed value, then gives a
            fixed number <br>
            of nodes for a series of elements.<br>
            <br>
            How can I then add, for example, triangles and quadrangles
            into a DMPlex?<br>
          </blockquote>
          <div><br>
          </div>
          <div>You can't with that function. It would be much mich more
            complicated if you could, and I am not sure</div>
          <div>it is worth it for that function. The reason is that you
            would need index information to offset into the</div>
          <div>connectivity list, and that would need to be replicated
            to some extent so that all processes know what</div>
          <div>the others are doing. Possible, but complicated.</div>
          <div><br>
          </div>
          <div>Maybe I can help suggest something for what you are
            trying to do?</div>
        </div>
      </div>
    </blockquote>
    <p>Yes: we are trying to partition our parallel mesh with PETSc
      functions.  The mesh has been read in parallel so each process
      owns a part of it, but we have to manage mixed elements types.</p>
    <p>When we directly use ParMETIS_V3_PartMeshKway, we give two arrays
      to describe the elements which allows mixed elements.</p>
    <p>So, how would I read my mixed mesh in parallel and give it to
      PETSc DMPlex so I can use a PetscPartitioner with DMPlexDistribute
      ?</p>
    <p>A second goal we have is to use PETSc to compute the overlap,
      which is something I can't find in PARMetis (and any other
      partitionning library?)</p>
    <p>Thanks,</p>
    <p>Eric<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_quote">
          <div><br>
          </div>
          <div>  Thanks,</div>
          <div><br>
          </div>
          <div>      Matt</div>
          <div><br>
          </div>
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            Thanks,<br>
            <br>
            Eric<br>
            <br>
            -- <br>
            Eric Chamberland, ing., M. Ing<br>
            Professionnel de recherche<br>
            GIREF/Université Laval<br>
            (418) 656-2131 poste 41 22 42<br>
            <br>
          </blockquote>
        </div>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        <div dir="ltr">
          <div dir="ltr">
            <div>
              <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.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <pre cols="72">-- 
Eric Chamberland, ing., M. Ing
Professionnel de recherche
GIREF/Université Laval
(418) 656-2131 poste 41 22 42</pre>
  </div>

</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><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.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>
</blockquote></div>