Hi all,

I'm currently trying to set up a nonlinear solver that uses NGMRES with
NEWTONLS as a right preconditioner. The NEWTONLS has a custom linear
preconditioner. Everything is accessed through petsc4py.

*Is there a way I can configure a NPC NEWTONLS KSP CompositePC without
first calling solve on my outer snes?*

My NEWTONLS has the following KSP setup:
FGMRES
| PCCOMPOSITE
|| PYTHON
|| ILU

The way I understand things, the NPC is not created/set up until
SNESSolve_NGMRES() is called. Therefore, I cannot call
snes.getNPC().ksp.pc.getCompositePC(0).setPythonContext(ctx) before I have
called snes.solve().

What I currently do is a try/except on snes.solve to create/set up the
pccomposite. Then I can set my pythoncontext and it runs fine. This is
quite ugly though, so I was hoping anyone would have a better approach.


Ozzy

Reply via email to