Actual source code: reaction_diffusion.h
1: #pragma once
3: #include <petscts.h>
5: /* Simple C struct that allows us to access the two velocity (x and y directions) values easily in the code */
6: typedef struct {
7: PetscScalar u, v;
8: } Field;
10: /* Data structure to store the model parameters */
11: typedef struct {
12: PetscReal D1, D2, gamma, kappa;
13: PetscBool aijpc;
14: Vec U;
15: Mat A;
16: TS ts;
17: } AppCtx;
19: /* User-supplied functions for TS */
20: PetscErrorCode RHSFunction(TS, PetscReal, Vec, Vec, void *);
21: PetscErrorCode RHSJacobian(TS, PetscReal, Vec, Mat, Mat, void *);
22: PetscErrorCode IFunction(TS, PetscReal, Vec, Vec, Vec, void *);
23: PetscErrorCode IJacobian(TS, PetscReal, Vec, Vec, PetscReal, Mat, Mat, void *);