Actual source code: petscpc.h

petsc-3.12.1 2019-10-22
Report Typos and Errors
  1: !
  2: !
  3: !  Include file for Fortran use of the PC (preconditioner) package in PETSc
  4: !
  5: #if !defined (PETSCPCDEF_H)
  6: #define PETSCPCDEF_H

  8: #include "petsc/finclude/petscmat.h"
  9: #include "petsc/finclude/petscdm.h"

 11: #define PC type(tPC)

 13: #define PCSide PetscEnum
 14: #define PCJacobiType PetscEnum
 15: #define PCASMType PetscEnum
 16: #define PCGASMType PetscEnum
 17: #define PCCompositeType PetscEnum
 18: #define PCRichardsonConvergedReason PetscEnum
 19: #define PCType character*(80)
 20: #define PCFieldSplitSchurPreType PetscEnum
 21: #define PCPARMSGlobalType PetscEnum
 22: #define PCPARMSLocalType PetscEnum
 23: #define PCFieldSplitSchurFactType PetscEnum
 24: #define CoarseProblemType PetscEnum
 25: #define PCGAMGType character*(80)
 26: #define PCGAMGClassicalType character*(80)
 27: #define PCGAMGLayoutType PetscEnum
 28: !
 29: ! GAMG types
 30: !
 31: #define PCGAMGAGG 'agg'
 32: #define PCGAMGGEO  'geo'
 33: #define PCGAMGCLASSICAL 'classical'
 34: !
 35: ! GAMG classical types
 36: !
 37: #define PCGAMGCLASSICALDIRECT   'direct'
 38: #define PCGAMGCLASSICALSTANDARD 'standard'

 40: !
 41: !  Various preconditioners
 42: !
 43: #define PCNONE 'none'
 44: #define PCJACOBI 'jacobi'
 45: #define PCSOR 'sor'
 46: #define PCLU 'lu'
 47: #define PCSHELL 'shell'
 48: #define PCBJACOBI 'bjacobi'
 49: #define PCMG 'mg'
 50: #define PCEISENSTAT 'eisenstat'
 51: #define PCILU 'ilu'
 52: #define PCICC 'icc'
 53: #define PCASM 'asm'
 54: #define PCGASM 'gasm'
 55: #define PCKSP 'ksp'
 56: #define PCCOMPOSITE 'composite'
 57: #define PCREDUNDANT 'redundant'
 58: #define PCSPAI 'spai'
 59: #define PCNN 'nn'
 60: #define PCCHOLESKY 'cholesky'
 61: #define PCPBJACOBI 'pbjacobi'
 62: #define PCVPBJACOBI 'vpbjacobi'
 63: #define PCMAT 'mat'
 64: #define PCHYPRE 'hypre'
 65: #define PCPARMS 'parms'
 66: #define PCFIELDSPLIT 'fieldsplit'
 67: #define PCTFS 'tfs'
 68: #define PCML 'ml'
 69: #define PCGALERKIN 'galerkin'
 70: #define PCEXOTIC 'exotic'
 71: #define PCSUPPORTGRAPH 'supportgraph'
 72: #define PCCP 'cp'
 73: #define PCBFBT 'bfbt'
 74: #define PCLSC 'lsc'
 75: #define PCPYTHON 'python'
 76: #define PCPFMG 'pfmg'
 77: #define PCSYSPFMG 'syspfmg'
 78: #define PCREDISTRIBUTE 'redistribute'
 79: #define PCSVD 'svd'
 80: #define PCGAMG 'gamg'
 81: #define PCBDDC 'bddc'
 82: #define PCPATCH 'patch'
 83: #define PCDEFLATION 'deflation'

 85: #define PCMGType PetscEnum
 86: #define PCMGCycleType PetscEnum
 87: #define PCMGGalerkinType PetscEnum
 88: #define PCExoticType PetscEnum
 89: #define PCDeflationSpaceType PetscEnum
 90: #define PCBDDCInterfaceExtType PetscEnum
 91: #define PCFailedReason PetscEnum
 92: #endif