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'
39: #define PCML 'ml'
41: #endif
43: #if !defined (PETSC_AVOID_DECLARATIONS)
44: !
45: ! PCSide
46: !
47: PetscEnum PC_LEFT,PC_RIGHT,PC_SYMMETRIC
48: parameter (PC_LEFT=0,PC_RIGHT=1,PC_SYMMETRIC=2)
50: PetscEnum USE_PRECONDITIONER_MATRIX,USE_TRUE_MATRIX
51: parameter (USE_PRECONDITIONER_MATRIX=0,USE_TRUE_MATRIX=1)
53: !
54: ! PCASMType
55: !
56: PetscEnum PC_ASM_BASIC,PC_ASM_RESTRICT,PC_ASM_INTERPOLATE
57: PetscEnum PC_ASM_NONE
59: parameter (PC_ASM_BASIC = 3,PC_ASM_RESTRICT = 1)
60: parameter (PC_ASM_INTERPOLATE = 2,PC_ASM_NONE = 0)
61: !
62: ! PCCompositeType
63: !
64: PetscEnum PC_COMPOSITE_ADDITIVE,PC_COMPOSITE_MULTIPLICATIVE
65: PetscEnum PC_COMPOSITE_SPECIAL
66: parameter (PC_COMPOSITE_ADDITIVE=0,PC_COMPOSITE_MULTIPLICATIVE=1)
67: parameter (PC_COMPOSITE_SPECIAL=2)
68: !
69: ! End of Fortran include file for the PC package in PETSc
71: #endif