Packages

class PetriNet extends PetriNetRules with Error

The PetriNet class provides a simulation engine for Hybrid Colored Petri Nets. Reference: "Discrete-event simulation of fluid stochastic Petri Nets"

Linear Supertypes
Error, PetriNetRules, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PetriNet
  2. Error
  3. PetriNetRules
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PetriNet(colors: Array[Color], placeD: Array[PlaceD], transition: Array[Transition])

    Construct a continuous Petri net (fluids, but no tokens).

    Construct a continuous Petri net (fluids, but no tokens).

    colors

    array of colors for fluids

    placeD

    array of continuous places

    transition

    array of timed transitions

  2. new PetriNet(colors: Array[Color], placeI: Array[PlaceI], transition: Array[Transition])

    Construct a discrete Petri net (tokens, but no fluids).

    Construct a discrete Petri net (tokens, but no fluids).

    colors

    array of colors for tokens

    placeI

    array of discrete places

    transition

    array of timed transitions

  3. new PetriNet(colors: Array[Color], placeI: Array[PlaceI], placeD: Array[PlaceD], transition: Array[Transition])

    colors

    array of colors for tokens/fluids

    placeI

    array of discrete places

    placeD

    array of continuous places

    transition

    array of timed transitions

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def calcFiringDelay(v: Variate, w_t: VectorD, t: VectorI, w_f: VectorD, f: VectorD): Double

    Function to compute the delay in firing a transition.

    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.

    v

    the random variate used to compute base firing time

    w_t

    the weight for the token vector

    t

    the aggregate token vector (summed over all input places)

    w_f

    the weight for the fluid vector

    f

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

    Definition Classes
    PetriNetRules
  6. def clock: Double

    Get the current time.

  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def flaw(method: String, message: String): Unit
    Definition Classes
    Error
  12. 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".

    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.

    f

    the fluid vector (amount of fluid per color)

    derv

    the array of derivative functions

    t0

    the current time

    d

    the time delay

    Definition Classes
    PetriNetRules
  13. def fluidFlow(f: VectorD, b: VectorD, r: VectorD = null, d: Double = 0): VectorD

    Compute the amount of fluid to flow over an arc according to the vector expression: b + r * (f-b) * d.

    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.

    f

    the fluid vector (amount of fluid per color)

    b

    the constant vector for base fluid flow

    r

    the rate vector (amounts of fluids per unit time)

    d

    the time delay

    Definition Classes
    PetriNetRules
  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  15. def getCommandQueue: ConcurrentLinkedQueue[AnimateCommand]

    Get the animation command queue.

  16. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  17. def initAnimation(gColors: Array[Color] = ..., timeDilationFactor: Double = 1000.0): Unit

    Initialize the animation by drawing the Petri net components onto the animation drawing panel using animation commands.

    Initialize the animation by drawing the Petri net components onto the animation drawing panel using animation commands.

    gColors

    the colors for nodes and edges in the graph i.e., discrete-places, continuous-places, transitions and arcs

    timeDilationFactor

    time dilation is used to speed up/slow down animation

  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  22. def simulate(tStart: Double, tStop: Double): Unit

    Simulate the execution of the Petri Net.

    Simulate the execution of the Petri Net.

    tStart

    the starting time for the simulation

    tStop

    the stopping time for the simulation

  23. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  24. def thresholdD(f: VectorD, b: VectorD): Boolean

    Return whether the vector inequality is true: f >= b.

    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.

    f

    The fluid vector (amount of fluid per color)

    b

    The base constant vector

    Definition Classes
    PetriNetRules
  25. def thresholdI(t: VectorI, b: VectorI): Boolean

    Return whether the vector inequality is true: t >= b.

    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.

    t

    the token vector (number of tokens per color)

    b

    the base constant vector

    Definition Classes
    PetriNetRules
  26. def toString(): String

    Convert the Petri net to the string representation.

    Convert the Petri net to the string representation.

    Definition Classes
    PetriNet → AnyRef → Any
  27. def tokenFlow(t: VectorI, b: VectorI, r: VectorI = null, d: Double = 0): VectorI

    Compute the number of tokens to flow over an arc according to the vector expression: b + r * (t-b) * d.

    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.

    t

    the token vector (number of tokens per color)

    b

    the constant vector for base token flow

    r

    the rate vector (number of tokens per unit time)

    d

    the time delay

    Definition Classes
    PetriNetRules
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Error

Inherited from PetriNetRules

Inherited from AnyRef

Inherited from Any

Ungrouped