<div dir="ltr"><div dir="ltr">On Tue, Aug 27, 2019 at 4:11 AM Lisandro Dalcin <<a href="mailto:dalcinl@gmail.com">dalcinl@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"><div dir="ltr">On Mon, 26 Aug 2019 at 21:26, Smith, Barry F. <<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</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"><br>
<br>
> On Aug 26, 2019, at 10:11 AM, Lisandro Dalcin <<a href="mailto:dalcinl@gmail.com" target="_blank">dalcinl@gmail.com</a>> wrote:<br>
> <br>
> <br>
> <br>
> On Sun, 25 Aug 2019 at 18:37, Smith, Barry F. via petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov" target="_blank">petsc-dev@mcs.anl.gov</a>> wrote:<br>
> <br>
>    Metis is installed. <br>
> <br>
> config/PETSc/Configure.py:        self.addDefine('HAVE_'+i.PACKAGE.replace('-','_'), 1)  # ONLY list package if it is used directly by PETSc (and not only by another package)<br>
> <br>
>     Since metis is not used by PETSc we don't set the PETSC_HAVE_METIS flag because PETSc doesn't need it.<br>
> <br>
> <br>
> This is not true, in DMPlex we have an explicit call to METIS_PartGraphKway(). Of course, this code is protected with just HAVE_PARMETIS, because if you have parmetis, then you have metis.<br>
<br>
   Hmm, I think is should be protected with HAVE_METIS. There is nothing that says PETSc can only be built with metis plus parmetis; it could be built with just metis.<br>
<br></blockquote><div><br></div><div>Sorry, maybe I was not clear enough. </div><div><br></div><div>The DMPlex code I'm talkinga about uses both ParMETIS and METIS, depending on the input graph being sequential or parallel. </div><div><a href="https://gitlab.com/petsc/petsc/blob/master/src/dm/impls/plex/plexpartition.c#L1799" target="_blank">https://gitlab.com/petsc/petsc/blob/master/src/dm/impls/plex/plexpartition.c#L1799</a><br></div><div>So this code requires ParMETIS, and if you have it, then you have METIS, the a HAVE_METIS check seems a bit redundant to me.<br></div><div>Do you still think we should change it?<br></div><div><br></div><div>Or maybe we should use `#if defined(PETSC_HAVE_METIS) && defined(PETSC_HAVE_PARMETIS)`?</div><div><br></div><div>Anything to add, Matthew?</div></div></div></blockquote><div><br></div><div>1) I think we turn on PETSC_HAVE_METIS</div><div><br></div><div>2) I think we leave the guard as PARMETIS since we need it for the parallel case and it implies Metis</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 class="gmail_quote"><div>PS: In any case, I think configure should emit PETSC_HAVE_METIS, we are really using it.</div><div><br></div></div>-- <br><div dir="ltr" class="gmail-m_8100748881012356252gmail_signature"><div dir="ltr"><div>Lisandro Dalcin<br>============<br>Research Scientist<br>Extreme Computing Research Center (ECRC)<br>King Abdullah University of Science and Technology (KAUST)<br><a href="http://ecrc.kaust.edu.sa/" target="_blank">http://ecrc.kaust.edu.sa/</a><br></div></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><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>