xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision 2065344d83ca0fbbd2d08fb495a4c65bb40165f8)
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*2065344dSHong Zhang #include <petsc/private/pcimpl.h>
8*2065344dSHong 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);
215a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
225a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetShiftAmount_Factor(PC,PetscReal);
235a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
245a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetFill_Factor(PC,PetscReal);
255a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetMatOrderingType_Factor(PC,MatOrderingType);
262591b318SToby Isaac PETSC_INTERN PetscErrorCode PCFactorGetLevels_Factor(PC,PetscInt*);
275a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetLevels_Factor(PC,PetscInt);
2892e9c092SBarry Smith PETSC_INTERN PetscErrorCode PCFactorSetAllowDiagonalFill_Factor(PC,PetscBool);
2992e9c092SBarry Smith PETSC_INTERN PetscErrorCode PCFactorGetAllowDiagonalFill_Factor(PC,PetscBool*);
305a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetPivotInBlocks_Factor(PC,PetscBool);
315a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
325a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetUpMatSolverPackage_Factor(PC);
335a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
345a576424SJed Brown PETSC_INTERN PetscErrorCode PCFactorSetColumnPivot_Factor(PC,PetscReal);
354416b707SBarry Smith PETSC_INTERN PetscErrorCode PCSetFromOptions_Factor(PetscOptionItems *PetscOptionsObject,PC);
365a576424SJed Brown PETSC_INTERN PetscErrorCode PCView_Factor(PC,PetscViewer);
3785317021SBarry Smith 
3835bd34faSBarry Smith #endif
39