1: ! 2: ! Include file for Fortran use of the SNES package in PETSc 3: ! 4: #include "petsc/finclude/petscsnes.h" 6: type tSNES 7: PetscFortranAddr:: v PETSC_FORTRAN_TYPE_INITIALIZE 8: end type tSNES 10: type tPetscConvEst 11: PetscFortranAddr:: v PETSC_FORTRAN_TYPE_INITIALIZE 12: end type tPetscConvEst 14: SNES, parameter :: PETSC_NULL_SNES = tSNES(0) 15: PetscConvEst, parameter :: PETSC_NULL_CONVEST = & 16: & tPetscConvEst(0) 17: ! 18: ! Convergence flags 19: ! 20: PetscEnum SNES_CONVERGED_FNORM_ABS 21: PetscEnum SNES_CONVERGED_FNORM_RELATIVE 22: PetscEnum SNES_CONVERGED_SNORM_RELATIVE 23: PetscEnum SNES_CONVERGED_ITS 25: PetscEnum SNES_DIVERGED_FUNCTION_DOMAIN 26: PetscEnum SNES_DIVERGED_FUNCTION_COUNT 27: PetscEnum SNES_DIVERGED_LINEAR_SOLVE 28: PetscEnum SNES_DIVERGED_FNORM_NAN 29: PetscEnum SNES_DIVERGED_MAX_IT 30: PetscEnum SNES_DIVERGED_LINE_SEARCH 31: PetscEnum SNES_DIVERGED_INNER 32: PetscEnum SNES_DIVERGED_LOCAL_MIN 33: PetscEnum SNES_DIVERGED_DTOL 34: PetscEnum SNES_DIVERGED_JACOBIAN_DOMAIN 35: PetscEnum SNES_DIVERGED_TR_DELTA 36: PetscEnum SNES_CONVERGED_ITERATING 38: parameter (SNES_CONVERGED_FNORM_ABS = 2) 39: parameter (SNES_CONVERGED_FNORM_RELATIVE = 3) 40: parameter (SNES_CONVERGED_SNORM_RELATIVE = 4) 41: parameter (SNES_CONVERGED_ITS = 5) 43: parameter (SNES_DIVERGED_FUNCTION_DOMAIN = -1) 44: parameter (SNES_DIVERGED_FUNCTION_COUNT = -2) 45: parameter (SNES_DIVERGED_LINEAR_SOLVE = -3) 46: parameter (SNES_DIVERGED_FNORM_NAN = -4) 47: parameter (SNES_DIVERGED_MAX_IT = -5) 48: parameter (SNES_DIVERGED_LINE_SEARCH = -6) 49: parameter (SNES_DIVERGED_INNER = -7) 50: parameter (SNES_DIVERGED_LOCAL_MIN = -8) 51: parameter (SNES_DIVERGED_DTOL = -9) 52: parameter (SNES_DIVERGED_JACOBIAN_DOMAIN = -10) 53: parameter (SNES_DIVERGED_TR_DELTA = -11) 54: parameter (SNES_CONVERGED_ITERATING = 0) 55: ! 56: ! SNESLineSearchReason 57: ! 58: PetscEnum SNES_LINESEARCH_SUCCEEDED 59: PetscEnum SNES_LINESEARCH_FAILED_NANORINF 60: PetscEnum SNES_LINESEARCH_FAILED_DOMAIN 61: PetscEnum SNES_LINESEARCH_FAILED_REDUCT 62: PetscEnum SNES_LINESEARCH_FAILED_USER 63: PetscEnum SNES_LINESEARCH_FAILED_FUNCTION 65: parameter (SNES_LINESEARCH_SUCCEEDED = 0) 66: parameter (SNES_LINESEARCH_FAILED_NANORINF = 1) 67: parameter (SNES_LINESEARCH_FAILED_DOMAIN = 2) 68: parameter (SNES_LINESEARCH_FAILED_REDUCT = 3) 69: parameter (SNES_LINESEARCH_FAILED_USER = 4) 70: parameter (SNES_LINESEARCH_FAILED_FUNCTION = 5) 71: ! 72: ! SNESNormSchedule 73: ! 74: PetscEnum SNES_NORM_DEFAULT 75: PetscEnum SNES_NORM_NONE 76: PetscEnum SNES_NORM_ALWAYS 77: PetscEnum SNES_NORM_INITIAL_ONLY 78: PetscEnum SNES_NORM_FINAL_ONLY 79: PetscEnum SNES_NORM_INITIAL_FINAL_ONLY 81: parameter (SNES_NORM_DEFAULT = -1) 82: parameter (SNES_NORM_NONE = 0) 83: parameter (SNES_NORM_ALWAYS = 1) 84: parameter (SNES_NORM_INITIAL_ONLY = 2) 85: parameter (SNES_NORM_FINAL_ONLY = 3) 86: parameter (SNES_NORM_INITIAL_FINAL_ONLY = 4) 88: ! 89: ! Some PETSc fortran functions that the user might pass as arguments 90: ! 91: external SNESCOMPUTEJACOBIANDEFAULT 92: external MATMFFDCOMPUTEJACOBIAN 93: external SNESCOMPUTEJACOBIANDEFAULTCOLOR 94: external SNESMONITORDEFAULT 95: external SNESMONITORLGRESIDUALNORM 96: external SNESMONITORSOLUTION 97: external SNESMONITORSOLUTIONUPDATE 99: external SNESCONVERGEDDEFAULT 100: external SNESCONVERGEDSKIP 102: ! 103: ! SNESNGMRESRestartType 104: ! 106: PetscEnum SNES_NGMRES_RESTART_NONE 107: PetscEnum SNES_NGMRES_RESTART_PERIODIC 108: PetscEnum SNES_NGMRES_RESTART_DIFFERENCE 110: parameter (SNES_NGMRES_RESTART_NONE = 0) 111: parameter (SNES_NGMRES_RESTART_PERIODIC = 1) 112: parameter (SNES_NGMRES_RESTART_DIFFERENCE = 2) 115: ! 116: ! SNESNGMRESSelectionType 117: ! 119: PetscEnum SNES_NGMRES_SELECT_NONE 120: PetscEnum SNES_NGMRES_SELECT_DIFFERENCE 121: PetscEnum SNES_NGMRES_SELECT_LINESEARCH 123: parameter (SNES_NGMRES_SELECT_NONE = 0) 124: parameter (SNES_NGMRES_SELECT_DIFFERENCE = 1) 125: parameter (SNES_NGMRES_SELECT_LINESEARCH = 2) 127: ! 128: ! SNESQNType 129: ! 131: PetscEnum SNES_QN_LBFGS 132: PetscEnum SNES_QN_BROYDEN 133: PetscEnum SNES_QN_BADBROYDEN 135: parameter(SNES_QN_LBFGS = 0) 136: parameter(SNES_QN_BROYDEN = 1) 137: parameter(SNES_QN_BADBROYDEN = 2) 139: ! 140: ! SNESQNScaleType 141: ! 143: PetscEnum SNES_QN_SCALE_DEFAULT 144: PetscEnum SNES_QN_SCALE_NONE 145: PetscEnum SNES_QN_SCALE_SHANNO 146: PetscEnum SNES_QN_SCALE_LINESEARCH 147: PetscEnum SNES_QN_SCALE_JACOBIAN 149: parameter(SNES_QN_SCALE_DEFAULT = 0) 150: parameter(SNES_QN_SCALE_NONE = 1) 151: parameter(SNES_QN_SCALE_SHANNO = 2) 152: parameter(SNES_QN_SCALE_LINESEARCH = 3) 153: parameter(SNES_QN_SCALE_JACOBIAN = 4) 155: ! 156: ! SNESQNRestartType 157: ! 159: PetscEnum SNES_QN_RESTART_DEFAULT 160: PetscEnum SNES_QN_RESTART_NONE 161: PetscEnum SNES_QN_RESTART_POWELL 162: PetscEnum SNES_QN_RESTART_PERIODIC 164: parameter(SNES_QN_RESTART_DEFAULT = 0) 165: parameter(SNES_QN_RESTART_NONE = 1) 166: parameter(SNES_QN_RESTART_POWELL = 2) 167: parameter(SNES_QN_RESTART_PERIODIC = 3) 169: ! 170: ! SNESNCGType 171: ! 173: PetscEnum SNES_NCG_FR 174: PetscEnum SNES_NCG_PRP 175: PetscEnum SNES_NCG_HS 176: PetscEnum SNES_NCG_DY 177: PetscEnum SNES_NCG_CD 179: parameter(SNES_NCG_FR = 0) 180: parameter(SNES_NCG_PRP = 1) 181: parameter(SNES_NCG_HS = 2) 182: parameter(SNES_NCG_DY = 3) 183: parameter(SNES_NCG_CD = 4) 186: ! End of Fortran include file for the SNES package in PETSc