xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision 1ebf93c6b7d760d592de6ebe6cdc0debaa3caf75)
1 /*
2    Private data structure for ILU/ICC/LU/Cholesky preconditioners.
3 */
4 #if !defined(__FACTOR_H)
5 #define __FACTOR_H
6 
7 #include <petsc/private/pcimpl.h>
8 #include <petsc/private/matimpl.h>
9 
10 typedef struct {
11   Mat              fact;              /* factored matrix */
12   MatFactorInfo    info;
13   MatOrderingType  ordering;          /* matrix reordering */
14   MatSolverPackage solvertype;
15   MatFactorType    factortype;
16 } PC_Factor;
17 
18 PETSC_INTERN PetscErrorCode PCFactorGetMatrix_Factor(PC,Mat*);
19 
20 PETSC_INTERN PetscErrorCode PCFactorSetZeroPivot_Factor(PC,PetscReal);
21 PETSC_INTERN PetscErrorCode PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
22 PETSC_INTERN PetscErrorCode PCFactorSetShiftAmount_Factor(PC,PetscReal);
23 PETSC_INTERN PetscErrorCode PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
24 PETSC_INTERN PetscErrorCode PCFactorSetFill_Factor(PC,PetscReal);
25 PETSC_INTERN PetscErrorCode PCFactorSetMatOrderingType_Factor(PC,MatOrderingType);
26 PETSC_INTERN PetscErrorCode PCFactorGetLevels_Factor(PC,PetscInt*);
27 PETSC_INTERN PetscErrorCode PCFactorSetLevels_Factor(PC,PetscInt);
28 PETSC_INTERN PetscErrorCode PCFactorSetAllowDiagonalFill_Factor(PC,PetscBool);
29 PETSC_INTERN PetscErrorCode PCFactorGetAllowDiagonalFill_Factor(PC,PetscBool*);
30 PETSC_INTERN PetscErrorCode PCFactorSetPivotInBlocks_Factor(PC,PetscBool);
31 PETSC_INTERN PetscErrorCode PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
32 PETSC_INTERN PetscErrorCode PCFactorSetUpMatSolverPackage_Factor(PC);
33 PETSC_INTERN PetscErrorCode PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
34 PETSC_INTERN PetscErrorCode PCFactorSetColumnPivot_Factor(PC,PetscReal);
35 PETSC_INTERN PetscErrorCode PCSetFromOptions_Factor(PetscOptionItems *PetscOptionsObject,PC);
36 PETSC_INTERN PetscErrorCode PCView_Factor(PC,PetscViewer);
37 
38 #endif
39