xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision c7f610a14381a3c93d588cae6b722596f84a7640)
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 
72065344dSHong Zhang #include <petsc/private/pcimpl.h>
82065344dSHong Zhang #include <petsc/private/matimpl.h>
935bd34faSBarry Smith 
1035bd34faSBarry Smith typedef struct {
1135bd34faSBarry Smith   Mat              fact;              /* factored matrix */
1235bd34faSBarry Smith   MatFactorInfo    info;
1335bd34faSBarry Smith   MatOrderingType  ordering;          /* matrix reordering */
1435bd34faSBarry Smith   MatSolverPackage solvertype;
15879e8a4dSBarry Smith   MatFactorType    factortype;
1635bd34faSBarry Smith } PC_Factor;
1735bd34faSBarry Smith 
185a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorGetMatrix_Factor(PC,Mat*);
196dd4cc0eSJed Brown 
205a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetZeroPivot_Factor(PC,PetscReal);
21*c7f610a1SBarry Smith PETSC_INTERN PetscErrorCode PCFactorGetZeroPivot_Factor(PC,PetscReal*);
225a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
23*c7f610a1SBarry Smith PETSC_INTERN PetscErrorCode PCFactorGetShiftType_Factor(PC,MatFactorShiftType*);
245a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetShiftAmount_Factor(PC,PetscReal);
25*c7f610a1SBarry Smith PETSC_INTERN PetscErrorCode PCFactorGetShiftAmount_Factor(PC,PetscReal*);
265a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
275a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetFill_Factor(PC,PetscReal);
285a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetMatOrderingType_Factor(PC,MatOrderingType);
292591b318SToby Isaac PETSC_INTERN PetscErrorCode PCFactorGetLevels_Factor(PC,PetscInt*);
305a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetLevels_Factor(PC,PetscInt);
3192e9c092SBarry Smith PETSC_INTERN PetscErrorCode PCFactorSetAllowDiagonalFill_Factor(PC,PetscBool);
3292e9c092SBarry Smith PETSC_INTERN PetscErrorCode PCFactorGetAllowDiagonalFill_Factor(PC,PetscBool*);
335a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetPivotInBlocks_Factor(PC,PetscBool);
345a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
355a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetUpMatSolverPackage_Factor(PC);
365a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
375a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetColumnPivot_Factor(PC,PetscReal);
384416b707SBarry Smith PETSC_INTERN PetscErrorCode PCSetFromOptions_Factor(PetscOptionItems *PetscOptionsObject,PC);
395a576424SJed Brown PETSC_INTERN PetscErrorCode PCView_Factor(PC,PetscViewer);
4085317021SBarry Smith 
4135bd34faSBarry Smith #endif
42