xref: /petsc/include/petscsnes.h (revision d65003e9c0983ba191c94bf6b6984ff0152fc0d6)
1 /* $Id: snes.h,v 1.5 1995/04/16 22:13:48 curfman Exp curfman $ */
2 
3 #if !defined(__SNES_PACKAGE)
4 #define __SNES_PACKAGE
5 #include "sles.h"
6 
7 typedef struct _SNES* SNES;
8 #define SNES_COOKIE PETSC_COOKIE+13
9 
10 typedef enum { SNES_NLS,
11                SNES_NTR,
12                SNES_NTR_DOG_LEG,
13                SNES_NTR2_LIN,
14                SUMS_NLS,
15                SUMS_NTR }
16   SNESMETHOD;
17 
18 typedef enum { SNESINITIAL_GUESS,
19                SNESRESIDUAL,
20                SNESFUNCTION,
21                SNESGRADIENT,
22                SNESMATRIX,
23                SNESCORE,
24                SNESSTEP_SETUP,
25                SNESSTEP_COMPUTE,
26                SNESSTEP_DESTROY,
27                SNESTOTAL }
28    SNESPHASE;
29 
30 typedef enum { SNES_T, SUMS_T } SNESTYPE;
31 
32 extern int SNESCreate(MPI_Comm,SNES*);
33 extern int SNESSetMethod(SNES,SNESMETHOD);
34 extern int SNESSetMonitor(SNES, int (*)(SNES,int,Vec,Vec,double,void*),void *);
35 extern int SNESSetSolution(SNES,Vec,int (*)(Vec,void*),void *);
36 extern int SNESSetResidual(SNES, Vec, int (*)(Vec,Vec,void*),void *,int);
37 extern int SNESSetJacobian(SNES,Mat,int (*)(Vec,Mat*,void*),void *);
38 extern int SNESDestroy(SNES);
39 extern int SNESSetUp(SNES);
40 extern int SNESSolve(SNES,int*);
41 extern int SNESRegister(int, char*, int (*)(SNES));
42 extern int SNESRegisterAll();
43 extern int SNESGetSLES(SNES,SLES*);
44 extern int SNESNoLineSearch(SNES,Vec,Vec,Vec,Vec,Vec,double,double*,double*);
45 extern int SNESCubicLineSearch(SNES,Vec,Vec,Vec,Vec,Vec,double,double*,double*);
46 extern int SNESQuadraticLineSearch(SNES,Vec,Vec,Vec,Vec,Vec,double,double*,double*);
47 
48 extern int SNESGetSolution(SNES,Vec*);
49 extern int SNESGetResidual(SNES,Vec*);
50 
51 extern int SNESPrintHelp(SNES);
52 extern int SNESSetFromOptions(SNES);
53 extern int SNESGetMethodName(SNESMETHOD,char **);
54 extern int SNESDefaultMonitor(SNES,int, Vec,Vec,double,void *);
55 extern int SNESDefaultConverged(SNES,double,double,double,void*);
56 
57 extern int SNESSetSolutionTolerance(SNES,double);
58 extern int SNESSetAbsoluteTolerance(SNES,double);
59 extern int SNESSetRelativeTolerance(SNES,double);
60 extern int SNESSetTruncationTolerance(SNES,double);
61 extern int SNESSetMaxIterations(SNES,int);
62 extern int SNESSetMaxResidualEvaluations(SNES,int);
63 #endif
64 
65