Actual source code: petscsnes.h
petsc-3.13.6 2020-09-29
1: !
2: ! Include file for Fortran use of the SNES package in PETSc
3: !
4: #include "petsc/finclude/petscsnes.h"
6: type tSNES
7: PetscFortranAddr:: v PETSC_FORTRAN_TYPE_INITIALIZE
8: end type tSNES
10: type tPetscConvEst
11: PetscFortranAddr:: v PETSC_FORTRAN_TYPE_INITIALIZE
12: end type tPetscConvEst
14: SNES, parameter :: PETSC_NULL_SNES = tSNES(0)
15: PetscConvEst, parameter :: PETSC_NULL_CONVEST = tPetscConvEst(0)
16: !
17: ! Convergence flags
18: !
19: PetscEnum, parameter :: SNES_CONVERGED_FNORM_ABS = 2
20: PetscEnum, parameter :: SNES_CONVERGED_FNORM_RELATIVE = 3
21: PetscEnum, parameter :: SNES_CONVERGED_SNORM_RELATIVE = 4
22: PetscEnum, parameter :: SNES_CONVERGED_ITS = 5
24: PetscEnum, parameter :: SNES_DIVERGED_FUNCTION_DOMAIN = -1
25: PetscEnum, parameter :: SNES_DIVERGED_FUNCTION_COUNT = -2
26: PetscEnum, parameter :: SNES_DIVERGED_LINEAR_SOLVE = -3
27: PetscEnum, parameter :: SNES_DIVERGED_FNORM_NAN = -4
28: PetscEnum, parameter :: SNES_DIVERGED_MAX_IT = -5
29: PetscEnum, parameter :: SNES_DIVERGED_LINE_SEARCH = -6
30: PetscEnum, parameter :: SNES_DIVERGED_INNER = -7
31: PetscEnum, parameter :: SNES_DIVERGED_LOCAL_MIN = -8
32: PetscEnum, parameter :: SNES_DIVERGED_DTOL = -9
33: PetscEnum, parameter :: SNES_DIVERGED_JACOBIAN_DOMAIN = -10
34: PetscEnum, parameter :: SNES_DIVERGED_TR_DELTA = -11
35: PetscEnum, parameter :: SNES_CONVERGED_ITERATING = 0
36: !
37: ! SNESLineSearchReason
38: !
39: PetscEnum, parameter :: SNES_LINESEARCH_SUCCEEDED = 0
40: PetscEnum, parameter :: SNES_LINESEARCH_FAILED_NANORINF = 1
41: PetscEnum, parameter :: SNES_LINESEARCH_FAILED_DOMAIN = 2
42: PetscEnum, parameter :: SNES_LINESEARCH_FAILED_REDUCT = 3
43: PetscEnum, parameter :: SNES_LINESEARCH_FAILED_USER = 4
44: PetscEnum, parameter :: SNES_LINESEARCH_FAILED_FUNCTION = 5
45: !
46: ! SNESNormSchedule
47: !
48: PetscEnum, parameter :: SNES_NORM_DEFAULT = -1
49: PetscEnum, parameter :: SNES_NORM_NONE = 0
50: PetscEnum, parameter :: SNES_NORM_ALWAYS = 1
51: PetscEnum, parameter :: SNES_NORM_INITIAL_ONLY = 2
52: PetscEnum, parameter :: SNES_NORM_FINAL_ONLY = 3
53: PetscEnum, parameter :: SNES_NORM_INITIAL_FINAL_ONLY = 4
54: !
55: ! Some PETSc fortran functions that the user might pass as arguments
56: !
57: external SNESCOMPUTEJACOBIANDEFAULT
58: external MATMFFDCOMPUTEJACOBIAN
59: external SNESCOMPUTEJACOBIANDEFAULTCOLOR
60: external SNESMONITORDEFAULT
61: external SNESMONITORLGRESIDUALNORM
62: external SNESMONITORSOLUTION
63: external SNESMONITORSOLUTIONUPDATE
65: external SNESCONVERGEDDEFAULT
66: external SNESCONVERGEDSKIP
68: !
69: ! SNESNGMRESRestartType
70: !
71: PetscEnum, parameter :: SNES_NGMRES_RESTART_NONE = 0
72: PetscEnum, parameter :: SNES_NGMRES_RESTART_PERIODIC = 1
73: PetscEnum, parameter :: SNES_NGMRES_RESTART_DIFFERENCE = 2
74: !
75: ! SNESNGMRESSelectionType
76: !
77: PetscEnum, parameter :: SNES_NGMRES_SELECT_NONE = 0
78: PetscEnum, parameter :: SNES_NGMRES_SELECT_DIFFERENCE = 1
79: PetscEnum, parameter :: SNES_NGMRES_SELECT_LINESEARCH = 2
80: !
81: ! SNESQNType
82: !
83: PetscEnum, parameter :: SNES_QN_LBFGS = 0
84: PetscEnum, parameter :: SNES_QN_BROYDEN = 1
85: PetscEnum, parameter :: SNES_QN_BADBROYDEN = 2
86: !
87: ! SNESQNScaleType
88: !
89: PetscEnum, parameter :: SNES_QN_SCALE_DEFAULT = 0
90: PetscEnum, parameter :: SNES_QN_SCALE_NONE = 1
91: PetscEnum, parameter :: SNES_QN_SCALE_SHANNO = 2
92: PetscEnum, parameter :: SNES_QN_SCALE_LINESEARCH = 3
93: PetscEnum, parameter :: SNES_QN_SCALE_JACOBIAN = 4
94: !
95: ! SNESQNRestartType
96: !
97: PetscEnum, parameter :: SNES_QN_RESTART_DEFAULT = 0
98: PetscEnum, parameter :: SNES_QN_RESTART_NONE = 1
99: PetscEnum, parameter :: SNES_QN_RESTART_POWELL = 2
100: PetscEnum, parameter :: SNES_QN_RESTART_PERIODIC = 3
101: !
102: ! SNESNCGType
103: !
104: PetscEnum, parameter :: SNES_NCG_FR = 0
105: PetscEnum, parameter :: SNES_NCG_PRP = 1
106: PetscEnum, parameter :: SNES_NCG_HS = 2
107: PetscEnum, parameter :: SNES_NCG_DY = 3
108: PetscEnum, parameter :: SNES_NCG_CD = 4
109: !
110: ! End of Fortran include file for the SNES package in PETSc