xref: /petsc/src/snes/tutorials/ex55.h (revision 9371c9d470a9602b6d10a8bf50c9b2280a79e45a)
1 #include <petscdmda.h>
2 
3 /*
4    User-defined application context - contains data needed by the
5    application-provided call-back routines, FormJacobianLocal() and
6    FormFunctionLocal().
7 */
8 typedef struct AppCtx AppCtx;
9 struct AppCtx {
10   PetscReal param; /* test problem parameter */
11   PetscInt  m, n;  /* MMS3 parameters */
12   PetscErrorCode (*mms_solution)(AppCtx *, const DMDACoor2d *, PetscScalar *);
13   PetscErrorCode (*mms_forcing)(AppCtx *, const DMDACoor2d *, PetscScalar *);
14 };
15 
16 PETSC_EXTERN PetscErrorCode FormFunctionLocalVec(DMDALocalInfo *info, Vec x, Vec f, AppCtx *user);
17 PETSC_EXTERN PetscErrorCode FormObjectiveLocalVec(DMDALocalInfo *info, Vec x, PetscReal *obj, AppCtx *user);
18 PETSC_EXTERN PetscErrorCode FormJacobianLocalVec(DMDALocalInfo *info, Vec x, Mat jac, Mat jacpre, AppCtx *user);
19