xref: /petsc/src/ksp/pc/impls/factor/factor.h (revision d90ac83d909a2cb66ba66e74550740849e04bb53)
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 
735bd34faSBarry Smith #include "private/pcimpl.h"                /*I "petscpc.h" I*/
835bd34faSBarry Smith 
935bd34faSBarry Smith typedef struct {
1035bd34faSBarry Smith   Mat               fact;             /* factored matrix */
1135bd34faSBarry Smith   MatFactorInfo     info;
1235bd34faSBarry Smith   MatOrderingType   ordering;         /* matrix reordering */
1335bd34faSBarry Smith   MatSolverPackage  solvertype;
1435bd34faSBarry Smith } PC_Factor;
1535bd34faSBarry Smith 
1685317021SBarry Smith EXTERN_C_BEGIN
1785317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetZeroPivot_Factor(PC,PetscReal);
18*d90ac83dSHong Zhang extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftType_Factor(PC,MatFactorShiftType);
19*d90ac83dSHong Zhang extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftAmount_Factor(PC,PetscReal);
2085317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftNonzero_Factor(PC,PetscReal);
2185317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftPd_Factor(PC,PetscTruth);
22d6e5152cSHong Zhang extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftInBlocks_Factor(PC,PetscReal);
23b7c853c4SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt);
2485317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetFill_Factor(PC,PetscReal);
2585317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetMatOrderingType_Factor(PC,const MatOrderingType);
2685317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetLevels_Factor(PC,PetscInt);
2785317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetAllowDiagonalFill_Factor(PC);
2885317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetPivotInBlocks_Factor(PC,PetscTruth);
2985317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorGetMatrix_Factor(PC,Mat*);
3085317021SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage);
317112b564SBarry Smith extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*);
328ff23777SHong Zhang extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetColumnPivot_Factor(PC,PetscReal);
338ff23777SHong Zhang extern PetscErrorCode PETSCKSP_DLLEXPORT PCSetFromOptions_Factor(PC);
3485317021SBarry Smith EXTERN_C_END
3585317021SBarry Smith 
3635bd34faSBarry Smith #endif
37