xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision 3e1910f1ab6113d8365e15c6b8c907ccce7ce4ea)
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 PETSC_INTERN PetscErrorCode PCFactorGetMatrix_Factor(PC,Mat*);
18 
19 PETSC_INTERN PetscErrorCode PCFactorSetZeroPivot_Factor(PC,PetscReal);
20 PETSC_INTERN PetscErrorCode PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
21 PETSC_INTERN PetscErrorCode PCFactorSetShiftAmount_Factor(PC,PetscReal);
22 PETSC_INTERN PetscErrorCode PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
23 PETSC_INTERN PetscErrorCode PCFactorSetFill_Factor(PC,PetscReal);
24 PETSC_INTERN PetscErrorCode PCFactorSetMatOrderingType_Factor(PC,MatOrderingType);
25 PETSC_INTERN PetscErrorCode PCFactorSetLevels_Factor(PC,PetscInt);
26 PETSC_INTERN PetscErrorCode PCFactorSetAllowDiagonalFill_Factor(PC);
27 PETSC_INTERN PetscErrorCode PCFactorSetPivotInBlocks_Factor(PC,PetscBool);
28 PETSC_INTERN PetscErrorCode PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
29 PETSC_INTERN PetscErrorCode PCFactorSetUpMatSolverPackage_Factor(PC);
30 PETSC_INTERN PetscErrorCode PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
31 PETSC_INTERN PetscErrorCode PCFactorSetColumnPivot_Factor(PC,PetscReal);
32 PETSC_INTERN PetscErrorCode PCSetFromOptions_Factor(PC);
33 PETSC_INTERN PetscErrorCode PCView_Factor(PC,PetscViewer);
34 
35 #endif
36