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 } PC_Factor; 15 16 EXTERN_C_BEGIN 17 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetZeroPivot_Factor(PC,PetscReal); 18 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftType_Factor(PC,MatFactorShiftType); 19 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetShiftAmount_Factor(PC,PetscReal); 20 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt); 21 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetFill_Factor(PC,PetscReal); 22 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetMatOrderingType_Factor(PC,const MatOrderingType); 23 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetLevels_Factor(PC,PetscInt); 24 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetAllowDiagonalFill_Factor(PC); 25 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetPivotInBlocks_Factor(PC,PetscTruth); 26 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorGetMatrix_Factor(PC,Mat*); 27 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage); 28 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*); 29 extern PetscErrorCode PETSCKSP_DLLEXPORT PCFactorSetColumnPivot_Factor(PC,PetscReal); 30 extern PetscErrorCode PETSCKSP_DLLEXPORT PCSetFromOptions_Factor(PC); 31 extern PetscErrorCode PCView_Factor(PC,PetscViewer); 32 EXTERN_C_END 33 34 #endif 35