CHOICE|IF
, FUNCTION|CEIL
, FUNCTION|FLOOR
,
and OPERATOR|MODULUS
. These discontinuities are in general not
handled correctly in any integrator as they might be missed or
recognized to late based on the internals of the integration
method. To deal with this issue we need to inform the integrator
whenever a discontinuous change occurs. We can use the existing event
and root finding method to achieve this. What is missing is the
creation of these events.Node Type | Event Trigger |
CHOICE | IF | If expression |
FUNCTION | CEIL | sin($\pi$ x) > 0 (sin is zero whenever x is an integer) |
FUNCTION | FLOOR | sin($\pi$ x) > 0 |
OPERATOR | MODULUS | sin($\pi$ x) > 0 || sin($\pi$ y) > 0 |
CHOICE | IF
, FUNCTION |
CEIL
, and FUNCTION | FLOOR
we create a
mathematical object of type Discontinuous
, which is
calculated by the expression derived from the discontinuous node.
ODE
,
ReactionIndependent
, and ReactionDependent
and
which is used in the calculation of rates of type
ODE
, ReactionIndependent
, and
ReactionDependent
we add an event.