Defining a custom preconditioner with FEniCS Forms in the NonlinearVariationalProblem interface


354
views
1
13 months ago by
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?
Have you discovered fenics CBC block yet?
written 13 months ago by pf4d 
I have not used it yet. Is there a simple example code of implementing the poisson problem with one of the other interfaces such as NewtonSolver rather than using the NonlinearVariationalProblem with J_pc, if NonlinearVariationalProblem can not be fed a preconditioner?
written 13 months ago by Joshua Chen 

3 Answers


1
12 months ago by
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.
0
13 months ago by
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?
-1
13 months ago by
pf4d 
For best control of the solution process with preconditioners, I suggest cbc.block:

https://bitbucket.org/fenics-apps/cbc.block
Please login to add an answer/comment or follow this question.

Similar posts:
Search »