Defining a custom preconditioner with FEniCS Forms in the NonlinearVariationalProblem interface
I read in the release of FEniCS 2017.1 that there is now support for custom precondtioners defined in FEniCS forms using NewtonSolver, PETScSNESSolver and PETScTAOSolver.
Is there a way to access this and set "J_pc" through the NonlinearVariationalProblem interface? 3 Answers
To anyone who is curious, to do this, one can simply define a problem class, with the appropriate methods for F, J, and J_pc. You can then use either dolfin or PETSc solvers.
Is there an alternative of using CBC Block and providing a solver with J_pc? From a first pass reading test_PETScSNES_solver.py, it seems that we have to use the PETScSNES solver to use J_pc? Is this correct?
For best control of the solution process with preconditioners, I suggest cbc.block:
to add an answer/comment or follow this question.