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'
 66: #define SNESLINESEARCHBISECTION 'bisection'

 68: !
 69: ! SNESLineSearchOrder
 70: !

 72: #define SNES_LINESEARCH_ORDER_LINEAR    1
 73: #define SNES_LINESEARCH_ORDER_QUADRATIC 2
 74: #define SNES_LINESEARCH_ORDER_CUBIC     3

 76: !
 77: !  SNESMSType
 78: !
 79: #define SNESMSM62       'm62'
 80: #define SNESMSEULER     'euler'
 81: #define SNESMSJAMESON83 'jameson83'
 82: #define SNESMSVLTP11    'vltp11'
 83: #define SNESMSVLTP21    'vltp21'
 84: #define SNESMSVLTP31    'vltp31'
 85: #define SNESMSVLTP41    'vltp41'
 86: #define SNESMSVLTP51    'vltp51'
 87: #define SNESMSVLTP61    'vltp61'

 89: #endif