Actual source code: schurm.h
petsc-3.10.5 2019-03-28
1: #include <petsc/private/kspimpl.h>
2: #include <petsc/private/matimpl.h>
3: #include <petscksp.h>
5: typedef struct {
6: Mat A,Ap,B,C,D;
7: KSP ksp;
8: Vec work1,work2;
9: MatSchurComplementAinvType ainvtype;
10: } Mat_SchurComplement;
12: PETSC_INTERN PetscErrorCode MatCreateVecs_SchurComplement(Mat N, Vec*, Vec*);
13: PETSC_INTERN PetscErrorCode MatView_SchurComplement(Mat, PetscViewer);
14: PETSC_INTERN PetscErrorCode MatMultTranspose_SchurComplement(Mat, Vec, Vec);
15: PETSC_INTERN PetscErrorCode MatMult_SchurComplement(Mat, Vec, Vec);
16: PETSC_INTERN PetscErrorCode MatMultAdd_SchurComplement(Mat, Vec, Vec, Vec);
17: PETSC_INTERN PetscErrorCode MatSetFromOptions_SchurComplement(PetscOptionItems*, Mat);
18: PETSC_INTERN PetscErrorCode MatDestroy_SchurComplement(Mat);
19: PETSC_INTERN PetscErrorCode MatGetSchurComplement_Basic(Mat, IS, IS, IS, IS, MatReuse, Mat*, MatSchurComplementAinvType, MatReuse, Mat*);
21: PETSC_EXTERN PetscErrorCode MatCreate_SchurComplement(Mat);