2D Reaction-Diffusion: Activator-Inhibitor

Open in Morpheus

Persistent Identifier

Use this permanent link to cite or share this Morpheus model:


Introduction

A 2D activator-inhibitor model (Gierer and Meinhardt, 1972).

Stripe pattern generated by 2D Gierer-Meinhardt model.
Stripe pattern generated by 2D Gierer-Meinhardt model.

Description

This model uses a standard Lattice with square structure and periodic boundary conditions.

The PDE defined two species or Layers $A$ (activator) and $I$ (inhibitor) with resp. low and high Diffusion rates. The reaction part of the equations are defined in the System.

The results are visualized using the Gnuplotter.

Things to try

  • Alter the level of saturation of the activator by changing kappa (for example, using a ParamSweep). By changing this parameter, the model can generate stripes, nets and spots.

Reference

A. Gierer, H. Meinhardt: A Theory of Biological Pattern Formation. Kybernetik 12: 30-39, 1972.

Model

Get this model via:

  • Morpheus-Link or
  • Morpheus GUI: ExamplesPDEActivatorInhibitor_2D.xml or
  •  Download: ActivatorInhibitor_2D.xml
  • XML Preview

    <MorpheusModel version="3">
        <Description>
            <Title>Example-ActivatorInhibitor-2D</Title>
            <Details></Details>
        </Description>
        <Global>
            <Field symbol="a" value="rand_norm(0.5,0.1)" name="activator">
                <Diffusion rate="0.02"/>
            </Field>
            <Field symbol="i" value="0.1" name="inhibitor">
                <Diffusion rate="1"/>
            </Field>
            <System solver="runge-kutta" time-step="5" name="Meinhardt">
                <Constant symbol="rho" value="0.001"/>
                <Constant symbol="rho_a" value="0.001"/>
                <Constant symbol="mu_i" value="0.03"/>
                <Constant symbol="mu_a" value="0.02"/>
                <Constant symbol="kappa" value="0.10"/>
                <DiffEqn symbol-ref="a">
                    <Expression>(rho/i)*((a^2)/(1 + kappa*a^2)) - mu_a * a + rho_a</Expression>
                </DiffEqn>
                <DiffEqn symbol-ref="i">
                    <Expression>rho*((a^2)/(1+kappa*a^2)) - mu_i *i</Expression>
                </DiffEqn>
            </System>
        </Global>
        <Space>
            <Lattice class="square">
                <Size symbol="size" value="150 150 0"/>
                <NodeLength value="1"/>
                <BoundaryConditions>
                    <Condition boundary="x" type="periodic"/>
                    <Condition boundary="y" type="periodic"/>
                </BoundaryConditions>
                <Neighborhood>
                    <Order>1</Order>
                </Neighborhood>
            </Lattice>
            <SpaceSymbol symbol="space"/>
        </Space>
        <Time>
            <StartTime value="0"/>
            <StopTime value="12500"/>
            <SaveInterval value="0"/>
            <RandomSeed value="2"/>
            <TimeSymbol symbol="time"/>
        </Time>
        <Analysis>
            <Gnuplotter time-step="500" decorate="false">
                <Terminal size="400 400 0" name="png"/>
                <Plot>
                    <Field symbol-ref="a" min="0"/>
                </Plot>
            </Gnuplotter>
            <Logger time-step="250">
                <Input>
                    <Symbol symbol-ref="a"/>
                </Input>
                <Output>
                    <TextOutput file-format="csv"/>
                </Output>
                <Plots>
                    <Plot time-step="0">
                        <Style style="lines" line-width="5.0"/>
                        <Terminal terminal="png"/>
                        <X-axis>
                            <Symbol symbol-ref="space.x"/>
                        </X-axis>
                        <Y-axis minimum="0" maximum="3">
                            <Symbol symbol-ref="a"/>
                        </Y-axis>
                        <Color-bar>
                            <Symbol symbol-ref="i"/>
                        </Color-bar>
                        <Range>
                            <Data/>
                            <Time mode="current"/>
                        </Range>
                    </Plot>
                </Plots>
                <Restriction>
                    <Slice value="size.y/2" axis="y"/>
                </Restriction>
            </Logger>
            <Logger time-step="100">
                <Input>
                    <Symbol symbol-ref="a"/>
                </Input>
                <Output>
                    <TextOutput file-format="matrix"/>
                </Output>
                <Plots>
                    <SurfacePlot time-step="500">
                        <Color-bar>
                            <Symbol symbol-ref="a"/>
                        </Color-bar>
                        <Terminal terminal="png"/>
                    </SurfacePlot>
                </Plots>
                <Restriction>
                    <Slice value="size.y/2" axis="y"/>
                </Restriction>
            </Logger>
        </Analysis>
    </MorpheusModel>
    
    

    Downloads

    Files associated with this model:

    Previous
    Next