Actual source code: petscksp.h

  1: !
  2: !  "$Id: petscksp.h,v 1.32 2001/04/10 22:37:56 balay Exp $";
  3: !
  4: !  Include file for Fortran use of the KSP package in PETSc
  5: !
  6: #if !defined (__PETSCKSP_H)

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


 37: #if !defined (PETSC_AVOID_DECLARATIONS)

 39: !
 40: !  CG Types
 41: !
 42:       integer KSP_CG_SYMMETRIC,KSP_CG_HERMITIAN

 44:       parameter (KSP_CG_SYMMETRIC=1,KSP_CG_HERMITIAN=2)

 46:       integer KSP_CONVERGED_RTOL,KSP_CONVERGED_ATOL
 47:       integer KSP_CONVERGED_ITS
 48:       integer KSP_DIVERGED_ITS,KSP_DIVERGED_DTOL
 49:       integer KSP_DIVERGED_BREAKDOWN,KSP_CONVERGED_ITERATING
 50:       integer KSP_CONVERGED_QCG_NEG_CURVE
 51:       integer KSP_CONVERGED_QCG_CONSTRAINED
 52:       integer KSP_CONVERGED_STEP_LENGTH
 53:       integer KSP_DIVERGED_BREAKDOWN_BICG
 54:       integer KSP_DIVERGED_NONSYMMETRIC
 55:       integer KSP_DIVERGED_INDEFINITE_PC

 57:       parameter (KSP_CONVERGED_RTOL      = 2)
 58:       parameter (KSP_CONVERGED_ATOL      = 3)
 59:       parameter (KSP_CONVERGED_ITS       = 4)
 60:       parameter (KSP_CONVERGED_QCG_NEG_CURVE = 5)
 61:       parameter (KSP_CONVERGED_QCG_CONSTRAINED = 6)
 62:       parameter (KSP_CONVERGED_STEP_LENGTH = 7)

 64:       parameter (KSP_DIVERGED_ITS        = -3)
 65:       parameter (KSP_DIVERGED_DTOL       = -4)
 66:       parameter (KSP_DIVERGED_BREAKDOWN  = -5)
 67:       parameter (KSP_DIVERGED_BREAKDOWN_BICG = -6)
 68:       parameter (KSP_DIVERGED_NONSYMMETRIC = -7)
 69:       parameter (KSP_DIVERGED_INDEFINITE_PC = -8)

 71:       parameter (KSP_CONVERGED_ITERATING = 0)
 72: !
 73: !  Possible arguments to KSPSetNormType()
 74: !
 75:       integer KSP_NO_NORM
 76:       integer KSP_PRECONDITIONED_NORM
 77:       integer KSP_UNPRECONDITIONED_NORM
 78:       integer KSP_NATURAL_NORM
 79: 
 80:       parameter (KSP_NO_NORM=0)
 81:       parameter (KSP_PRECONDITIONED_NORM=1)
 82:       parameter (KSP_UNPRECONDITIONED_NORM=2)
 83:       parameter (KSP_NATURAL_NORM=3)
 84: !
 85: !   Possible arguments to KSPSetMonitor()
 86: !
 87:       external KSPDEFAULTCONVERGED
 88:       external KSPDEFAULTMONITOR
 89:       external KSPTRUEMONITOR
 90:       external KSPLGMONITOR
 91:       external KSPLGTRUEMONITOR
 92:       external KSPVECVIEWMONITOR
 93:       external KSPSINGULARVALUEMONITOR
 94:       external KSPGMRESKRYLOVMONITOR
 95: !
 96: !   Possible arguments to KSPGMRESSetRefinementType()
 97: !
 98:       integer KSP_GMRES_CGS_REFINE_NEVER
 99:       integer KSP_GMRES_CGS_REFINE_IFNEEDED
100:       integer KSP_GMRES_CGS_REFINE_ALWAYS
101: !
102:       parameter (KSP_GMRES_CGS_REFINE_NEVER = 0)
103:       parameter (KSP_GMRES_CGS_REFINE_IFNEEDED = 1)
104:       parameter (KSP_GMRES_CGS_REFINE_ALWAYS = 2)
105: !
106: !PETSC_DEC_ATTRIBUTES(KSPDEFAULTCONVERGED,'_KSPDEFAULTCONVERGED')
107: !PETSC_DEC_ATTRIBUTES(KSPDEFAULTMONITOR,'_KSPDEFAULTMONITOR')
108: !PETSC_DEC_ATTRIBUTES(KSPTRUEMONITOR,'_KSPTRUEMONITOR')
109: !PETSC_DEC_ATTRIBUTES(KSPLGMONITOR,'_KSPLGMONITOR')
110: !PETSC_DEC_ATTRIBUTES(KSPLGTRUEMONITOR,'_KSPLGTRUEMONITOR')
111: !PETSC_DEC_ATTRIBUTES(KSPVECVIEWMONITOR,'_KSPVECVIEWMONITOR')
112: !PETSC_DEC_ATTRIBUTES(KSPSINGULARVALUEMONITOR,'_KSPSINGULARVALUEMONITOR')
113: !PETSC_DEC_ATTRIBUTES(KSPGMRESKRYLOVMONITOR,'_KSPGMRESKRYLOVMONITOR')

115: !
116: !  End of Fortran include file for the KSP package in PETSc
117: !

119: #endif