<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Nov 6, 2017 at 8:24 AM, Smith, Barry F. <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
   Vaclav,<br>
<br>
      Actually you should not just do this! PETSc already has a full class for managing partitioning (that Matt ignored for no good reason)</blockquote><div><br></div><div>Obviously, a good reason existed. All sorts of horrible Mat-specific crap was in these. It was impossible to use for mesh partitioning. In addition,</div><div>when partitioning meshes, you need extra things (like calculation of the dual graph), which is not used in the matrix case.</div><div><br></div><div>  Matt</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> see MatPartitioningCreate(). Please look at all the functionality before doing anything.<br>
<br>
     Any refactorization you do needs to combine, simplify, and cleanup the two interfaces to create one simpler one. And please let us know your design ideas (with for example an issue on bitbucket) before you go ahead and write a lot of code we may end up not liking.<br>
<br>
     Thanks for looking at this,<br>
<br>
   Barry<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> On Nov 6, 2017, at 7:09 AM, Vaclav Hapla <<a href="mailto:vaclav.hapla@erdw.ethz.ch">vaclav.hapla@erdw.ethz.ch</a>> wrote:<br>
><br>
> Hello<br>
><br>
> The whole PetscPartitioner class sources are part of src/dm/impls/plex/<wbr>plexpartition.c, mixed together with some DMPlex* functions.<br>
> If you don't mind, I would move the PetscPartitioner* stuff into the separate file petscpartitioner.c<br>
> (in future, it could be even moved to a separate directory).<br>
><br>
> I would also like to<br>
> * add PetscPartitioner{Add,Set,Get}<wbr>OptionsPrefix,<br>
> * create the partitioner lazily in DMPlexGetPartitioner, followed by PetscObjectIncrementTabLevel, PetscLogObjectParent and PetscPartitionerSetOptionsPref<wbr>ix calls,<br>
> * edit src/dm/impls/plex/examples/<wbr>tutorials/ex5.c so that it calls DMSetFromOptions right after DMPlexCreateFromFile, in order to make the partitioner changeable from options.<br>
><br>
> Do you have anything against?<br>
><br>
> Vaclav<br>
<br>
</div></div></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>