1: ! 2: ! 3: ! Include file for Fortran use of the PC (preconditioner) package in PETSc 4: ! 5: #if !defined (__PETSCPC_H) 8: #define PC PetscFortranAddr 9: #define PCSide PetscEnum 10: #define PCASMType PetscEnum 11: #define PCCompositeType PetscEnum 12: #define PCType character*(80) 13: ! 14: ! Various preconditioners 15: ! 16: #define PCNONE 'none' 17: #define PCJACOBI 'jacobi' 18: #define PCSOR 'sor' 19: #define PCLU 'lu' 20: #define PCSHELL 'shell' 21: #define PCBJACOBI 'bjacobi' 22: #define PCMG 'mg' 23: #define PCEISENSTAT 'eisenstat' 24: #define PCILU 'ilu' 25: #define PCICC 'icc' 26: #define PCASM 'asm' 27: #define PCKSP 'ksp' 28: #define PCCOMPOSITE 'composite' 29: #define PCREDUNDANT 'redundant' 30: #define PCSPAI 'spai' 31: #define PCMILU 'milu' 32: #define PCNN 'nn' 33: #define PCCHOLESKY 'cholesky' 34: #define PCSAMG 'samg' 35: #define PCPBJACOBI 'pbjacobi' 36: #define PCMAT 'mat' 37: #define PCHYPRE 'hypre' 38: #define PCFIELDSPLIT 'fieldsplit' 39: #define PCML 'ml' 41: #endif 43: #if !defined (PETSC_AVOID_DECLARATIONS) 44: ! 45: ! PCSide 46: ! 47: PetscEnum PC_LEFT 48: PetscEnum PC_RIGHT 49: PetscEnum PC_SYMMETRIC 50: parameter (PC_LEFT=0,PC_RIGHT=1,PC_SYMMETRIC=2) 52: PetscEnum USE_PRECONDITIONER_MATRIX 53: PetscEnum USE_TRUE_MATRIX 54: parameter (USE_PRECONDITIONER_MATRIX=0,USE_TRUE_MATRIX=1) 56: ! 57: ! PCASMType 58: ! 59: PetscEnum PC_ASM_BASIC 60: PetscEnum PC_ASM_RESTRICT 61: PetscEnum PC_ASM_INTERPOLATE 62: PetscEnum PC_ASM_NONE 64: parameter (PC_ASM_BASIC = 3,PC_ASM_RESTRICT = 1) 65: parameter (PC_ASM_INTERPOLATE = 2,PC_ASM_NONE = 0) 66: ! 67: ! PCCompositeType 68: ! 69: PetscEnum PC_COMPOSITE_ADDITIVE 70: PetscEnum PC_COMPOSITE_MULTIPLICATIVE 71: PetscEnum PC_COMPOSITE_SPECIAL 72: parameter (PC_COMPOSITE_ADDITIVE=0,PC_COMPOSITE_MULTIPLICATIVE=1) 73: parameter (PC_COMPOSITE_SPECIAL=2) 74: ! 75: ! End of Fortran include file for the PC package in PETSc 77: #endif