PetriNetRulesTest

scalation.simulation.activity.PetriNetRulesTest
object PetriNetRulesTest extends App, PetriNetRules

The PetriNetRulesTest object is used to test the PetriNetRules trait.

runMain scalation.simulation.activity.PetriNetRulesTest

Attributes

Graph
Supertypes
trait App
trait DelayedInit
class Object
trait Matchable
class Any
Show all
Self type

Members list

Value members

Concrete methods

def derv1(t: Double, y: Double): Double
def derv2(t: Double, y: Double): Double

Inherited methods

final protected def args: Array[String]

Attributes

Inherited from:
App
def calcFiringDelay(v: Variate, w_t: VectorD, t: VectorI, w_f: VectorD, f: VectorD): Double

Function to compute the delay in firing a transition. The base time is given by a random variate. This is adjusted by weight vectors multiplying the number of aggregate tokens and the aggregate amount of fluids summed over all input places: delay = v + w_t * t + w_f * f.

Function to compute the delay in firing a transition. The base time is given by a random variate. This is adjusted by weight vectors multiplying the number of aggregate tokens and the aggregate amount of fluids summed over all input places: delay = v + w_t * t + w_f * f.

Value parameters

f

the aggregate fluid level vector (summed over all input places)

t

the aggregate token vector (summed over all input places)

v

the random variate used to compute base firing time

w_f

the weight for the fluid vector

w_t

the weight for the token vector

Attributes

Inherited from:
PetriNetRules
def fluidFlow(f: VectorD, derv: Array[Derivative], t0: Double, d: Double): VectorD

Compute the amount of fluid to flow over an arc according to the system of first-order Ordinary Differential Equation 'ODE's: "integral 'derv' from t0 to t". Supports ODE base flow models.

Compute the amount of fluid to flow over an arc according to the system of first-order Ordinary Differential Equation 'ODE's: "integral 'derv' from t0 to t". Supports ODE base flow models.

Value parameters

d

the time delay

derv

the array of derivative functions

f

the fluid vector (amount of fluid per color)

t0

the current time

Attributes

Inherited from:
PetriNetRules
def fluidFlow(f: VectorD, b: VectorD, r: VectorD, d: Double): VectorD

Compute the amount of fluid to flow over an arc according to the vector expression: b + r * (f-b) * d. If r is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.

Compute the amount of fluid to flow over an arc according to the vector expression: b + r * (f-b) * d. If r is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.

Value parameters

b

the constant vector for base fluid flow

d

the time delay

f

the fluid vector (amount of fluid per color)

r

the rate vector (amounts of fluids per unit time)

Attributes

Inherited from:
PetriNetRules
final def main(args: Array[String]): Unit

Attributes

Inherited from:
App
def thresholdD(f: VectorD, b: VectorD): Boolean

Return whether the vector inequality is true: f >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.

Return whether the vector inequality is true: f >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.

Value parameters

b

The base constant vector

f

The fluid vector (amount of fluid per color)

Attributes

Inherited from:
PetriNetRules
def thresholdI(t: VectorI, b: VectorI): Boolean

Return whether the vector inequality is true: t >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.

Return whether the vector inequality is true: t >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.

Value parameters

b

the base constant vector

t

the token vector (number of tokens per color)

Attributes

Inherited from:
PetriNetRules
def tokenFlow(t: VectorI, b: VectorI, r: VectorI, d: Double): VectorI

Compute the number of tokens to flow over an arc according to the vector expression: b + r * (t-b) * d. If d is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.

Compute the number of tokens to flow over an arc according to the vector expression: b + r * (t-b) * d. If d is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.

Value parameters

b

the constant vector for base token flow

d

the time delay

r

the rate vector (number of tokens per unit time)

t

the token vector (number of tokens per color)

Attributes

Inherited from:
PetriNetRules

Deprecated and Inherited methods

override def delayedInit(body: => Unit): Unit

Attributes

Deprecated
[Since version 2.11.0] the delayedInit mechanism will disappear
Definition Classes
App -> DelayedInit
Inherited from:
App

Concrete fields

val b_f: VectorD
val b_t: VectorI
val d: Double
val dervs: Array[Derivative]
val f: VectorD
val r_f: VectorD
val r_t: VectorI
val t: VectorI
val t0: Double
val w_f: VectorD
val w_t: VectorD

Inherited fields

final val executionStart: Long

Attributes

Inherited from:
App