Examples

Simple Reaction Network

A simple network consisting of two species and four reactions. Details can be found in [Vigelius2010]. The source code is available in ABReaction.xml. A standard analysis can be done by:

$python -m gpgmp.test.abreaction <output-file>

Simple Reaction Network with Individuals

The same reaction network as in Simple Reaction Network is modelled with individual species. The source code is available in ABReactionIndividual.xml. A standard analysis can be done by:

$python -m gpgmp.test.abreaction <output-file> individual

Simple Reaction Network with Individuals (using New Individuals Method)

The same reaction network as in Simple Reaction Network is modelled with individual species, where all newly created individuals are initialized with a random diffusivity and drift. The source code is available in ABReactionIndividualNew.xml. A standard analysis can be done by:

$python -m gpgmp.test.abreaction <output-file> individual

In addition, you can use any HDF5 viewer to check, if the individual properties were set correctly, i.e. uniformly-random distributed.

Fisher Problem

The famous Fisher problem, a non-linear reaction-diffusion problem [Vigelius2010]. The source code is in FisherProblem.xml and standard analysis can be done by:

$python -m gpgmp.test.fisher_problem <output-file>

Fisher Problem with Individuals

The same as Fisher Problem except that the species are individuals. The source code is in FisherProblemIndividual.xml and standard analysis can be done by:

$python -m gpgmp.test.fisher_problem <output-file> individual

Homogeneous Diffusion

A simple example to test the homogeneous solver involving one diffusing species (no drift) and no reactions [Vigelius2012a]. The source code is in HomogeneousDiffusion.xml and standard analysis can be done by:

$python -m gpgmp.test.homogeneous_diffusion <output-file>

Homogeneous Diffusivity and Drift

The same example as Homogeneous Diffusion with a drift field [Vigelius2012a]. The source code is in HomogeneousDrift.xml and standard analysis can be done by:

$python -m gpgmp.test.homogeneous_drift_diffusion <output-file>

Homogeneous Diffusivity and Drift with Field Parameter

Exactly the same as Homogeneous Diffusivity and Drift only that the diffusivity and drift field is now set using a field parameter. The source code is in HomogeneousDriftField.xml and standard analysis can be done by:

$python -m gpgmp.test.homogeneous_drift_diffusion <output-file>

Homogeneous Diffusivity and Drift (Individuals)

Exactly the same as Homogeneous Diffusivity and Drift only that the diffusing species are individuals. The source code is in HomogeneousDriftIndividual.xml and standard analysis can be done by:

$python -m gpgmp.test.homogeneous_drift_diffusion <output-file>

Multiplicative Noise (Geometric Brownian Motion)

An example to test the inhomogeneous solver. It contains one species and position-dependent diffusivity and drift [Vigelius2012a]. The source code is in MultiplicativeNoise.xml and standard analysis can be done by:

$python -m gpgmp.test.multiplicative_noise <output-file>

Non-linear Drift Field

A test problem involving a non-linear drift field [Vigelius2012a]. The source code is in Nonlinear.xml and standard analysis can be done by:

$python -m gpgmp.test.nonlinear <output-file>

Ornstein-Uhlenbeck Process

An implementation of an Ornstein-Uhlenbeck process [Vigelius2012a]. The source code is in OrnsteinUhlenbeck.xml and standard analysis can be done by:

$python -m gpgmp.test.ornstein_uhlenbeck <output-file>

A+B Annihilation

This is a simple system with two species \(A\) and \(B\) and a corresponding reaction \(A+B\xrightarrow{k_1}\emptyset\). Details can be found in [Vigelius2010]. You can analyze it using:

$python -m gpgmp.test.annihilation_2d <output-file>

A+B Annihilation with Drift

This example is the same as example A+B Annihilation except that a constant drift field is present. The source code is found in ABAnnihilationDrift.xml. Analysis can be done using:

$python -m gpgmp.test.annihilation_2d_drift <output-file>

Random Drift Field

In this example, a number of individuals is initialized with random diffusivity and drift, where each individual has a different diffusivity and drift. The source code is found in RandomDrift.xml. Analysis can be done using:

$python -m gpgmp.test.random_drift <output-file>

Intracellular Calcium Distribution

This example implements an actual biological model used to describe the intracellular distribution of Calcium ions (cf. [Vigelius2012b] for details). The model is found in Calcium.xml and can be analysed using:

$python -m python -m gpgmp.models.calcium <output-file>

Oregonator Model of the Belousov-Zhabotinsky Reaction

This is the Oregonator model of the Belousov-Zhabotinsky reaction which is covered in the tutorial. The model is found in Oregonator.xml. Analysis is covered in the tutorial.

Chemotaxis of Neurons in the Brain

The model of migrating neurons in the brain which is also covered in the tutorial. The model is found in Slit.xml. Analysis is covered in the tutorial.

[Vigelius2010](1, 2, 3) Vigelius M, Lane A, Meyer B (2010): Accelerating reaction–diffusion simulations with general-purpose graphics processing units Bioinformatics (2011) 27 (2): 288-290.
[Vigelius2012a](1, 2, 3, 4, 5) Vigelius M, Meyer B (2012a) Multi-Dimensional, Mesoscopic Monte Carlo Simulations of Inhomogeneous Reaction-Drift-Diffusion Systems on Graphics-Processing Units. PLoS ONE 7(4): e33384. doi:10.1371/journal.pone.0033384
[Vigelius2012b]Vigelius M, Meyer B (2012b): Stochastic Simulations of Pattern Formation in Excitable Media. PLoS ONE 7(8): e42508. doi:10.1371/journal.pone.0042508