MatInvertBlockDiagonal#

Inverts the block diagonal entries.

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatInvertBlockDiagonal(Mat mat, const PetscScalar **values)

Collective; No Fortran Support

Input Parameter#

  • mat - the matrix

Output Parameter#

  • values - the block inverses in column major order (FORTRAN-like)

Notes#

The size of the blocks is determined by the block size of the matrix.

The blocks never overlap between two MPI ranks, use MatInvertVariableBlockEnvelope() for that case

The blocks all have the same size, use MatInvertVariableBlockDiagonal() for variable block size

See Also#

Matrices, Mat, MatInvertVariableBlockEnvelope(), MatInvertBlockDiagonalMat()

Level#

advanced

Location#

src/mat/interface/matrix.c

Examples#

src/ksp/ksp/tutorials/ex74.c

Implementations#

MatInvertBlockDiagonal_MPIAIJ in src/mat/impls/aij/mpi/mpiaij.c
MatInvertBlockDiagonal_SeqAIJ in src/mat/impls/aij/seq/aij.c
MatInvertBlockDiagonal_MPIBAIJ in src/mat/impls/baij/mpi/mpibaij.c
MatInvertBlockDiagonal_SeqBAIJ in src/mat/impls/baij/seq/baij.c
MatInvertBlockDiagonal_IS in src/mat/impls/is/matis.c
MatInvertBlockDiagonal_SeqKAIJ in src/mat/impls/kaij/kaij.c
MatInvertBlockDiagonal_MPIKAIJ in src/mat/impls/kaij/kaij.c
MatInvertBlockDiagonal_MPISELL in src/mat/impls/sell/mpi/mpisell.c


Edit on GitLab

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages