xref: /petsc/src/snes/tutorials/ex55.h (revision d5b43468fb8780a8feea140ccd6fa3e6a50411cc)
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