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>