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