Expand description
§GMT Dynamic Optics Simulation Actors
The GMT DOS Actors are the building blocks of the GMT DOS integrated model. Each Actor has 3 properties:
- input objects
- output objects
- client
§Input/Outputs
input objects are a collection of inputs and output objects are a collection of outputs. An actor must have at least either 1 input or 1 output. A pair of input/output is linked with a channel where the input is the receiver and the output is the sender. The same output may be linked to several inputs. channels are used to synchronize the Actors.
Each Actor performs the same task, within an infinite loop, consisting of 3 operations:
- receiving the inputs if any
- updating the client state
- sending the outputs if any
The loop exits when one of the following error happens: ActorError::NoData, ActorError::DropSend, ActorError::DropRecv.
§Sampling rates
All the inputs of an Actor are collected are the same rate NI
, and all the outputs are distributed at the same rate NO
, however both inputs and outputs rates may be different.
The inputs rate NI
is inherited from the rate NO
of outputs that the data is collected from i.e. (next actor)::NI=(current actor)::NO
.
The rates NI
or NO
are defined as the ratio between the simulation sampling frequency [Hz]
and the actor inputs or outputs sampling frequency [Hz]
, it must be an integer ≥ 1.
If NI>NO
, outputs are upsampled with a simple sample-and-hold for NI/NO
samples.
If NO>NI
, outputs are decimated by a factor NO/NI
For a 1000Hz simulation sampling frequency, the following table gives some examples of inputs/outputs sampling frequencies and rate:
Inputs [Hz] | Ouputs [Hz] | NI | NO | Upsampling | Decimation |
---|---|---|---|---|---|
1000 | 1000 | 1 | 1 | - | 1 |
1000 | 100 | 1 | 10 | - | 10 |
100 | 1000 | 10 | 1 | 10 | - |
500 | 100 | 2 | 10 | - | 5 |
100 | 500 | 10 | 2 | 5 | - |
§Client
A client must be assigned to an Actor and the client must implement some of the following traits:
- Write if the actor has some outputs,
- Read if the actor has some inputs,
- Update, this trait must always be implemented (but the default empty implementation is acceptable)
§Model
An integrated model is build as follows:
Modules§
- actor
- Actor
- aggregation
- Actors aggregations
- client
- framework
- Actors framework
- graph
- Actors graph
- model
- Actors model
- prelude
- system
- System
Macros§
- actorscript
- Interpreter for the scripting language of gmt_dos-actors models.
- count
- model
- Macro to build model
Enums§
Traits§
- ArcMutex
- Creates a reference counted pointer