[petsc-users] On QN + Fieldsplit

Nicolás Barnafi nabw91 at gmail.com
Tue Oct 12 07:37:31 CDT 2021


Thank you Stefano for the help. I added the lines you indicated, but the
error remains the same, here goes snes.view() + error

> SNES Object: 1 MPI processes
>   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: 1 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
> Traceback (most recent call last):
>   File "Twist.py", line 234, in <module>
>     snes.setUp()
>   File "PETSc/SNES.pyx", line 530, in petsc4py.PETSc.SNES.setUp
> petsc4py.PETSc.Error: error code 83

On Tue, Oct 12, 2021 at 2:07 PM Stefano Zampini <stefano.zampini at gmail.com>
wrote:

>
>
> Il giorno mar 12 ott 2021 alle ore 13:56 Nicolás Barnafi <nabw91 at gmail.com>
> ha scritto:
>
>> 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):
>>
>>
> Dolphin swallows any useful error information returned from PETSc. You can
> try using the below code snippet at the beginning of your script
>
> from petsc4py import PETSc
> from dolfin import *
> # Remove the dolfin error handler
> PETSc.Sys.pushErrorHandler('python')
>
>
>
>>
>> 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
>>
>
>
> --
> Stefano
>


-- 
Nicolás Alejandro Barnafi Wittwer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211012/c1102e00/attachment.html>


More information about the petsc-users mailing list