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