From: Roy S. <roy...@ic...> - 2008-10-13 16:37:19
|
On Mon, 13 Oct 2008, Michael Povolotskyi wrote: > However there is still one issue: after the solving the _snes object is > destroyed. So, I cannot get a convergence reason after > PetscNonlinearSolver<T>::solve is called. > Am I right? Ooh - it looks like you're right. We're calling both init() and clear() in solve(), and the latter destroys the SNES object. > If yes, can we store the convergence reason in the class in order to > be able to read it after? Ideally we ought to have a library-independent interface to query the convergence reason, with the abstract API in the NonlinearSolver class and a PETSc-specific implementation in the subclass. Ideally we'd break the enum SolveResult out of DiffSolver and extend and reuse it here too. If you want to write such an API, a patch would be greatly appreciated; otherwise your only hope is to try to talk Derek into doing it. ;-) --- Roy |