Packages

class Model extends Coroutine with Modelable with Component

The Model class maintains a list of components making up the model and controls the flow of entities (SimActors) through the model, following the process-interaction world-view. It maintains a time-ordered priority queue to activate/re-activate each of the entities. Each entity (SimActor) is implemented as a Scala Actor and may be thought of as running in its own thread.

Linear Supertypes
Component, Locatable, Identifiable, Modelable, Coroutine, Error, Runnable, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Model
  2. Component
  3. Locatable
  4. Identifiable
  5. Modelable
  6. Coroutine
  7. Error
  8. Runnable
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Model(name: String, reps: Int = 1, animating: Boolean = true, aniRatio: Double = 1.0, full: Boolean = true)

    name

    the name of the model

    reps

    the number of independent replications to run

    animating

    whether to animate the model

    aniRatio

    the ratio of simulation speed vs. animation speed

    full

    generate a full report with both sample and time-persistent statistics

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. val DIAM: Double

    Diameter of a token (for animating entities)

    Diameter of a token (for animating entities)

    Definition Classes
    Component
  5. val HOUR: Double

    The number of seconds in one hour

    The number of seconds in one hour

    Attributes
    protected
    Definition Classes
    Modelable
  6. val MINUTE: Double

    The number of seconds in one minute

    The number of seconds in one minute

    Attributes
    protected
    Definition Classes
    Modelable
  7. val RAD: Double

    Radius of a token (for animating entities)

    Radius of a token (for animating entities)

    Definition Classes
    Component
  8. val _clock: Double

    The clock that keep track of the current simulation time

    The clock that keep track of the current simulation time

    Attributes
    protected
    Definition Classes
    Modelable
  9. def accum(value: Double): Unit

    Accumulate the value (e.g., number in queue) weighted by its time duration.

    Accumulate the value (e.g., number in queue) weighted by its time duration.

    value

    the value to accumulate

    Definition Classes
    Component
  10. def act(): Unit

    The model itself is an Actor (not an ordinary SimActor) and may be thought of as the director.

    The model itself is an Actor (not an ordinary SimActor) and may be thought of as the director. The director iteratively manages the clock and the agenda of actors until the simulation flag becomes false or the agenda (priority queue) becomes empty.

    Definition Classes
    ModelCoroutine
  11. def addComponent(_parts: Component*): Unit

    Add component parts to the model.

    Add component parts to the model.

    _parts

    the component parts

  12. def addComponents(_parts: List[Component]*): Unit

    Add lists of component parts to the model.

    Add lists of component parts to the model.

    _parts

    the lists of component parts

  13. def aggregate(): Unit

    Aggregate the statistics of this component's subparts.

    Aggregate the statistics of this component's subparts.

    Definition Classes
    Component
  14. def animate(who: Identifiable, what: animation.CommandType.Value, color: Color, shape: Shape, from: Component, to: Component, at: Array[Double] = Array ()): Unit

    Put a edge command on the animation queue.

    Put a edge command on the animation queue.

    who

    who is being animated

    what

    what animation command

    color

    the color the edge

    shape

    the shape of the edge

    from

    the location of the origination node

    to

    the location of the destination node

    at

    the location of the edge (empty array => implicitly determined)

  15. def animate(who: Identifiable, what: animation.CommandType.Value, color: Color, shape: Shape, at: Array[Double]): Unit

    Put a node/token command on the animation queue.

    Put a node/token command on the animation queue.

    who

    who is being animated

    what

    what animation command

    color

    the color the node/token

    shape

    the shape of the node/token

    at

    the location of the node/token

  16. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  17. def at: Array[Double]
    Definition Classes
    Locatable
  18. def at_=(at: Array[Double]): Unit
    Definition Classes
    Locatable
  19. def cleanup(): Unit

    Cleanup the agenda and any stateful components.

    Cleanup the agenda and any stateful components. Any actors left in the agenda or a wait queue must be terminated. The model (i.e., the director) must be terminated as well.

  20. def clock: Double

    Return the current value of the director's clock.

    Return the current value of the director's clock.

    Definition Classes
    Modelable
  21. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  22. def complete(): Unit

    Wait for the main simulation Coroutine to complete.

    Wait for the main simulation Coroutine to complete. This can used used to time execution of models.

    See also

    apps.process.Bank2

  23. def composite: Boolean

    Indicate whether this component is composite, i.e., has subparts.

    Indicate whether this component is composite, i.e., has subparts.

    Definition Classes
    Component
  24. def counts: (Int, Int, Int)

    Return the Coroutine counts.

    Return the Coroutine counts.

    Definition Classes
    Coroutine
  25. def director: Model

    Get the director who controls the play/simulation this component is in.

    Get the director who controls the play/simulation this component is in.

    Definition Classes
    Component
  26. def director_=(director: Model): Unit

    Set this component's director (the controller of the simulation model).

    Set this component's director (the controller of the simulation model).

    director

    the director of the play/simulation

    Definition Classes
    Component
  27. def display(): Unit

    Put the components on the animation engine's queue.

    Put the components on the animation engine's queue.

    Definition Classes
    ModelComponent
  28. def durationStat: Statistic

    Return sample statistics for durations for this component (e.g., Time in queue).

    Return sample statistics for durations for this component (e.g., Time in queue).

    Definition Classes
    Component
  29. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  30. def equals(that: Any): Boolean
    Definition Classes
    Identifiable → AnyRef → Any
  31. final def flaw(method: String, message: String): Unit
    Definition Classes
    Error
  32. val full: Boolean
  33. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  34. def getStatistics: ListBuffer[Statistic]

    Return the statistical results of the simulation (statistics for each part).

    Return the statistical results of the simulation (statistics for each part). This includes the sample/duration statistics and if 'full', time persistent statistics as well.

  35. def hashCode(): Int
    Definition Classes
    Identifiable → AnyRef → Any
  36. val id: Int
    Definition Classes
    Identifiable
  37. def initComponent(label: String, loc: Array[Double]): Unit

    Initialize this component (all of its 'var's).

    Initialize this component (all of its 'var's).

    label

    the name of this component

    loc

    the location of this component

    Definition Classes
    Component
  38. def initStats(label: String): Unit

    Initialize this component's statistical collectors.

    Initialize this component's statistical collectors. Sample statistics: all Components. Time-persistent statistics: all except Gate, Source and Sink.

    label

    the name of this component

    Definition Classes
    Component
  39. def interrupt(): Unit

    Interrupt this waiting coroutine.

    Interrupt this waiting coroutine.

    Definition Classes
    Coroutine
  40. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  41. def me: String
    Definition Classes
    Identifiable
  42. def name: String
    Definition Classes
    Identifiable
  43. def name_=(name: String): Unit
    Definition Classes
    Identifiable
  44. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  45. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  46. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  47. def persistentStat: TimeStatistic

    Return time persistent statistics for value for this component (e.g.

    Return time persistent statistics for value for this component (e.g. Number in queue).

    Definition Classes
    Component
  48. val reps: Int
  49. def reschedule(actor: SimActor): Unit

    Schedule (first time) or reschedule (subsequent times) an actor to act.

    Schedule (first time) or reschedule (subsequent times) an actor to act.

    actor

    the actor to be scheduled

  50. def reset(): Unit

    Reset the agenda and stateful components for next replication.

  51. def resetStats(rep: Int): Unit

    Reset and aggregate all statistics.

    Reset and aggregate all statistics.

    rep

    the current replication (1, ... reps)

  52. def run(): Unit

    Thread's 'run' method delegates to the 'act' method.

    Thread's 'run' method delegates to the 'act' method. Upon interruption the 'act' method is run again from the beginning.

    Definition Classes
    Coroutine → Runnable
  53. def simType: String
    Definition Classes
    Identifiable
  54. def simulate(_startTime: Double = 0.0): Unit

    Execute the simulation (includes scheduling all Sources) returning summary statistics.

    Execute the simulation (includes scheduling all Sources) returning summary statistics.

    Definition Classes
    ModelModelable
  55. val simulating: Boolean

    Simulation execution/termination flag

    Simulation execution/termination flag

    Attributes
    protected
    Definition Classes
    Modelable
  56. def start(): Future[_]

    Start this coroutine, i.e., invoke its 'run' -> 'act' method.

    Start this coroutine, i.e., invoke its 'run' -> 'act' method. This function returns a future.

    Definition Classes
    Coroutine
  57. val statV: HashMap[String, VectorD]

    The map of statistics vectors records the means of each replication

  58. var stopTime: Double

    The stop time for the model

  59. def stopped: Boolean

    Indicate whether the model has been stopped.

  60. val subpart: ListBuffer[Component]

    List of subparts of the Component (empty for atomic components, nonempty for composites)

    List of subparts of the Component (empty for atomic components, nonempty for composites)

    Definition Classes
    Component
  61. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  62. def tally(duration: Double): Unit

    Tally the duration (e.g., waiting time) of an activity or delay.

    Tally the duration (e.g., waiting time) of an activity or delay.

    duration

    the time duration

    Definition Classes
    Component
  63. def theActor: SimActor

    Return the current acting actor.

  64. def toString(): String
    Definition Classes
    AnyRef → Any
  65. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  66. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  67. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  68. def yyield(that: Coroutine, quit: Boolean = false): Unit

    Yield control from 'this' to 'that' coroutine.

    Yield control from 'this' to 'that' coroutine.

    that

    the other coroutine to yield control to

    quit

    whether 'this' coroutine is to terminate (true) or wait to be resumed (false)

    Definition Classes
    Coroutine

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Component

Inherited from Locatable

Inherited from Identifiable

Inherited from Modelable

Inherited from Coroutine

Inherited from Error

Inherited from Runnable

Inherited from AnyRef

Inherited from Any

Ungrouped