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