:orphan: # MatInvertVariableBlockEnvelope set matrix C to be the inverted block diagonal of matrix A ## Synopsis ``` #include "petscmat.h" PetscErrorCode MatInvertVariableBlockEnvelope(Mat A, MatReuse reuse, Mat *C) ``` Collective ## Input Parameters - ***A -*** the matrix - ***reuse -*** indicates if the `C` matrix was obtained from a previous call to this routine ## Output Parameter - ***C -*** matrix with inverted block diagonal of `A` ## Note For efficiency the matrix `A` should have all the nonzero entries clustered in smallish blocks along the diagonal. ## See Also [](ch_matrices), `Mat`, `MatInvertBlockDiagonal()`, `MatComputeBlockDiagonal()` ## Level advanced ## Location src/mat/interface/matrix.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/interface/matrix.c) [Index of all Mat routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)