1: ! 2: ! Include file for Fortran use of the SNES package in PETSc 3: ! 4: #include petsc/finclude/petscsnesdef.h 6: ! 7: ! Convergence flags 8: ! 9: PetscEnum SNES_CONVERGED_FNORM_ABS 10: PetscEnum SNES_CONVERGED_FNORM_RELATIVE 11: PetscEnum SNES_CONVERGED_SNORM_RELATIVE 12: PetscEnum SNES_CONVERGED_ITS 13: PetscEnum SNES_CONVERGED_TR_DELTA 15: PetscEnum SNES_DIVERGED_FUNCTION_DOMAIN 16: PetscEnum SNES_DIVERGED_FUNCTION_COUNT 17: PetscEnum SNES_DIVERGED_LINEAR_SOLVE 18: PetscEnum SNES_DIVERGED_FNORM_NAN 19: PetscEnum SNES_DIVERGED_MAX_IT 20: PetscEnum SNES_DIVERGED_LINE_SEARCH 21: PetscEnum SNES_DIVERGED_INNER 22: PetscEnum SNES_DIVERGED_LOCAL_MIN 23: PetscEnum SNES_CONVERGED_ITERATING 25: parameter (SNES_CONVERGED_FNORM_ABS = 2) 26: parameter (SNES_CONVERGED_FNORM_RELATIVE = 3) 27: parameter (SNES_CONVERGED_SNORM_RELATIVE = 4) 28: parameter (SNES_CONVERGED_ITS = 5) 29: parameter (SNES_CONVERGED_TR_DELTA = 7) 31: parameter (SNES_DIVERGED_FUNCTION_DOMAIN = -1) 32: parameter (SNES_DIVERGED_FUNCTION_COUNT = -2) 33: parameter (SNES_DIVERGED_LINEAR_SOLVE = -3) 34: parameter (SNES_DIVERGED_FNORM_NAN = -4) 35: parameter (SNES_DIVERGED_MAX_IT = -5) 36: parameter (SNES_DIVERGED_LINE_SEARCH = -6) 37: parameter (SNES_DIVERGED_INNER = -7) 38: parameter (SNES_DIVERGED_LOCAL_MIN = -8) 39: parameter (SNES_CONVERGED_ITERATING = 0) 40: ! 41: ! SNESLineSearchReason 42: ! 43: PetscEnum SNES_LINESEARCH_SUCCEEDED 44: PetscEnum SNES_LINESEARCH_FAILED_NANORINF 45: PetscEnum SNES_LINESEARCH_FAILED_DOMAIN 46: PetscEnum SNES_LINESEARCH_FAILED_REDUCT 47: PetscEnum SNES_LINESEARCH_FAILED_USER 48: PetscEnum SNES_LINESEARCH_FAILED_FUNCTION 50: parameter (SNES_LINESEARCH_SUCCEEDED = 0) 51: parameter (SNES_LINESEARCH_FAILED_NANORINF = 1) 52: parameter (SNES_LINESEARCH_FAILED_DOMAIN = 2) 53: parameter (SNES_LINESEARCH_FAILED_REDUCT = 3) 54: parameter (SNES_LINESEARCH_FAILED_USER = 4) 55: parameter (SNES_LINESEARCH_FAILED_FUNCTION = 5) 56: ! 57: ! SNESNormSchedule 58: ! 59: PetscEnum SNES_NORM_DEFAULT 60: PetscEnum SNES_NORM_NONE 61: PetscEnum SNES_NORM_ALWAYS 62: PetscEnum SNES_NORM_INITIAL_ONLY 63: PetscEnum SNES_NORM_FINAL_ONLY 64: PetscEnum SNES_NORM_INITIAL_FINAL_ONLY 66: parameter (SNES_NORM_DEFAULT = -1) 67: parameter (SNES_NORM_NONE = 0) 68: parameter (SNES_NORM_ALWAYS = 1) 69: parameter (SNES_NORM_INITIAL_ONLY = 2) 70: parameter (SNES_NORM_FINAL_ONLY = 3) 71: parameter (SNES_NORM_INITIAL_FINAL_ONLY = 4) 73: ! 74: ! Some PETSc fortran functions that the user might pass as arguments 75: ! 76: external SNESCOMPUTEJACOBIANDEFAULT 77: external MATMFFDCOMPUTEJACOBIAN 78: external SNESCOMPUTEJACOBIANDEFAULTCOLOR 79: external SNESMONITORDEFAULT 80: external SNESMONITORLGRESIDUALNORM 81: external SNESMONITORSOLUTION 82: external SNESMONITORSOLUTIONUPDATE 84: external SNESCONVERGEDDEFAULT 85: external SNESCONVERGEDSKIP 87: ! 88: ! SNESNGMRESRestartType 89: ! 91: PetscEnum SNES_NGMRES_RESTART_NONE 92: PetscEnum SNES_NGMRES_RESTART_PERIODIC 93: PetscEnum SNES_NGMRES_RESTART_DIFFERENCE 95: parameter (SNES_NGMRES_RESTART_NONE = 0) 96: parameter (SNES_NGMRES_RESTART_PERIODIC = 1) 97: parameter (SNES_NGMRES_RESTART_DIFFERENCE = 2) 100: ! 101: ! SNESNGMRESSelectionType 102: ! 104: PetscEnum SNES_NGMRES_SELECT_NONE 105: PetscEnum SNES_NGMRES_SELECT_DIFFERENCE 106: PetscEnum SNES_NGMRES_SELECT_LINESEARCH 108: parameter (SNES_NGMRES_SELECT_NONE = 0) 109: parameter (SNES_NGMRES_SELECT_DIFFERENCE = 1) 110: parameter (SNES_NGMRES_SELECT_LINESEARCH = 2) 112: ! 113: ! SNESQNType 114: ! 116: PetscEnum SNES_QN_LBFGS 117: PetscEnum SNES_QN_BROYDEN 118: PetscEnum SNES_QN_BADBROYDEN 120: parameter(SNES_QN_LBFGS = 0) 121: parameter(SNES_QN_BROYDEN = 1) 122: parameter(SNES_QN_BADBROYDEN = 2) 124: ! 125: ! SNESQNScaleType 126: ! 128: PetscEnum SNES_QN_SCALE_DEFAULT 129: PetscEnum SNES_QN_SCALE_NONE 130: PetscEnum SNES_QN_SCALE_SHANNO 131: PetscEnum SNES_QN_SCALE_LINESEARCH 132: PetscEnum SNES_QN_SCALE_JACOBIAN 134: parameter(SNES_QN_SCALE_DEFAULT = 0) 135: parameter(SNES_QN_SCALE_NONE = 1) 136: parameter(SNES_QN_SCALE_SHANNO = 2) 137: parameter(SNES_QN_SCALE_LINESEARCH = 3) 138: parameter(SNES_QN_SCALE_JACOBIAN = 4) 140: ! 141: ! SNESQNRestartType 142: ! 144: PetscEnum SNES_QN_RESTART_DEFAULT 145: PetscEnum SNES_QN_RESTART_NONE 146: PetscEnum SNES_QN_RESTART_POWELL 147: PetscEnum SNES_QN_RESTART_PERIODIC 149: parameter(SNES_QN_RESTART_DEFAULT = 0) 150: parameter(SNES_QN_RESTART_NONE = 1) 151: parameter(SNES_QN_RESTART_POWELL = 2) 152: parameter(SNES_QN_RESTART_PERIODIC = 3) 154: ! 155: ! SNESNCGType 156: ! 158: PetscEnum SNES_NCG_FR 159: PetscEnum SNES_NCG_PRP 160: PetscEnum SNES_NCG_HS 161: PetscEnum SNES_NCG_DY 162: PetscEnum SNES_NCG_CD 164: parameter(SNES_NCG_FR = 0) 165: parameter(SNES_NCG_PRP = 1) 166: parameter(SNES_NCG_HS = 2) 167: parameter(SNES_NCG_DY = 3) 168: parameter(SNES_NCG_CD = 4) 171: ! End of Fortran include file for the SNES package in PETSc