MoleculeControlledTimeDistribution

class MoleculeControlledTimeDistribution<T> @JvmOverloads constructor(incarnation: Incarnation<T, *>, val node: Node<T>, val molecule: Molecule, val property: String? = null, val start: Time = Time.ZERO, val errorDistribution: RealDistribution? = null) : 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

Constructors

Link copied to clipboard
constructor(incarnation: Incarnation<T, *>, randomGenerator: RandomGenerator, node: Node<T>, molecule: Molecule, property: String? = null, start: Time = Time.ZERO, distributionName: String, vararg distributionParametrs: Double)
constructor(incarnation: Incarnation<T, *>, randomGenerator: RandomGenerator, node: Node<T>, molecule: Molecule, start: Time = Time.ZERO, distributionName: String, vararg distributionParametrs: Double)
constructor(incarnation: Incarnation<T, *>, node: Node<T>, molecule: Molecule, property: String? = null, start: Time = Time.ZERO, errorDistribution: RealDistribution? = null)

Properties

Link copied to clipboard
val errorDistribution: RealDistribution? = null
Link copied to clipboard
Link copied to clipboard
val node: Node<T>
Link copied to clipboard
val property: String? = null
Link copied to clipboard
val start: Time

Functions

Link copied to clipboard
open override fun cloneOnNewNode(destination: Node<T>, currentTime: Time): MoleculeControlledTimeDistribution<T>
Link copied to clipboard
override fun getNextOccurence(): Time
Link copied to clipboard
override fun getRate(): Double
Link copied to clipboard
override fun update(@Nonnull currentTime: Time, hasBeenExecuted: Boolean, additionalParameter: Double, @Nonnull environment: Environment<T, *>)