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