Otto-von-Guericke Universität Magdeburg, Germany: Mary Ann Blätke, Jan Wegener


We consider the following scenario:

  • One species (here cAMP) diffuses continuously in space; i.e., it evolves simultaneously over time and space.
  • The state-dependent diffusion rate follows mass/action kinetics, i.e., the rate is defined by the product of the species involved times some constant, summing up all dependencies on pressure, temperature, etc.
  • The observation starts with a high concentration (e.g., 100) in the middle of the space, with all other space positions initially set to 0.

Modelling challenge


Tip: Click on image of a plain Petri net opens animation window. Animation does not consider (stochastic or continuous ) rates.

1-dimensional grid

Reading this Petri net as a continuous Petri net, and assuming the diffusion rates to follow mass/action kinetics with the common rate parameter k, we obtain the following ODEs; for sake of readability we abbreviate cAMP_i by ci.

We obtain a general model pattern for an arbitrary, but static size of a discrete, 1-dimensional space by folding this plain (continuous) Petri net into a coloured (continuous) Petri net.

   D1 = int with 5;	       // grid size 
   MIDDLE = int with (D1+1)/2; // middle position

   CS = int with 1−D1;         // addresses of grid positions

   x,y : CS;

   neighbour1D (CS x,a) bool: 
       // a is neighbour of x 
       ( a=x−1 | a=x+1) & (1<=a) & (a<=D1);

Changing constant D1 adapts the model pattern to a specific 1-dimensional grid size.

2-dimensional grid with four neighbours

   CD1 = 1−D1;                        
   CD2 = 1−D2;                       
   Grid2D = CD1 x CD2;

   x,a : CD1;
   y,b : CD2;

   neighbour2D4 (CD1 x , CD2 y , CD1 a , CD2 b) bool :
      // (a,b) is one of the up to four neighbours of (x,y)
      (a=x & b=y−1) | (a=x & b=y+1) | (b=y & a=x−1) | (b=y & a=x+1);

Unfolding the coloured Petri net with constants D1=D2=5 yields the following plain Petri net.

2-dimensional grid with eight neighbours

   neighbour2D8 (CD1 x, CD2 y, CD1 a, CD2 b) bool :
      // (a,b) is one of the up to eight neighbours of (x,y)
         (a=x | a=x+1 | a=x−1) & (b=y | b=y+1 | b = y−1) 
       & (!(a=x & b=y)) 
       & (1<=a & a<=D1) & (1<=b & b<=D2);

Unfolding the coloured Petri net with constants D1=D2=5 yields the following plain Petri net.


All computational experiments are done on the automatically unfolded Petri nets. With other words, the coloured continuous Petri nets serve as high-level description of the continuous systems under study.

Some statistics

grid sizeno. placesno. transitions

For simulation purposes, a continuous Petri net is represented by a system of Ordinary Differential Equations (ODEs), with one equation for each place. Thus, coloured continuous Petri nets can be seen as a very high-level description of ODEs.

2D representation of a continuous run

Converting the continuous simulation traces into 2D representations (heat map style) allows us to observe the development of a gradient in time and space. We give six snapshots (time points: 0, 5, 10, 15, 20, 30) for the 15x15 grid.

Increasing resolution

We give the snapshots at time point 50 for the grids 15x15, 30x30, 60x60, and 120x120.



latest update: December 12, 2011, at 04:28 PM