Class MoleculeControlledTimeDistribution
-
- All Implemented Interfaces:
-
it.unibo.alchemist.model.TimeDistribution
,java.io.Serializable
,kotlin.Cloneable
public final class MoleculeControlledTimeDistribution<T extends Object> extends AnyRealDistribution<T>
A special TimeDistribution that schedules the reaction after start, according to the value of a molecule which contains the delta time. If a property is specified, the value to be interpreted as time delta is read from the incarnation. Otherwise, the node is accessed directly for reading the value.
It's possible to associate an errorDistribution to this time distribution, whose samples will be used to shift the time samples.
There are some conditions to be satisfied:
molecule must be modified exclusively by the reaction being scheduled
molecule must exist in the node. If it does not and the environment returns null, it is assumed to be zero
molecule must have a positive or zero value associated.
molecule's concentration must have a type which is understandable as a positive number (Number, Time, or a parse-able String).
the errorDistribution's samples plus the value of the molecule concentration (or property value) must always be greater than zero. It is thus recommended to use an errorDistribution whose support lower bound is zero or greater
-
-
Constructor Summary
Constructors Constructor Description MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, String property, Time start, String distributionName, Double distributionParametrs)
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, String property, String distributionName, Double distributionParametrs)
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, String distributionName, Double distributionParametrs)
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, Time start, String distributionName, Double distributionParametrs)
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule, String property, Time start, RealDistribution errorDistribution)
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule, String property, Time start)
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule, String property)
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule)
-
Method Summary
Modifier and Type Method Description final Node<T>
getNode()
final Molecule
getMolecule()
final String
getProperty()
final Time
getStart()
final RealDistribution
getErrorDistribution()
MoleculeControlledTimeDistribution<T>
cloneOnNewNode(Node<T> destination, Time currentTime)
-
Methods inherited from class it.unibo.alchemist.model.timedistributions.AbstractDistribution
getNextOccurence, update
-
Methods inherited from class it.unibo.alchemist.model.timedistributions.AnyRealDistribution
getRate
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, String property, Time start, String distributionName, Double distributionParametrs)
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, String property, String distributionName, Double distributionParametrs)
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, String distributionName, Double distributionParametrs)
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, RandomGenerator randomGenerator, Node<T> node, Molecule molecule, Time start, String distributionName, Double distributionParametrs)
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule, String property, Time start, RealDistribution errorDistribution)
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule, String property, Time start)
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule, String property)
-
MoleculeControlledTimeDistribution
MoleculeControlledTimeDistribution(Incarnation<T, ?> incarnation, Node<T> node, Molecule molecule)
-
-
Method Detail
-
getMolecule
final Molecule getMolecule()
-
getProperty
final String getProperty()
-
getErrorDistribution
final RealDistribution getErrorDistribution()
-
cloneOnNewNode
MoleculeControlledTimeDistribution<T> cloneOnNewNode(Node<T> destination, Time currentTime)
-
-
-
-