Actual source code: petscksp.h

  1: !
  2: !
  3: !  Include file for Fortran use of the KSP package in PETSc
  4: !
  5: #if !defined (__PETSCKSP_H)

  8: #define KSP PetscFortranAddr
  9: #define KSPType character*(80)
 10: #define KSPCGType PetscEnum
 11: #define KSPConvergedReason PetscEnum 
 12: #define KSPNormType PetscEnum
 13: #define KSPGMRESCGSRefinementType PetscEnum
 14: !
 15: !  Various Krylov subspace methods
 16: !
 17: #define KSPRICHARDSON 'richardson'
 18: #define KSPCHEBYCHEV 'chebychev'
 19: #define KSPCG 'cg'
 20: #define KSPCGNE 'cgne'
 21: #define KSPSTCG 'stcg'
 22: #define KSPGMRES 'gmres'
 23: #define KSPFGMRES 'fgmres'
 24: #define KSPLGMRES 'lgmres'
 25: #define KSPTCQMR 'tcqmr'
 26: #define KSPBCGS 'bcgs'
 27: #define KSPBCGSL 'bcgsl'
 28: #define KSPCGS 'cgs'
 29: #define KSPTFQMR 'tfqmr'
 30: #define KSPCR 'cr'
 31: #define KSPLSQR 'lsqr'
 32: #define KSPPREONLY 'preonly'
 33: #define KSPQCG 'qcg'
 34: #define KSPBICG 'bicg'
 35: #define KSPMINRES 'minres'
 36: #define KSPSYMMLQ 'symmlq'
 37: #define KSPLCD 'lcd'
 38: #endif


 41: #if !defined (PETSC_AVOID_DECLARATIONS)

 43: !
 44: !  CG Types
 45: !
 46:       PetscEnum KSP_CG_SYMMETRIC,KSP_CG_HERMITIAN

 48:       parameter (KSP_CG_SYMMETRIC=0,KSP_CG_HERMITIAN=1)

 50:       PetscEnum KSP_CONVERGED_RTOL,KSP_CONVERGED_ATOL
 51:       PetscEnum KSP_CONVERGED_ITS
 52:       PetscEnum KSP_DIVERGED_ITS,KSP_DIVERGED_DTOL
 53:       PetscEnum KSP_DIVERGED_BREAKDOWN,KSP_CONVERGED_ITERATING
 54:       PetscEnum KSP_CONVERGED_QCG_NEG_CURVE
 55:       PetscEnum KSP_CONVERGED_QCG_CONSTRAINED
 56:       PetscEnum KSP_CONVERGED_STEP_LENGTH
 57:       PetscEnum KSP_CONVERGED_HAPPY_BREAKDOWN
 58:       PetscEnum KSP_DIVERGED_BREAKDOWN_BICG
 59:       PetscEnum KSP_DIVERGED_NONSYMMETRIC
 60:       PetscEnum KSP_DIVERGED_INDEFINITE_PC

 62:       parameter (KSP_CONVERGED_RTOL      = 2)
 63:       parameter (KSP_CONVERGED_ATOL      = 3)
 64:       parameter (KSP_CONVERGED_ITS       = 4)
 65:       parameter (KSP_CONVERGED_QCG_NEG_CURVE = 5)
 66:       parameter (KSP_CONVERGED_QCG_CONSTRAINED = 6)
 67:       parameter (KSP_CONVERGED_STEP_LENGTH = 7)
 68:       parameter (KSP_CONVERGED_HAPPY_BREAKDOWN = 8)

 70:       parameter (KSP_DIVERGED_ITS        = -3)
 71:       parameter (KSP_DIVERGED_DTOL       = -4)
 72:       parameter (KSP_DIVERGED_BREAKDOWN  = -5)
 73:       parameter (KSP_DIVERGED_BREAKDOWN_BICG = -6)
 74:       parameter (KSP_DIVERGED_NONSYMMETRIC = -7)
 75:       parameter (KSP_DIVERGED_INDEFINITE_PC = -8)

 77:       parameter (KSP_CONVERGED_ITERATING = 0)
 78: !
 79: !  Possible arguments to KSPSetNormType()
 80: !
 81:       PetscEnum KSP_NO_NORM
 82:       PetscEnum KSP_PRECONDITIONED_NORM
 83:       PetscEnum KSP_UNPRECONDITIONED_NORM
 84:       PetscEnum KSP_NATURAL_NORM
 85: 
 86:       parameter (KSP_NO_NORM=0)
 87:       parameter (KSP_PRECONDITIONED_NORM=1)
 88:       parameter (KSP_UNPRECONDITIONED_NORM=2)
 89:       parameter (KSP_NATURAL_NORM=3)
 90: !
 91: !   Possible arguments to KSPMonitorSet()
 92: !
 93:       external KSPDEFAULTCONVERGED
 94:       external KSPMONITORDEFAULT
 95:       external KSPMONITORTRUERESIDUALNORM
 96:       external KSPMONITORLG
 97:       external KSPMONITORLGTRUERESIDUALNORM
 98:       external KSPMONITORSOLUTION
 99:       external KSPMONITORSINGULARVALUE
100:       external KSPGMRESMONITORKRYLOV
101: !
102: !   Possible arguments to KSPGMRESSetRefinementType()
103: !
104:       PetscEnum KSP_GMRES_CGS_REFINE_NEVER
105:       PetscEnum KSP_GMRES_CGS_REFINE_IFNEEDED
106:       PetscEnum KSP_GMRES_CGS_REFINE_ALWAYS
107: !
108:       parameter (KSP_GMRES_CGS_REFINE_NEVER = 0)
109:       parameter (KSP_GMRES_CGS_REFINE_IFNEEDED = 1)
110:       parameter (KSP_GMRES_CGS_REFINE_ALWAYS = 2)
111: !
112: !PETSC_DEC_ATTRIBUTES(KSPDEFAULTCONVERGED,'_KSPDEFAULTCONVERGED')
113: !PETSC_DEC_ATTRIBUTES(KSPMONITORDEFAULT,'_KSPMONITORDEFAULT')
114: !PETSC_DEC_ATTRIBUTES(KSPMONITORTRUERESIDUALNORM,'_KSPMONITORTRUERESIDUALNORM')
115: !PETSC_DEC_ATTRIBUTES(KSPMONITORLG,'_KSPMONITORLG')
116: !PETSC_DEC_ATTRIBUTES(KSPMONITORLGTRUERESIDUALNORM,'_KSPMONITORLGTRUERESIDUALNORM')
117: !PETSC_DEC_ATTRIBUTES(KSPMONITORSOLUTION,'_KSPMONITORSOLUTION')
118: !PETSC_DEC_ATTRIBUTES(KSPMONITORSINGULARVALUE,'_KSPMONITORSINGULARVALUE')
119: !PETSC_DEC_ATTRIBUTES(KSPGMRESMONITORKRYLOV,'_KSPGMRESMONITORKRYLOV')

121: !
122: !  End of Fortran include file for the KSP package in PETSc
123: !

125: #endif