<div dir="ltr">On Wed, Oct 30, 2013 at 10:49 AM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> writes:<br>
> So the rationale for this is when we change backend types?<br>
<br>
</div>Yes, when we changed implementations, we shouldn't be contaminated by<br>
whatever came before, but if the user does<br>
<br>
PCSetType(pc,PCASM);<br>
PetscObjectComposeFunction(pc,"TheirFunction",TheirFunction);<br>
PCSetType(pc,PCGAMG);<br>
<br>
Their function should not be removed.  Thus the thought of clearing<br>
based on a prefix.<br>
<div class="im"><br>
> Is it worth anything more than a convention? If so, what about just having<br>
> a count in PetscObject that gets checked in the teardown process.<br>
<br>
</div>1. How do we check the convention?  It's very error-prone at present.<br>
<br>
2. See above for why a simple count is not good enough.<br>
</blockquote></div><br>You can mask it so that it only increments inside Create().</div><div class="gmail_extra"><br></div><div class="gmail_extra">   Matt<br clear="all"><div><br></div>-- <br>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>