PCPBJACOBI#
Point block Jacobi preconditioner
Notes#
See PCJACOBI
for diagonal Jacobi, PCVPBJACOBI
for variable-size point block, and PCBJACOBI
for large size blocks
This works for MATAIJ
and MATBAIJ
matrices and uses the blocksize provided to the matrix
Uses dense LU factorization with partial pivoting to invert the blocks; if a zero pivot is detected a PETSc error is generated.
Developer Notes#
This should support the PCSetErrorIfFailure()
flag set to PETSC_TRUE
to allow
the factorization to continue even after a zero pivot is found resulting in a Nan and hence
terminating KSP
with a KSP_DIVERGED_NANORINF
allowing
a nonlinear solver/ODE integrator to recover without stopping the program as currently happens.
Perhaps should provide an option that allows generation of a valid preconditioner
even if a block is singular as the PCJACOBI
does.
See Also#
KSP: Linear System Solvers, PCCreate()
, PCSetType()
, PCType
, PC
, PCJACOBI
, PCVPBJACOBI
, PCBJACOBI
Level#
beginner
Location#
src/ksp/pc/impls/pbjacobi/pbjacobi.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages