MoleculeControlledTimeDistribution

class MoleculeControlledTimeDistribution<T>(incarnation: Incarnation<T, *>, val node: Node<T>, val molecule: Molecule, val property: String? = null, val start: Time = Time.ZERO, val errorDistribution: ERROR CLASS: Symbol not found for 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, *>, node: Node<T>, molecule: Molecule, property: String? = null, start: Time = Time.ZERO, errorDistribution: ERROR CLASS: Symbol not found for RealDistribution?? = null)
constructor(incarnation: Incarnation<T, *>, randomGenerator: ERROR CLASS: Symbol not found for RandomGenerator, node: Node<T>, molecule: Molecule, property: String? = null, start: Time = Time.ZERO, distributionName: String, vararg distributionParametrs: Double)
constructor(incarnation: Incarnation<T, *>, randomGenerator: ERROR CLASS: Symbol not found for RandomGenerator, node: Node<T>, molecule: Molecule, start: Time = Time.ZERO, distributionName: String, vararg distributionParametrs: Double)

Properties

Link copied to clipboard
val errorDistribution: ERROR CLASS: Symbol not found for RealDistribution??
Link copied to clipboard
Link copied to clipboard
override val nextOccurence: Time?
Link copied to clipboard
val node: Node<T>
Link copied to clipboard
Link copied to clipboard
override val rate: Double
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
fun update(currentTime: Time, hasBeenExecuted: Boolean, additionalParameter: Double, environment: Environment<T?, *>)