Actual source code: petscsnes.h
1: !
2: ! Include file for Fortran use of the SNES package in PETSc
3: !
4: #if !defined (__PETSCSNES_H)
7: #define SNES PetscFortranAddr
8: #define SNESType character*(80)
9: #define SNESConvergedReason integer
10: #define MatSNESMFCtx PetscFortranAddr
11: #define MatSNESMFType PetscFortranAddr
12: !
13: ! SNESType
14: !
15: #define SNESLS 'ls'
16: #define SNESTR 'tr'
17: #define SNESTEST 'test'
18: !
19: ! MatSNESMFCtx
20: !
21: #define MATSNESMF_DEFAULT 'ds'
22: #define MATSNESMF_WP 'wp'
24: #endif
26: #if !defined (PETSC_AVOID_DECLARATIONS)
27: !
28: ! Convergence flags
29: !
30: PetscEnum SNES_CONVERGED_FNORM_ABS
31: PetscEnum SNES_CONVERGED_FNORM_RELATIVE
32: PetscEnum SNES_CONVERGED_PNORM_RELATIVE
33: PetscEnum SNES_CONVERGED_TR_DELTA
35: PetscEnum SNES_DIVERGED_FUNCTION_COUNT
36: PetscEnum SNES_DIVERGED_LINEAR_SOLVE
37: PetscEnum SNES_DIVERGED_FNORM_NAN
38: PetscEnum SNES_DIVERGED_MAX_IT
39: PetscEnum SNES_DIVERGED_LS_FAILURE
40: PetscEnum SNES_DIVERGED_LOCAL_MIN
41: PetscEnum SNES_CONVERGED_ITERATING
42:
43: parameter (SNES_CONVERGED_FNORM_ABS = 2)
44: parameter (SNES_CONVERGED_FNORM_RELATIVE = 3)
45: parameter (SNES_CONVERGED_PNORM_RELATIVE = 4)
46: parameter (SNES_CONVERGED_TR_DELTA = 7)
48: parameter (SNES_DIVERGED_FUNCTION_COUNT = -2)
49: parameter (SNES_DIVERGED_LINEAR_SOLVE = -3)
50: parameter (SNES_DIVERGED_FNORM_NAN = -4)
51: parameter (SNES_DIVERGED_MAX_IT = -5)
52: parameter (SNES_DIVERGED_LS_FAILURE = -6)
53: parameter (SNES_DIVERGED_LOCAL_MIN = -8)
54: parameter (SNES_CONVERGED_ITERATING = 0)
55:
56: !
57: ! Some PETSc fortran functions that the user might pass as arguments
58: !
59: external SNESDEFAULTCOMPUTEJACOBIAN
60: external SNESDEFAULTCOMPUTEJACOBIANCOLOR
61: external SNESMONITORDEFAULT
62: external SNESMONITORLG
63: external SNESMONITORSOLUTION
64: external SNESMONITORSOLUTIONUPDATE
66: !PETSC_DEC_ATTRIBUTES(SNESDEFAULTCOMPUTEJACOBIAN,'_SNESDEFAULTCOMPUTEJACOBIAN')
67: !PETSC_DEC_ATTRIBUTES(SNESDEFAULTCOMPUTEJACOBIANCOLOR,'_SNESDEFAULTCOMPUTEJACOBIANCOLOR')
68: !PETSC_DEC_ATTRIBUTES(SNESMONITORDEFAULT,'_SNESMONITORDEFAULT')
69: !PETSC_DEC_ATTRIBUTES(SNESMONITORLG,'_SNESMONITORLG')
70: !PETSC_DEC_ATTRIBUTES(SNESMONITORSOLUTION,'_SNESMONITORSOLUTION')
71: !PETSC_DEC_ATTRIBUTES(SNESMONITORSOLUTIONUPDATE,'_SNESMONITORSOLUTIONUPDATE')
73: external SNESCONVERGED_LS
74: external SNESCONVERGED_TR
76: !PETSC_DEC_ATTRIBUTES(SNESCONVERGED_LS,'_SNESCONVERGED_LS')
77: !PETSC_DEC_ATTRIBUTES(SNESCONVERGED_TR,'_SNESCONVERGED_TR')
79: external SNESLINESEARCHCUBIC
80: external SNESLINESEARCHQUADRATIC
81: external SNESLINESEARCHNO
82: external SNESLINESEARCHNONORMS
84: !PETSC_DEC_ATTRIBUTES(SNESLINESEARCHCUBIC,'_SNESLINESEARCHCUBIC')
85: !PETSC_DEC_ATTRIBUTES(SNESLINESEARCHQUADRATIC,'_SNESLINESEARCHQUADRATIC')
86: !PETSC_DEC_ATTRIBUTES(SNESLINESEARCHNO,'_SNESLINESEARCHNO')
87: !PETSC_DEC_ATTRIBUTES(SNESLINESEARCHNONORMS,'_SNESLINESEARCHNONORMS')
89: external SNESDAFORMFUNCTION
90: external SNESDACOMPUTEJACOBIANWITHADIFOR
91: external SNESDACOMPUTEJACOBIAN
93: !PETSC_DEC_ATTRIBUTES(SNESDAFORMFUNCTION,'_SNESDAFORMFUNCTION')
94: !PETSC_DEC_ATTRIBUTES(SNESDACOMPUTEJACOBIANWITHADIFOR,'_SNESDACOMPUTEJACOBIANWITHADIFOR')
95: !PETSC_DEC_ATTRIBUTES(SNESDACOMPUTEJACOBIAN,'_SNESDACOMPUTEJACOBIAN')
96: !
97: ! End of Fortran include file for the SNES package in PETSc
99: #endif