Date: 2022-03-04T17:39:20+00:00

Actual source code: schurm.h

      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);