Skip to content

BUG: fieldsplit numbering goes wrong with VI #4232

Open
@colinjcotter

Description

@colinjcotter

Describe the bug

I can't set up fieldsplits in a VI solver.

Steps to Reproduce

https://gist.github.com/colinjcotter/6237e095d68f2caa1a0cee90ceef2206

Expected behavior

I expect fieldsplits to be correctly set up

Error message

Traceback (most recent call last):
  File "/home/cjc1/repositories/sketchpad/adjustment/minimal.py", line 44, in <module>
    solver.solve(bounds=(lbound, ubound))
  File "petsc4py/PETSc/Log.pyx", line 188, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
  File "petsc4py/PETSc/Log.pyx", line 189, in petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func
  File "/home/cjc1/firedrake-venv/lib/python3.12/site-packages/firedrake/adjoint_utils/variational_solver.py", line 111, in wrapper
    out = solve(self, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^
  File "/home/cjc1/firedrake-venv/lib/python3.12/site-packages/firedrake/variational_solver.py", line 356, in solve
    self.snes.solve(None, work)
  File "petsc4py/PETSc/SNES.pyx", line 1724, in petsc4py.PETSc.SNES.solve
petsc4py.PETSc.Error: error code 63
[0] SNESSolve() at /home/cjc1/repositories/petsc/src/snes/interface/snes.c:4839
[0] SNESSolve_VINEWTONRSLS() at /home/cjc1/repositories/petsc/src/snes/impls/vi/rs/virs.c:461
[0] KSPSetUp() at /home/cjc1/repositories/petsc/src/ksp/ksp/interface/itfunc.c:415
[0] PCSetUp() at /home/cjc1/repositories/petsc/src/ksp/pc/interface/precon.c:1071
[0] PCSetUp_FieldSplit() at /home/cjc1/repositories/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c:695
[0] MatCreateSubMatrix() at /home/cjc1/repositories/petsc/src/mat/interface/matrix.c:8618
[0] MatCreateSubMatrices() at /home/cjc1/repositories/petsc/src/mat/interface/matrix.c:7231
[0] MatCreateSubMatrices_SeqAIJ() at /home/cjc1/repositories/petsc/src/mat/impls/aij/seq/aij.c:2799
[0] MatCreateSubMatrix_SeqAIJ() at /home/cjc1/repositories/petsc/src/mat/impls/aij/seq/aij.c:2516
[0] MatSeqAIJSetPreallocation_SeqAIJ() at /home/cjc1/repositories/petsc/src/mat/impls/aij/seq/aij.c:3983
[0] Argument out of range
[0] nnz cannot be greater than row length: local row 15 value 31 rowlength 21

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions