<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hello,<div class="">I’m not sure what’s the status about this issue.</div><div class="">I’m trying to register a PC that is using EPSSolve during PCSetUp, but it’s falling because of undefined references to EPSSomething when linking libpetsc.so</div><div class="">How could I fix this, appart from removing my PC from PETSc and compiling this as a separate library (the idea would be to merge my PC in PETSc, so that would be rather counterproductive in the end)?</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Pierre<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 27 Jun 2019, at 1:04 AM, Matthew Knepley via petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov" class="">petsc-dev@mcs.anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; 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; text-decoration: none;" class=""><div dir="ltr" class="">On Wed, Jun 26, 2019 at 4:11 PM Jed Brown <<a href="mailto:jed@jedbrown.org" class="">jed@jedbrown.org</a>> wrote:<br class=""></div><div class="gmail_quote"><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;">Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank" class="">knepley@gmail.com</a>> writes:<br class=""><br class="">> On Wed, Jun 26, 2019 at 3:42 PM Jed Brown via petsc-dev <<br class="">><span class="Apple-converted-space"> </span><a href="mailto:petsc-dev@mcs.anl.gov" target="_blank" class="">petsc-dev@mcs.anl.gov</a>> wrote:<br class="">><br class="">>> "Smith, Barry F." <<a href="mailto:bsmith@mcs.anl.gov" target="_blank" class="">bsmith@mcs.anl.gov</a>> writes:<br class="">>><br class="">>> >> On Jun 26, 2019, at 1:53 PM, Jed Brown <<a href="mailto:jed@jedbrown.org" target="_blank" class="">jed@jedbrown.org</a>> wrote:<br class="">>> >><br class="">>> >> "Smith, Barry F." <<a href="mailto:bsmith@mcs.anl.gov" target="_blank" class="">bsmith@mcs.anl.gov</a>> writes:<br class="">>> >><br class="">>> >>>  It is still a PC, it may as part of its computation solve an<br class="">>> eigenvalue problem but its use is as a PC, hence does not belong in SLEPc.<br class="">>> >><br class="">>> >> Fine; it does not belong in src/ksp/pc/.<br class="">>> ><br class="">>> >   Why not? From the code mangement point of view that is the perfect<br class="">>> place for it. It just depends on an external package in the same way that<br class="">>> PCHYPRE depends on an external library. Having it off in some other<br class="">>> directory src/plugins would serve no purpose. Of course making sure it<br class="">>> doesn't get compiled into -lpetsc may require a tweak to the make<br class="">>> infrastructure. Make could, for example, skip plugin subdirectories for<br class="">>> example.<br class="">>><br class="">>> I think it's confusing to have code that is part of libpetsc.so<br class="">>> alongside code that is not (e.g., won't be accessible to users unless<br class="">>> they also build SLEPc and link the plugin).<br class="">>><br class="">>> >   BTW: Matt's perverse use of SNES from DMPLEx could also be fixed to<br class="">>> >   work this way instead of the disgusting PetscObject casting used to<br class="">>> >   cancel the SNES object.<br class="">>><br class="">>> That code could be part of libpetscsnes.so.<br class="">>><br class="">><br class="">> What? I thought I moved everything to SNES a long time ago.<br class=""><br class="">I thought there was a place where SNES was cast to PetscObject.  There<br class="">is DMAddField, but it's different.<br class=""></blockquote><div class=""><br class=""></div><div class="">I can't find it right now. Yeah, AddField is waiting for a true Discretization object.</div><div class="">I think its spelled G-O-D-O-T.</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;">PetscViewerVTKAddField is another example of code that uses PetscObject<br class="">to avoid depending on a higher level type like Vec.<br class=""></blockquote></div><br clear="all" class=""><div class="">Viewer is a weird mixin with everything.</div><div class=""><br class=""></div><div class="">   Matt</div><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div dir="ltr" class="gmail_signature"><div dir="ltr" class=""><div class=""><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.cse.buffalo.edu/~knepley/" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a></div></div></div></div></div></div></div></div></div></blockquote></div><br class=""></div></body></html>