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 30: #define SNESNewtonTRFallbackType PetscEnum 32: ! 33: ! SNESType 34: ! 35: #define SNESNEWTONLS 'newtonls' 36: #define SNESNEWTONTR 'newtontr' 37: #define SNESNEWTONTRDC 'newtontrdc' 38: #define SNESPYTHON 'python' 39: #define SNESNRICHARDSON 'nrichardson' 40: #define SNESKSPONLY 'ksponly' 41: #define SNESKSPTRANSPOSEONLY 'ksptransposeonly' 42: #define SNESVINEWTONRSLS 'vinewtonrsls' 43: #define SNESVINEWTONSSLS 'vinewtonssls' 44: #define SNESNGMRES 'ngmres' 45: #define SNESQN 'qn' 46: #define SNESSHELL 'shell' 47: #define SNESNCG 'ncg' 48: #define SNESFAS 'fas' 49: #define SNESMS 'ms' 51: ! 52: ! SNESLineSearchType 53: ! 55: #define SNESLINESEARCHBASIC 'basic' 56: #define SNESLINESEARCHNONE 'none' 57: #define SNESLINESEARCHBT 'bt' 58: #define SNESLINESEARCHL2 'l2' 59: #define SNESLINESEARCHCP 'cp' 60: #define SNESLINESEARCHSHELL 'shell' 61: #define SNESLINESEARCHNCGLINEAR 'ncglinear' 63: ! 64: ! SNESLineSearchOrder 65: ! 67: #define SNES_LINESEARCH_ORDER_LINEAR 1 68: #define SNES_LINESEARCH_ORDER_QUADRATIC 2 69: #define SNES_LINESEARCH_ORDER_CUBIC 3 71: ! 72: ! SNESMSType 73: ! 74: #define SNESMSM62 'm62' 75: #define SNESMSEULER 'euler' 76: #define SNESMSJAMESON83 'jameson83' 77: #define SNESMSVLTP11 'vltp11' 78: #define SNESMSVLTP21 'vltp21' 79: #define SNESMSVLTP31 'vltp31' 80: #define SNESMSVLTP41 'vltp41' 81: #define SNESMSVLTP51 'vltp51' 82: #define SNESMSVLTP61 'vltp61' 84: #endif