class diagrams
Model, Stepper and Entity
http://www.sfc.keio.ac.jp/~shafi/modelclass.png
Stepper classes
| TYPE | dt | time scale | Process | Interrupt | Interrupted |
| Differential, or DE | var. | == dt | addVelocity | yes | shrink dt, reschedule |
| Discrete Time, or DT | const. | == dt | setValue | yes | ignore |
| Dicrete Event, or DEV | var. | var. | setValue | Timescale | always |
| Slave | Inf. | == dt (== Inf) | setValue | never | step() |
how the simulator steps
Definitions
- Event is a pair of ( scheduled time, StepperPtr? )
- Model class has a dynamic priority queue of Event objects. The Events are incompletely-sorted as a heap tree. Sort criteria is less<Event>, that is, the event with earliest scheduled time is kept on the top.
- current time is defined as a scheduled time of the top Event
PropertyInterface?
Entity is-a PropertyInterface?
Roles
- set/get properties getting Message objects
- argument / returns UConstantVector
- provide Logger with time-series data
- ( Time, Real )
- provide objects in other computation modules with a means of syncronizing Property values
- PropertySlotProxy?
- Real
Design
- A PropertyInterface? has-a map of PropertySlot?
- A PropertyInterface? gets Message objects and passes them to appropriate PropertySlot?
- A PropertySlot? has pointers to accessor/mutator which emits/receives Message objects
- A PropertySlot? has-a list of pointers to Logger objects which are observing the PropertySlot?
Property slot signatures
typedef const Type ( T::* GetMethodPtr )() const;
typedef void ( T::* SetMethodPtr )( TypeCref );
where T is the class of the property, and Type is the type of the slot.
Type is one of Real, Int, String, and Polymorph
