CoupledDEVS¶
- class pypdevs.DEVS.CoupledDEVS(name=None)[source]¶
Abstract base class for all coupled-DEVS descriptive classes.
- __init__(name=None)[source]¶
Constructor.
- Parameters
name – the name of the coupled model, can be None for an automatically generated name
- addSubModel(model, location=None)[source]¶
Adds a specified model to the current coupled model as its child. This is the function that must be used to make distributed simulation possible.
- Parameters
model – the model to be added as a child
location – the location at which the child must run
- Returns
model – the model that was created as a child
Changed in version 2.1.3: model can no longer be a string, this was previously a lot more efficient in partial distribution, though this functionality was removed together with the partial distribution functionality.
- connectPorts(p1, p2, z=None)[source]¶
Connects two ports together. The coupling is to begin at p1 and to end at p2.
- Parameters
p1 – the port at the start of the new connection
p2 – the port at the end of the new connection
z – the translation function for the events either input-to-input, output-to-input or output-to-output.
- disconnectPorts(p1, p2)[source]¶
Disconnect two ports
Note
If these ports are connected multiple times, only one of them will be removed.
- Parameters
p1 – the port at the start of the connection
p2 – the port at the end of the connection
- finalize(name, model_counter, model_ids, locations, select_hierarchy)[source]¶
Finalize the model hierarchy by doing all pre-simulation configuration
Note
Parameters model_ids and locations are updated by reference.
- Parameters
name – the name of the hierarchy above
model_counter – the model ID counter
model_ids – a list with all model_ids and their model
locations – dictionary of locations and where every model runs
select_hierarchy – hierarchy to perform selections in Classic DEVS
- Returns
int – the new model ID counter
- flattenConnections()[source]¶
Flattens the pickling graph, by removing backreference from the ports.
- getModelLoad(lst)[source]¶
Fetch the number of atomic models at this model
- Parameters
lst – list containing all locations and their current load
- Returns
number of atomic models in this subtree, including non-local ones
- removeSubModel(model)[source]¶
Remove a specified model from the current coupled model, only callable while in a simulation.
- Parameters
model – the model to remove as a child
- select(imm_children)[source]¶
DEFAULT select function, only used when using Classic DEVS simulation
- Parameters
imm_children – list of all children that want to transition
- Returns
child – a single child that is allowed to transition