5.1.6.1. Usecase: Cell growth and division

Description: In this example, A represents the size of a cell, which grows until it reaches a threshold size and then divides.

component: CellGrowthAndDivision
  ├─ math: ode(A, t) = 1
  └─ variable: A, initially 1
      └─ reset:
          ├─ when A == 2
          └─ then A = 1

See CellML syntax

<variable name="A" initial_value="1" units="dimensionless" />
<reset variable="A" test_variable="A">
    <test_value>
        <cn units="cellml:dimensionless">2</cn>
    </test_value>
    <reset_value>
        <cn units="cellml:dimensionless">1</cn>
    </reset_value>
</reset>

t

0.0

0.8

0.9

1.0

1.1

1.2

A

1.1

1.8

1.9

2 → 1

1.1

1.2

Processing steps

  • Cycle 1:

    1. At t = 1.0 we detect that A == 2, so the reset rule becomes active.

    2. The reset value is calculated to be 1.

    3. The reset value is applied.

    4. The system is now in a new state \((x^\prime, t, p) \neq (x, t, p)\) (note that \(A\) is included in \(x\)), we restart at step 1.

  • Cycle 2:

    1. No reset rules are active, so evaluation halts.