1: ! 2: ! 3: ! Include file for Fortran use of the KSP package in PETSc 4: ! 5: #if !defined (PETSCKSPDEF_H) 6: #define PETSCKSPDEF_H 8: #include "petsc/finclude/petscpc.h" 10: #define KSP type(tKSP) 11: #define KSPGuess type(tKSPGuess) 13: #define KSPType character*(80) 14: #define KSPGuessType character*(80) 15: #define KSPCGType PetscEnum 16: #define KSPFCDTruncationType PetscEnum 17: #define KSPConvergedReason PetscEnum 18: #define KSPNormType PetscEnum 19: #define KSPGMRESCGSRefinementType PetscEnum 20: #define MatSchurComplementAinvType PetscEnum 21: #define MatLMVMSymBroydenScaleType PetscEnum 22: #define MatLMVMDenseType PetscEnum 23: #define KSPHPDDMType PetscEnum 24: #define KSPChebyshevKind PetscEnum 26: ! 27: ! Various Krylov subspace methods 28: ! 29: #define KSPRICHARDSON 'richardson' 30: #define KSPCHEBYSHEV 'chebyshev' 31: #define KSPCG 'cg' 32: #define KSPGROPPCG 'groppcg' 33: #define KSPPIPECG 'pipecg' 34: #define KSPPIPECGRR 'pipecgrr' 35: #define KSPPIPELCG 'pipelcg' 36: #define KSPPIPECG2 'pipecg2' 37: #define KSPCGNE 'cgne' 38: #define KSPNASH 'nash' 39: #define KSPSTCG 'stcg' 40: #define KSPGLTR 'gltr' 41: #define KSPFCG 'fcg' 42: #define KSPPIPEFCG 'pipefcg' 43: #define KSPGMRES 'gmres' 44: #define KSPPIPEFGMRES 'pipefgmres' 45: #define KSPFGMRES 'fgmres' 46: #define KSPLGMRES 'lgmres' 47: #define KSPDGMRES 'dgmres' 48: #define KSPPGMRES 'pgmres' 49: #define KSPTCQMR 'tcqmr' 50: #define KSPBCGS 'bcgs' 51: #define KSPIBCGS 'ibcgs' 52: #define KSPQMRCGS 'qmrcgs' 53: #define KSPFBCGS 'fbcgs' 54: #define KSPFBCGSR 'fbcgsr' 55: #define KSPBCGSL 'bcgsl' 56: #define KSPPIPEBCGS 'pipebcgs' 57: #define KSPCGS 'cgs' 58: #define KSPTFQMR 'tfqmr' 59: #define KSPCR 'cr' 60: #define KSPPIPECR 'pipecr' 61: #define KSPLSQR 'lsqr' 62: #define KSPPREONLY 'preonly' 63: #define KSPNONE 'none' 64: #define KSPQCG 'qcg' 65: #define KSPBICG 'bicg' 66: #define KSPMINRES 'minres' 67: #define KSPSYMMLQ 'symmlq' 68: #define KSPLCD 'lcd' 69: #define KSPPYTHON 'python' 70: #define KSPGCR 'gcr' 71: #define KSPPIPEGCR 'pipegcr' 72: #define KSPTSIRM 'tsirm' 73: #define KSPCGLS 'cgls' 74: #define KSPFETIDP 'fetidp' 75: #define KSPHPDDM 'hpddm' 76: ! 77: ! Various Initial guesses for Krylov subspace methods 78: ! 79: #define KSPGUESSFISCHER 'fischer' 80: #define KSPGUESSPOD 'pod' 81: #endif