xref: /petsc/src/tao/matrix/submatfree.h (revision a7e14dcfba0d07adf6226a919460249440ec94c7)
1*a7e14dcfSSatish Balay #include "petsc-private/matimpl.h"
2*a7e14dcfSSatish Balay #include "petsc-private/vecimpl.h"
3*a7e14dcfSSatish Balay 
4*a7e14dcfSSatish Balay typedef struct{
5*a7e14dcfSSatish Balay 
6*a7e14dcfSSatish Balay   Mat A;
7*a7e14dcfSSatish Balay   Vec VC; /* Work vector in the column space */
8*a7e14dcfSSatish Balay   Vec VR; /* Work vector in the row space */
9*a7e14dcfSSatish Balay   IS Rows, Cols;
10*a7e14dcfSSatish Balay 
11*a7e14dcfSSatish Balay } _p_MatSubMatFreeCtx;
12*a7e14dcfSSatish Balay 
13*a7e14dcfSSatish Balay typedef  _p_MatSubMatFreeCtx* MatSubMatFreeCtx;
14*a7e14dcfSSatish Balay 
15*a7e14dcfSSatish Balay PetscErrorCode MatCreateSubMatrixFree(Mat,IS,IS,Mat*);
16*a7e14dcfSSatish Balay PetscErrorCode MatSMFResetRowColumn(Mat,IS,IS);
17*a7e14dcfSSatish Balay PetscErrorCode MatMult_SMF(Mat,Vec,Vec);
18*a7e14dcfSSatish Balay PetscErrorCode MatMultTranspose_SMF(Mat,Vec,Vec);
19*a7e14dcfSSatish Balay PetscErrorCode MatDiagonalSet_SMF(Mat,Vec,InsertMode);
20*a7e14dcfSSatish Balay PetscErrorCode MatDestroy_SMF(Mat);
21*a7e14dcfSSatish Balay PetscErrorCode MatView_SMF(Mat,PetscViewer);
22*a7e14dcfSSatish Balay PetscErrorCode MatShift_SMF(Mat,PetscReal);
23*a7e14dcfSSatish Balay PetscErrorCode MatDuplicate_SMF(Mat,MatDuplicateOption,Mat*);
24*a7e14dcfSSatish Balay PetscErrorCode MatEqual_SMF(Mat,Mat,PetscBool*);
25*a7e14dcfSSatish Balay PetscErrorCode MatScale_SMF(Mat,PetscReal);
26*a7e14dcfSSatish Balay PetscErrorCode MatGetSubMatrix_SMF(Mat,IS,IS,MatReuse,Mat *);
27*a7e14dcfSSatish Balay PetscErrorCode MatGetSubMatrices_SMF(Mat,PetscInt,IS*,IS*,MatReuse,Mat**);
28*a7e14dcfSSatish Balay PetscErrorCode MatTranspose_SMF(Mat,Mat*);
29*a7e14dcfSSatish Balay PetscErrorCode MatGetDiagonal_SMF(Mat,Vec);
30*a7e14dcfSSatish Balay PetscErrorCode MatGetColumnVector_SMF(Mat,Vec, PetscInt);
31*a7e14dcfSSatish Balay PetscErrorCode MatNorm_SMF(Mat,NormType,PetscReal *);
32*a7e14dcfSSatish Balay PetscErrorCode MatGetRowMax_SMF(Mat, Vec);
33*a7e14dcfSSatish Balay PetscErrorCode MatGetRow_SMF(Mat,PetscInt,PetscInt *,const PetscInt **,const PetscReal **);
34*a7e14dcfSSatish Balay PetscErrorCode MatRestoreRow_SMF(Mat,PetscInt,PetscInt *,const PetscInt **,const PetscReal **);
35