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 PetscCount ncoo; /* support for coo setvalues only */ 13 PetscErrorCode (*mms_solution)(AppCtx *, const DMDACoor2d *, PetscScalar *); 14 PetscErrorCode (*mms_forcing)(AppCtx *, const DMDACoor2d *, PetscScalar *); 15 }; 16 17 PETSC_EXTERN PetscErrorCode FormFunctionLocalVec(DMDALocalInfo *info, Vec x, Vec f, AppCtx *user); 18 PETSC_EXTERN PetscErrorCode FormObjectiveLocalVec(DMDALocalInfo *info, Vec x, PetscReal *obj, AppCtx *user); 19 PETSC_EXTERN PetscErrorCode FormJacobianLocalVec(DMDALocalInfo *info, Vec x, Mat jac, Mat jacpre, AppCtx *user); 20