This chapter overviews:
An incomplete list of classes available as the Standard Dynamic Module Library, and, |
Some usage the classes in the Standard Dynamic Module Library. |
This chapter briefly describes the Standard Dynamic Module Library distributed with E-Cell Simulation Environment. If the system is installed correctly, the classes provided by the library can be used without any special procedure.
This chapter is not meant to be a complete reference. To know more about the classes defined in the library, see the E-Cell3 Standard Dynamic Module Library Reference Manual (under preparation).
There are three direct sub-classes of Stepper:
DifferentialStepper |
DiscreteEventStepper |
DiscreteTimeStepper |
The following Stepper classes implement general-purpose ordinary differential equation solvers. Basically these classes must work well with any simple continuous Process classes.
ODE45Stepper
This Stepper implements Dormand-Prince 5(4)7M algorithm for ODE systems.
In most cases this Stepper is the best general purpose solver for ODE models.
ODE23Stepper
This Stepper implements Fehlberg 2(3) algorithm for ODE systems.
Try this Stepper if other part of the model has smaller timescales. This Stepper can be used for a moderately stiff systems of differential equations.
FixedODE1Stepper
A DifferentialStepper
without
adaptive stepsizing mechanism. The solution of this
Stepper is first order.
This stepper calls
process
() method of each
Process just once in a single
step.
Although this Stepper is not suitable for high-accuracy solution of smooth continuous systems of differential equations, its simplicity of the algorithm is sometimes useful.
FIXME: need description here.
DiscreteEventStepper
This Stepper is used to conduct discrete event
simulations. This Stepper should be used in combination
with subclasses of
DiscreteEventProcess
.
This Stepper uses its Process objects as event
generators. The procedure of this Stepper for
initialize
() method is like this:
updateStepInterval
() method of
its all DiscreteEventProcess
objects.
Find a Process with the least scheduled time (top process). The scheduled time is calculated as: ( current time ) + ( StepInterval of the process ).
Reschedule itself to the scheduled time of the top process.
step
() method of this Stepper is as
follows:
Call process
() method
of the current top process.
Calls
updateStepInterval
() method of
the top process and all dependent
processes of the top process, and update
scheduled times for those processes to find the new top
process.
Lastly the Stepper reschedule itself to the scheduled time of the new top process.
interrupt
()
method of this class is the same as that for
initialize
().
FIXME: need to explain about TimeScale property.
NRStepper
This is an alias to the
DiscreteEventStepper
.
This class can be used as an implementation of
Gillespie-Gibson algorithm.
To conduct the Gillespie-Gibson simulation, use
this class of Stepper in combination with
GillespieProcess
class.
GillespieProcess
is a subclass of
DiscreteEventProcess
.
DiscreteTimeStepper
This Stepper steps with a fixed interval. For example, StepInterval property of this Stepper is set to 0.1, this Stepper steps every 0.1 seconds.
When this Stepper steps, it calls
process
() of all of its
Process instances. To change this behavior, create a
subclass.
This Stepper ignores incoming interruptions from other Steppers.
PassiveStepper
This Stepper never steps spontaneously (step interval = infinity). Instead, this Stepper steps upon interruption. In other words, this Stepper steps everytime immediately after a dependent Stepper steps.
When this Stepper steps, it calls
process
() of all of its
Process instances. To change this behavior, create a
subclass.