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 *);