Actual source code: petscpc.h
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'
40: #endif
42: #if !defined (PETSC_AVOID_DECLARATIONS)
43: !
44: ! PCSide
45: !
46: PetscEnum PC_LEFT,PC_RIGHT,PC_SYMMETRIC
47: parameter (PC_LEFT=0,PC_RIGHT=1,PC_SYMMETRIC=2)
49: PetscEnum USE_PRECONDITIONER_MATRIX,USE_TRUE_MATRIX
50: parameter (USE_PRECONDITIONER_MATRIX=0,USE_TRUE_MATRIX=1)
52: !
53: ! PCASMType
54: !
55: PetscEnum PC_ASM_BASIC,PC_ASM_RESTRICT,PC_ASM_INTERPOLATE
56: PetscEnum PC_ASM_NONE
58: parameter (PC_ASM_BASIC = 3,PC_ASM_RESTRICT = 1)
59: parameter (PC_ASM_INTERPOLATE = 2,PC_ASM_NONE = 0)
60: !
61: ! PCCompositeType
62: !
63: PetscEnum PC_COMPOSITE_ADDITIVE,PC_COMPOSITE_MULTIPLICATIVE
64: PetscEnum PC_COMPOSITE_SPECIAL
65: parameter (PC_COMPOSITE_ADDITIVE=0,PC_COMPOSITE_MULTIPLICATIVE=1)
66: parameter (PC_COMPOSITE_SPECIAL=2)
67: !
68: ! End of Fortran include file for the PC package in PETSc
70: #endif