On Mar 29, 2012, at 11:38 AM, Dmitry Karpeev wrote:

> 
> 
> On Thu, Mar 29, 2012 at 10:13 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> On Thu, Mar 29, 2012 at 08:28, Dmitry Karpeev <karpeev at mcs.anl.gov> wrote:
> Back to the original problem: how shall we prevent a shared pc from being 
> gutted by an unprotected PCReset() cascading from a KSPDestroy() on one of 
> the containing ksps?  I can factor out KSPReset_Private()/PCReset_Private() 
> as indicated before, unless there are objections.
> 
>  What do you think of my suggestion of masking ksp->pc when KSPDestroy calls 
> KSPReset? Then KSPReset does not call PCReset if ksp->pc does not exist.
> I guess that works too, but I thought your suggestion applied to userland 
> code right before calling KSPDestroy(&ksp)?
> I suppose that will fix Mark's problem.  Maybe that's the right approach: he 
> got himself into this mess by reusing a pc
> in the inner ksp, he should know how to extricate himself :-)

BTW, this is not a matter of being lazy, I need an eigen estimate of the 
smoothers preconditioned operator.  In the past I created a new PC from the 
command line database (ugly), but this GASM smoother can not be reconstructed 
from the database (it uses the AMG aggregates).  I could do a deep copy of the 
smoother but that would require two setups of the GASM PC, which would be ugly.

Mark

> 
> Dmitry.
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120329/6812d66a/attachment.html>

Reply via email to