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: #define PCHPDDMCoarseCorrectionType PetscEnum 29: ! 30: ! GAMG types 31: ! 32: #define PCGAMGAGG 'agg' 33: #define PCGAMGGEO 'geo' 34: #define PCGAMGCLASSICAL 'classical' 35: ! 36: ! GAMG classical types 37: ! 38: #define PCGAMGCLASSICALDIRECT 'direct' 39: #define PCGAMGCLASSICALSTANDARD 'standard' 41: ! 42: ! Various preconditioners 43: ! 44: #define PCNONE 'none' 45: #define PCJACOBI 'jacobi' 46: #define PCSOR 'sor' 47: #define PCLU 'lu' 48: #define PCQR 'qr' 49: #define PCSHELL 'shell' 50: #define PCAMGX 'amgx' 51: #define PCBJACOBI 'bjacobi' 52: #define PCMG 'mg' 53: #define PCEISENSTAT 'eisenstat' 54: #define PCILU 'ilu' 55: #define PCICC 'icc' 56: #define PCASM 'asm' 57: #define PCGASM 'gasm' 58: #define PCKSP 'ksp' 59: #define PCCOMPOSITE 'composite' 60: #define PCREDUNDANT 'redundant' 61: #define PCSPAI 'spai' 62: #define PCNN 'nn' 63: #define PCCHOLESKY 'cholesky' 64: #define PCPBJACOBI 'pbjacobi' 65: #define PCVPBJACOBI 'vpbjacobi' 66: #define PCMAT 'mat' 67: #define PCHYPRE 'hypre' 68: #define PCPARMS 'parms' 69: #define PCFIELDSPLIT 'fieldsplit' 70: #define PCTFS 'tfs' 71: #define PCML 'ml' 72: #define PCGALERKIN 'galerkin' 73: #define PCEXOTIC 'exotic' 74: #define PCCP 'cp' 75: #define PCBFBT 'bfbt' 76: #define PCLSC 'lsc' 77: #define PCPYTHON 'python' 78: #define PCPFMG 'pfmg' 79: #define PCSYSPFMG 'syspfmg' 80: #define PCREDISTRIBUTE 'redistribute' 81: #define PCSVD 'svd' 82: #define PCGAMG 'gamg' 83: #define PCCHOWILUVIENNACL 'chowiluviennacl' 84: #define PCROWSCALINGVIENNACL 'rowscalingviennacl' 85: #define PCSAVIENNACL 'saviennacl' 86: #define PCBDDC 'bddc' 87: #define PCKACZMARZ 'kaczmarz' 88: #define PCTELESCOPE 'telescope' 89: #define PCPATCH 'patch' 90: #define PCLMVM 'lmvm' 91: #define PCHMG 'hmg' 92: #define PCDEFLATION 'deflation' 93: #define PCHPDDM 'hpddm' 94: #define PCH2OPUS 'h2opus' 95: #define PCMPI 'mpi' 97: #define PCMGType PetscEnum 98: #define PCMGCycleType PetscEnum 99: #define PCMGGalerkinType PetscEnum 100: #define PCExoticType PetscEnum 101: #define PCDeflationSpaceType PetscEnum 102: #define PCBDDCInterfaceExtType PetscEnum 103: #define PCHPDDMCoarseCorrectionType PetscEnum 104: #define PCFailedReason PetscEnum 105: #endif