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 processes, 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


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