xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision 0700a8246d308f50502909ba325e6169d3ee27eb)
1 /*
2    Private data structure for ILU/ICC/LU/Cholesky preconditioners.
3 */
4 #if !defined(__FACTOR_H)
5 #define __FACTOR_H
6 
7 #include "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_C_BEGIN
18 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetZeroPivot_Factor(PC,PetscReal);
19 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
20 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftAmount_Factor(PC,PetscReal);
21 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
22 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetFill_Factor(PC,PetscReal);
23 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetMatOrderingType_Factor(PC,const MatOrderingType);
24 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetLevels_Factor(PC,PetscInt);
25 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetAllowDiagonalFill_Factor(PC);
26 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetPivotInBlocks_Factor(PC,PetscTruth);
27 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorGetMatrix_Factor(PC,Mat*);
28 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
29 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
30 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetColumnPivot_Factor(PC,PetscReal);
31 extern PetscErrorCode PETSCKSP_DLLEXPORT PCSetFromOptions_Factor(PC);
32 extern PetscErrorCode PCView_Factor(PC,PetscViewer);
33 EXTERN_C_END
34 
35 #endif
36