AtomicDEVS User InterfaceΒΆ

class DEVS.AtomicDEVS(name=None)[source]

Abstract base class for all atomic-DEVS descriptive classes.

__init__(name=None)[source]

Constructor for an AtomicDEVS model

Parameters:name – name of the model, can be None to have an automatically generated name
addInPort(name=None)

Add an input port to the DEVS model.

addInPort is the only proper way to add input ports to a DEVS model. As for the CoupledDEVS.addSubModel method, calls to addInPort and addOutPort can appear in any DEVS’ descriptive class constructor, or the methods can be used with an instantiated object.

The methods add a reference to the new port in the DEVS’ IPorts attributes and set the port’s hostDEVS attribute. The modeler should typically save the returned reference somewhere.

Parameters:name – the name of the port. A unique ID will be generated in case None is passed
Returns:port – the generated port
addOutPort(name=None)

Add an output port to the DEVS model.

addOutPort is the only proper way to add output ports to DEVS. As for the CoupledDEVS.addSubModel method, calls to addInPort and addOutPort can appear in any DEVS’ descriptive class constructor, or the methods can be used with an instantiated object.

The methods add a reference to the new port in the DEVS’ OPorts attributes and set the port’s hostDEVS attribute. The modeler should typically save the returned reference somewhere.

Parameters:name – the name of the port. A unique ID will be generated in case None is passed
Returns:port – the generated port
confTransition(inputs)[source]

DEFAULT Confluent Transition Function.

Accesses state and elapsed attributes, as well as inputs through the passed dictionary. Returns the new state.

Note

Should only write to the state attribute.

Parameters:inputs – dictionary containing all ports and their corresponding outputs
Returns:state – the new state of the model
extTransition(inputs)[source]

DEFAULT External Transition Function.

Accesses state and elapsed attributes, as well as inputs through the passed dictionary. Returns the new state.

Note

Should only write to the state attribute.

Parameters:inputs – dictionary containing all ports and their corresponding outputs
Returns:state – the new state of the model
intTransition()[source]

DEFAULT Internal Transition Function.

Note

Should only write to the state attribute.

Returns:state – the new state of the model

Changed in version 2.1: The elapsed attribute is no longer guaranteed to be correct as this isn’t required by the DEVS formalism.

modelTransition(state)

DEFAULT function for Dynamic Structure DEVS, always returning False (thus indicating that no structural change is needed)

Parameters:state – a dict that can be used to save some kind of state, this object is maintained by the kernel and will be passed each time
Returns:bool – whether or not a structural change is necessary
outputFnc()[source]

DEFAULT Output Function.

Accesses only state attribute. Returns the output on the different ports as a dictionary.

Note

Should not write to any attribute.

Returns:dictionary containing output ports as keys and lists of output on that port as value

Changed in version 2.1: The elapsed attribute is no longer guaranteed to be correct as this isn’t required by the DEVS formalism.

postActivityCalculation(prevalue)[source]

DEFAULT post-transition activity fetcher. The returned value will be passed on to the relocator and MUST be an addable (e.g. integer, float, ...)

Parameters:prevalue – the value returned from the preActivityCalculation method
Returns:addable (float, integer, ...) – passed to the relocator
preActivityCalculation()[source]

DEFAULT pre-transition activity fetcher. The returned value is passed to the postActivityCalculation function

Returns:something – passed to the postActivityCalculation
removePort(port)

Remove a port (either input or output) from the model, disconnecting all of its connections.

Parameters:port – the port to remove
simSettings(simulator)

Modifies the simulation settings from within the model.

This function is called _before_ direct connection and distribution is performed, so the user can still access the complete hierarchy.

Note

This function is only called on the root model of the simulation, thus the model passed to the constructor of the Simulator object.

Parameters:simulator – the simulator object on which settings can be configured
timeAdvance()[source]

DEFAULT Time Advance Function.

Note

Should ideally be deterministic, though this is not mandatory for simulation.

Returns:the time advance of the model

Changed in version 2.1: The elapsed attribute is no longer guaranteed to be correct as this isn’t required by the DEVS formalism.