fern.simulation.algorithm
Class CompositionRejection
java.lang.Object
fern.simulation.Simulator
fern.simulation.algorithm.GillespieEnhanced
fern.simulation.algorithm.CompositionRejection
public class CompositionRejection
- extends GillespieEnhanced
This is an enhanced version of the original Direct method developed by
Gillespie. Just like the algorithm of Gibson and Bruck it uses a dependency graph to know what propensities
have to be recalculated. Additionally, the composition and rejection method proposed in Slepoy 2008 is used
to determine the next firing reaction.
For references see Daniel T. Gillespie., A General Method for Numerically Simulating
the Stochastic Time Evolution of Coupled Chemical Reactions, J.Comp.Phys. 22, 403 (1976)
and M.A.Gibson and J.Bruck, Efficient Exact Stochastic Simulation of Chemical
Systems with Many Species and Many Channels, J.Phys.Chem.A., Vol 104, no 9, 2000
and Alexander Slepoy Aidan P. Thompson and Steven J. Plimpton, A constant-time kinetic Monte Carlo
algorithm for simulation of large biochemical reaction networks, J. Chem. Phys. 128, 205101 (2008); DOI:10.1063/1.2919546
- Author:
- Florian Erhard
- See Also:
GillespieEnhanced
,
DependencyGraph
Methods inherited from class fern.simulation.Simulator |
addObserver, getAmount, getNet, getNextThetaEvent, getPropensity, getPropensityCalculator, getTime, getVolume, isInterpolateTheta, registerNewTheta, setInterpolateTheta, start, start |
CompositionRejection
public CompositionRejection(Network net)
isEfficientlyAdaptSum
public boolean isEfficientlyAdaptSum()
- Overrides:
isEfficientlyAdaptSum
in class GillespieEnhanced
initialize
public void initialize()
- Description copied from class:
Simulator
- Initializes the algorithm:
Gets called at the very beginning of
start
- Overrides:
initialize
in class GillespieEnhanced
reinitialize
public void reinitialize()
- Description copied from class:
Simulator
- Reset propensities when a event has been executed.
- Overrides:
reinitialize
in class GillespieEnhanced
performStep
public void performStep(SimulationController control)
- Description copied from class:
Simulator
- Performs one simulation step. Between steps the terminating condition is checked.
The simulators controller is passed, if an extending class wants to check it
within one step. Implementing algorithms cannot be sure that the propensities
are correct at the beginning of a step (e.g. if the volume changed). They should
override
Simulator.setAmount(int, long)
and Simulator.setVolume(double)
if they need correct values!
- Overrides:
performStep
in class GillespieEnhanced
- Parameters:
control
- the simulators controller
getName
public String getName()
- Description copied from class:
Simulator
- Gets the name of the algorithm.
- Overrides:
getName
in class GillespieEnhanced
- Returns:
- name of the algorithm