<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">6. 11. 2017 v 14:27, Matthew Knepley <<a href="mailto:knepley@gmail.com" class="">knepley@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote">On Mon, Nov 6, 2017 at 8:24 AM, Smith, Barry F.<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:bsmith@mcs.anl.gov" target="_blank" class="">bsmith@mcs.anl.gov</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><br class=""> Vaclav,<br class=""><br class=""> 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 class=""><br class=""></div><div class="">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 class="">when partitioning meshes, you need extra things (like calculation of the dual graph), which is not used in the matrix case.</div></div></div></div></div></blockquote><div><br class=""></div><div>This is what I thought; mesh and matrix partitioning is quite a different task to me, although typically using the same low-level libraries.</div><div><br class=""></div><div>Vaclav</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div><div class=""> Matt</div><div class=""><br class=""></div><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">see MatPartitioningCreate(). Please look at all the functionality before doing anything.<br class=""><br class=""> 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 class=""><br class=""> Thanks for looking at this,<br class=""><br class=""> Barry<br class=""><div class="HOEnZb"><div class="h5"><br class=""><br class="">> On Nov 6, 2017, at 7:09 AM, Vaclav Hapla <<a href="mailto:vaclav.hapla@erdw.ethz.ch" class="">vaclav.hapla@erdw.ethz.ch</a>> wrote:<br class="">><br class="">> Hello<br class="">><br class="">> The whole PetscPartitioner class sources are part of src/dm/impls/plex/<wbr class="">plexpartition.c, mixed together with some DMPlex* functions.<br class="">> If you don't mind, I would move the PetscPartitioner* stuff into the separate file petscpartitioner.c<br class="">> (in future, it could be even moved to a separate directory).<br class="">><br class="">> I would also like to<br class="">> * add PetscPartitioner{Add,Set,Get}<wbr class="">OptionsPrefix,<br class="">> * create the partitioner lazily in DMPlexGetPartitioner, followed by PetscObjectIncrementTabLevel, PetscLogObjectParent and PetscPartitionerSetOptionsPref<wbr class="">ix calls,<br class="">> * edit src/dm/impls/plex/examples/<wbr class="">tutorials/ex5.c so that it calls DMSetFromOptions right after DMPlexCreateFromFile, in order to make the partitioner changeable from options.<br class="">><br class="">> Do you have anything against?<br class="">><br class="">> Vaclav<br class=""><br class=""></div></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">-- Norbert Wiener</div><div class=""><br class=""></div><div class=""><a href="http://www.caam.rice.edu/~mk51/" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a></div></div></div></div></div></div></div></div></blockquote></div><br class=""></body></html>