On 11/17/16, 7:56 AM, "Roy Stogner" <[email protected]> wrote: >I'd say: > >Add a DiffSolver::linear_solver() API for returning a reference to a >LinearSolver, and add NewtonSolver and PetscDiffSolver >implementations.
For the PETSc case, that LinearSolver would need to grab the KSP from the SNES so we can reuse the preconditioner, then call KSPSolveTranspose(), which brings another problem because some preconditioners return the error: ""PC does not have apply transpose² (http://www.mcs.anl.gov/petsc/petsc-3.6/src/ksp/pc/interface/precon.c.html# PCApplyTranspose) This happened to me with the GAMG preconditioner in PETSc, I don¹t know why. The LinearSolver would hold a KSP that would be a shallow copy to the SNES¹s KSP and therefore would not have to be destroyed. Miguel ------------------------------------------------------------------------------ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
