[petsc-users] On QN + Fieldsplit
Nicolás Barnafi
nabw91 at gmail.com
Tue Oct 12 05:54:09 CDT 2021
Hello PETSc users,
first email sent!
I am creating a SNES solver using fenics, my example runs smoothly with
'newtonls', but gives a strange missing function error (error 83):
these are the relevant lines of code where I setup the solver:
> problem = SNESProblem(Res, sol, bcs)
> b = PETScVector() # same as b = PETSc.Vec()
> J_mat = PETScMatrix()
> snes = PETSc.SNES().create(MPI.COMM_WORLD)
> snes.setFunction(problem.F, b.vec())
> snes.setJacobian(problem.J, J_mat.mat())
> # Set up fieldsplit
> ksp = snes.ksp
> ksp.setOperators(J_mat.mat())
> pc = ksp.pc
> pc.setType('fieldsplit')
> dofmap_s = V.sub(0).dofmap().dofs()
> dofmap_p = V.sub(1).dofmap().dofs()
> is_s = PETSc.IS().createGeneral(dofmap_s)
> is_p = PETSc.IS().createGeneral(dofmap_p)
> pc.setFieldSplitIS((None, is_s), (None, is_p))
> pc.setFromOptions()
> snes.setFromOptions()
> snes.setUp()
If it can be useful, this are the outputs of snes.view(), ksp.view() and
pc.view():
> type: qn
> SNES has not been set up so information may be incomplete
> type is BROYDEN, restart type is DEFAULT, scale type is JACOBIAN
> Stored subspace size: 10
> Using the single reduction variant.
> maximum iterations=10000, maximum function evaluations=30000
> tolerances: relative=1e-08, absolute=1e-50, solution=1e-08
> total number of function evaluations=0
> norm schedule ALWAYS
> SNESLineSearch Object: 4 MPI processes
> type: basic
> maxstep=1.000000e+08, minlambda=1.000000e-12
> tolerances: relative=1.000000e-08, absolute=1.000000e-15,
lambda=1.000000e-08
> maximum iterations=1
> KSP Object: 4 MPI processes
> type: gmres
> restart=1000, using Modified Gram-Schmidt Orthogonalization
> happy breakdown tolerance 1e-30
> maximum iterations=1000, initial guess is zero
> tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
> left preconditioning
> using UNPRECONDITIONED norm type for convergence test
> PC Object: 4 MPI processes
> type: fieldsplit
> PC has not been set up so information may be incomplete
> FieldSplit with Schur preconditioner, factorization FULL
I know that PC is not setup, but if I do it before setting up the SNES, the
error persists. Thanks in advance for your help.
Best,
Nicolas
--
Nicolás Alejandro Barnafi Wittwer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211012/0d1ff87c/attachment.html>
More information about the petsc-users
mailing list