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 (SimActor
s) 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.
- Alphabetic
- By Inheritance
- Model
- Component
- Locatable
- Identifiable
- Modelable
- Coroutine
- Error
- Runnable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- 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
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val DIAM: Double
Diameter of a token (for animating entities)
Diameter of a token (for animating entities)
- Definition Classes
- Component
- val HOUR: Double
The number of seconds in one hour
The number of seconds in one hour
- Attributes
- protected
- Definition Classes
- Modelable
- val MINUTE: Double
The number of seconds in one minute
The number of seconds in one minute
- Attributes
- protected
- Definition Classes
- Modelable
- val RAD: Double
Radius of a token (for animating entities)
Radius of a token (for animating entities)
- Definition Classes
- Component
- 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
- 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
- def act(): Unit
The model itself is an Actor (not an ordinary
SimActor
) and may be thought of as the director. - def addComponent(_parts: Component*): Unit
Add component parts to the model.
Add component parts to the model.
- _parts
the component parts
- 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
- def aggregate(): Unit
Aggregate the statistics of this component's subparts.
Aggregate the statistics of this component's subparts.
- Definition Classes
- Component
- 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)
- 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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def at: Array[Double]
- Definition Classes
- Locatable
- def at_=(at: Array[Double]): Unit
- Definition Classes
- Locatable
- 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.
- def clock: Double
Return the current value of the director's clock.
Return the current value of the director's clock.
- Definition Classes
- Modelable
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- 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
- 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
- def counts: (Int, Int, Int)
Return the Coroutine counts.
Return the Coroutine counts.
- Definition Classes
- Coroutine
- 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
- 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
- def display(): Unit
Put the components on the animation engine's queue.
- 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
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(that: Any): Boolean
- Definition Classes
- Identifiable → AnyRef → Any
- final def flaw(method: String, message: String): Unit
- Definition Classes
- Error
- val full: Boolean
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- 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.
- def hashCode(): Int
- Definition Classes
- Identifiable → AnyRef → Any
- val id: Int
- Definition Classes
- Identifiable
- 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
- def initStats(label: String): Unit
Initialize this component's statistical collectors.
Initialize this component's statistical collectors. Sample statistics: all
Component
s. Time-persistent statistics: all exceptGate
,Source
andSink
.- label
the name of this component
- Definition Classes
- Component
- def interrupt(): Unit
Interrupt this waiting coroutine.
Interrupt this waiting coroutine.
- Definition Classes
- Coroutine
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def me: String
- Definition Classes
- Identifiable
- def name: String
- Definition Classes
- Identifiable
- def name_=(name: String): Unit
- Definition Classes
- Identifiable
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- 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
- val reps: Int
- 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
- def reset(): Unit
Reset the agenda and stateful components for next replication.
- def resetStats(rep: Int): Unit
Reset and aggregate all statistics.
Reset and aggregate all statistics.
- rep
the current replication (1, ... reps)
- 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
- def simType: String
- Definition Classes
- Identifiable
- def simulate(_startTime: Double = 0.0): Unit
Execute the simulation (includes scheduling all Sources) returning summary statistics.
- val simulating: Boolean
Simulation execution/termination flag
Simulation execution/termination flag
- Attributes
- protected
- Definition Classes
- Modelable
- 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
- val statV: HashMap[String, VectorD]
The map of statistics vectors records the means of each replication
- var stopTime: Double
The stop time for the model
- def stopped: Boolean
Indicate whether the model has been stopped.
- 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
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- 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
- def theActor: SimActor
Return the current acting actor.
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated