xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision b45d2f2cb7e031d9c0de5873eca80614ca7b863b)
135bd34faSBarry Smith /*
2e1222f9fSBarry Smith    Private data structure for ILU/ICC/LU/Cholesky preconditioners.
335bd34faSBarry Smith */
435bd34faSBarry Smith #if !defined(__FACTOR_H)
535bd34faSBarry Smith #define __FACTOR_H
635bd34faSBarry Smith 
7*b45d2f2cSJed Brown #include <petsc-private/pcimpl.h>                /*I "petscpc.h" I*/
835bd34faSBarry Smith 
935bd34faSBarry Smith typedef struct {
1035bd34faSBarry Smith   Mat               fact;             /* factored matrix */
1135bd34faSBarry Smith   MatFactorInfo     info;
1235bd34faSBarry Smith   MatOrderingType   ordering;         /* matrix reordering */
1335bd34faSBarry Smith   MatSolverPackage  solvertype;
14879e8a4dSBarry Smith   MatFactorType     factortype;
1535bd34faSBarry Smith } PC_Factor;
1635bd34faSBarry Smith 
177087cfbeSBarry Smith extern PetscErrorCode  PCFactorGetMatrix_Factor(PC,Mat*);
186dd4cc0eSJed Brown 
1985317021SBarry Smith EXTERN_C_BEGIN
207087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetZeroPivot_Factor(PC,PetscReal);
217087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
227087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetShiftAmount_Factor(PC,PetscReal);
237087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
247087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetFill_Factor(PC,PetscReal);
257087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetMatOrderingType_Factor(PC,const MatOrderingType);
267087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetLevels_Factor(PC,PetscInt);
277087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetAllowDiagonalFill_Factor(PC);
287087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetPivotInBlocks_Factor(PC,PetscBool );
297087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
30f8260c8fSBarry Smith extern PetscErrorCode  PCFactorSetUpMatSolverPackage_Factor(PC);
317087cfbeSBarry Smith extern PetscErrorCode  PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
327087cfbeSBarry Smith extern PetscErrorCode  PCFactorSetColumnPivot_Factor(PC,PetscReal);
337087cfbeSBarry Smith extern PetscErrorCode  PCSetFromOptions_Factor(PC);
34914a5d51SHong Zhang extern PetscErrorCode PCView_Factor(PC,PetscViewer);
3585317021SBarry Smith EXTERN_C_END
3685317021SBarry Smith 
3735bd34faSBarry Smith #endif
38