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