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