Actual source code: submatfree.h
petsc-3.11.4 2019-09-28
2: typedef struct{
4: Mat A;
5: Vec VC; /* Work vector in the column space */
6: Vec VR; /* Work vector in the row space */
7: IS Rows, Cols;
9: } _p_MatSubMatFreeCtx;
11: typedef _p_MatSubMatFreeCtx* MatSubMatFreeCtx;
13: PetscErrorCode MatCreateSubMatrixFree(Mat,IS,IS,Mat*);
14: PetscErrorCode MatSMFResetRowColumn(Mat,IS,IS);
15: PetscErrorCode MatMult_SMF(Mat,Vec,Vec);
16: PetscErrorCode MatMultTranspose_SMF(Mat,Vec,Vec);
17: PetscErrorCode MatDiagonalSet_SMF(Mat,Vec,InsertMode);
18: PetscErrorCode MatDestroy_SMF(Mat);
19: PetscErrorCode MatView_SMF(Mat,PetscViewer);
20: PetscErrorCode MatShift_SMF(Mat,PetscReal);
21: PetscErrorCode MatDuplicate_SMF(Mat,MatDuplicateOption,Mat*);
22: PetscErrorCode MatEqual_SMF(Mat,Mat,PetscBool*);
23: PetscErrorCode MatScale_SMF(Mat,PetscReal);
24: PetscErrorCode MatCreateSubMatrix_SMF(Mat,IS,IS,MatReuse,Mat *);
25: PetscErrorCode MatCreateSubMatrices_SMF(Mat,PetscInt,IS*,IS*,MatReuse,Mat**);
26: PetscErrorCode MatTranspose_SMF(Mat,Mat*);
27: PetscErrorCode MatGetDiagonal_SMF(Mat,Vec);
28: PetscErrorCode MatGetColumnVector_SMF(Mat,Vec, PetscInt);
29: PetscErrorCode MatNorm_SMF(Mat,NormType,PetscReal *);
30: PetscErrorCode MatGetRowMax_SMF(Mat, Vec);
31: PetscErrorCode MatGetRow_SMF(Mat,PetscInt,PetscInt *,const PetscInt **,const PetscScalar **);
32: PetscErrorCode MatRestoreRow_SMF(Mat,PetscInt,PetscInt *,const PetscInt **,const PetscScalar **);