Actual source code: petscsnes.h
petsc-3.12.1 2019-10-22
Report Typos and Errors

      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)

     11: #define PetscConvEst type(tPetscConvEst)

     13: #define SNESType character*(80)
     14: #define SNESMSType character*(80)
     15: #define SNESConvergedReason PetscEnum
     16: #define SNESLineSearchReason PetscEnum
     17: #define SNESLineSearchType  character*(80)
     18: #define MatMFFD PetscFortranAddr
     19: #define MatMFFDType PetscFortranAddr
     20: #define SNESLineSearch PetscFortranAddr
     21: #define SNESLineSearchOrder PetscEnum
     22: #define SNESNormSchedule PetscEnum
     23: #define SNESQNType PetscEnum
     24: #define SNESQNRestartType PetscEnum
     25: #define SNESQNCompositionType PetscEnum
     26: #define SNESQNScaleType PetscEnum
     27: #define SNESNCGType PetscEnum
     28: #define SNESNGMRESRestartType PetscEnum
     29: #define SNESNGMRESSelectType PetscEnum

     31: !
     32: !  SNESType
     33: !
     34: #define SNESNEWTONLS         'newtonls'
     35: #define SNESNEWTONTR         'newtontr'
     36: #define SNESPYTHON           'python'
     37: #define SNESNRICHARDSON      'nrichardson'
     38: #define SNESKSPONLY          'ksponly'
     39: #define SNESKSPTRANSPOSEONLY 'ksptransposeonly'
     40: #define SNESVINEWTONRSLS     'vinewtonrsls'
     41: #define SNESVINEWTONSSLS     'vinewtonssls'
     42: #define SNESNGMRES           'ngmres'
     43: #define SNESQN               'qn'
     44: #define SNESSHELL            'shell'
     45: #define SNESNCG              'ncg'
     46: #define SNESFAS              'fas'
     47: #define SNESMS               'ms'

     49: !
     50: ! SNESLineSearchType
     51: !

     53: #define SNESLINESEARCHBASIC     'basic'
     54: #define SNESLINESEARCHBT        'bt'
     55: #define SNESLINESEARCHL2        'l2'
     56: #define SNESLINESEARCHCP        'cp'
     57: #define SNESLINESEARCHSHELL     'shell'
     58: #define SNESLINESEARCHNCGLINEAR 'ncglinear'

     60: !
     61: ! SNESLineSearchOrder
     62: !

     64: #define SNES_LINESEARCH_ORDER_LINEAR    1
     65: #define SNES_LINESEARCH_ORDER_QUADRATIC 2
     66: #define SNES_LINESEARCH_ORDER_CUBIC     3

     69: !
     70: !  SNESMSType
     71: !
     72: #define SNESMSEULER     'euler'
     73: #define SNESMSM62       'm62'
     74: #define SNESMSJAMESON83 'jameson83'
     75: #define SNESMSVLTP21    'vltp21'
     76: #define SNESMSVLTP31    'vltp31'
     77: #define SNESMSVLTP41    'vltp41'
     78: #define SNESMSVLTP51    'vltp51'
     79: #define SNESMSVLTP61    'vltp61'

     83: #endif