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