<div dir="ltr"><div dir="ltr">Sorry, you don't clone a setType method, you clone a create method such as:<div><br></div><div>src/dm/impls/plex/plexpartition.c:PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_Simple(PetscPartitioner part) </div><div><br></div><div>code like:<br><div><pre style="color:rgb(0,0,0)"><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/PetscPartitionerSetType.html#PetscPartitionerSetType">PetscPartitionerSetType</a>(<a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/PetscPartitioner.html#PetscPartitioner">PetscPartitioner</a>, "my_part");</pre>will call the function that you registered with PetscPartitionerRegister.</div></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 22, 2019 at 8:22 AM Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>> wrote:<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">Matt is the authority here but I think you are going to start with:<div><br></div><div><a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/PetscPartitionerRegister.html" target="_blank">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/PetscPartitionerRegister.html</a><br></div><div><br></div><div>Then you would clone a "setType" method, which will for one set the partition function. You can cache data like the regular grid metadata in here and then your partitioner function will pick the processor that each local vertex belongs to.</div><div><br></div><div>Mark</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 22, 2019 at 2:20 AM Swarnava Ghosh via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<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">Dear PETSc users and developers,<div><br></div><div>I am new to DMPLEX and had a query regarding setting up a consistent domain decomposition of two meshes in PETSc.</div><div>I have a structured finite difference grid, managed through DMDA. I have another unstructured finite element mesh managed through DMPLEX. Now all the nodes in the unstructured finite element mesh also belong to the set of nodes in the structured finite difference mesh (but not necessarily vice-versa), and the number of nodes in DMPLEX mesh is less than the number of nodes in DMDA mesh. How can I guarantee a consistent domain decomposition of the two meshes? By consistent, I mean that if a process has a set of nodes P from DMDA, and the same process has the set of nodes Q from DMPLEX, then Q is a subset of P.</div><div><br></div><div>I look forward to your response.</div><div><br></div><div>Sincerely,</div><div>Swarnava</div><div class="gmail-m_5839579509684118100gmail-m_-4731784267546717024gmail-yj6qo"></div><br class="gmail-m_5839579509684118100gmail-m_-4731784267546717024gmail-Apple-interchange-newline"></div>
</blockquote></div>
</blockquote></div>