xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision 9895aa37ac365bac650f6bd8bf977519f7222510)
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>                /*I "petscpc.h" I*/
8 
9 typedef struct {
10   Mat              fact;              /* factored matrix */
11   MatFactorInfo    info;
12   MatOrderingType  ordering;          /* matrix reordering */
13   MatSolverPackage solvertype;
14   MatFactorType    factortype;
15 } PC_Factor;
16 
17 extern PetscErrorCode PCFactorGetMatrix_Factor(PC,Mat*);
18 
19 EXTERN_C_BEGIN
20 extern PetscErrorCode PCFactorSetZeroPivot_Factor(PC,PetscReal);
21 extern PetscErrorCode PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
22 extern PetscErrorCode PCFactorSetShiftAmount_Factor(PC,PetscReal);
23 extern PetscErrorCode PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
24 extern PetscErrorCode PCFactorSetFill_Factor(PC,PetscReal);
25 extern PetscErrorCode PCFactorSetMatOrderingType_Factor(PC,MatOrderingType);
26 extern PetscErrorCode PCFactorSetLevels_Factor(PC,PetscInt);
27 extern PetscErrorCode PCFactorSetAllowDiagonalFill_Factor(PC);
28 extern PetscErrorCode PCFactorSetPivotInBlocks_Factor(PC,PetscBool);
29 extern PetscErrorCode PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
30 extern PetscErrorCode PCFactorSetUpMatSolverPackage_Factor(PC);
31 extern PetscErrorCode PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
32 extern PetscErrorCode PCFactorSetColumnPivot_Factor(PC,PetscReal);
33 extern PetscErrorCode PCSetFromOptions_Factor(PC);
34 extern PetscErrorCode PCView_Factor(PC,PetscViewer);
35 EXTERN_C_END
36 
37 #endif
38