Actual source code: petscsnes.h
1: !
2: ! Include file for Fortran use of the SNES package in PETSc
3: !
4: #if !defined (PETSCSNESDEF_H)
5: #define PETSCSNESDEF_H
7: #include "petsc/finclude/petscksp.h"
9: #define SNES type(tSNES)
10: #define SNESLineSearch type(tSNESLineSearch)
11: #define MatMFFD type(tMatMFFD)
12: #define PetscConvEst type(tPetscConvEst)
14: #define SNESType character*(80)
15: #define SNESMSType character*(80)
16: #define SNESConvergedReason PetscEnum
17: #define SNESLineSearchReason PetscEnum
18: #define SNESLineSearchType character*(80)
19: #define MatMFFDType character*(80)
20: #define SNESLineSearchOrder PetscEnum
21: #define SNESNormSchedule PetscEnum
22: #define SNESQNType PetscEnum
23: #define SNESQNRestartType PetscEnum
24: #define SNESQNCompositionType PetscEnum
25: #define SNESQNScaleType PetscEnum
26: #define SNESNCGType PetscEnum
27: #define SNESNGMRESRestartType PetscEnum
28: #define SNESNGMRESSelectType PetscEnum
29: #define SNESNewtonTRFallbackType PetscEnum
30: #define SNESNewtonTRQNType PetscEnum
31: #define SNESCompositeType PetscEnum
32: #define SNESFunctionType PetscEnum
33: #define SNESNewtonALCorrectionType PetscEnum
35: !
36: ! SNESType
37: !
38: #define SNESNEWTONLS 'newtonls'
39: #define SNESNEWTONTR 'newtontr'
40: #define SNESNEWTONTRDC 'newtontrdc'
41: #define SNESNEWTONAL 'newtonal'
42: #define SNESPYTHON 'python'
43: #define SNESNRICHARDSON 'nrichardson'
44: #define SNESKSPONLY 'ksponly'
45: #define SNESKSPTRANSPOSEONLY 'ksptransposeonly'
46: #define SNESVINEWTONRSLS 'vinewtonrsls'
47: #define SNESVINEWTONSSLS 'vinewtonssls'
48: #define SNESNGMRES 'ngmres'
49: #define SNESQN 'qn'
50: #define SNESSHELL 'shell'
51: #define SNESNCG 'ncg'
52: #define SNESFAS 'fas'
53: #define SNESMS 'ms'
55: !
56: ! SNESLineSearchType
57: !
59: #define SNESLINESEARCHBASIC 'basic'
60: #define SNESLINESEARCHNONE 'none'
61: #define SNESLINESEARCHBT 'bt'
62: #define SNESLINESEARCHL2 'l2'
63: #define SNESLINESEARCHCP 'cp'
64: #define SNESLINESEARCHSHELL 'shell'
65: #define SNESLINESEARCHNCGLINEAR 'ncglinear'
67: !
68: ! SNESLineSearchOrder
69: !
71: #define SNES_LINESEARCH_ORDER_LINEAR 1
72: #define SNES_LINESEARCH_ORDER_QUADRATIC 2
73: #define SNES_LINESEARCH_ORDER_CUBIC 3
75: !
76: ! SNESMSType
77: !
78: #define SNESMSM62 'm62'
79: #define SNESMSEULER 'euler'
80: #define SNESMSJAMESON83 'jameson83'
81: #define SNESMSVLTP11 'vltp11'
82: #define SNESMSVLTP21 'vltp21'
83: #define SNESMSVLTP31 'vltp31'
84: #define SNESMSVLTP41 'vltp41'
85: #define SNESMSVLTP51 'vltp51'
86: #define SNESMSVLTP61 'vltp61'
88: #endif