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
- All
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
flaw(method: String, message: String): Unit
- Definition Classes
- Error
- val full: Boolean
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
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
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
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(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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