# Simulator

pypdevs.simulator.loadCheckpoint(name)

  Load a previously created simulation from a saved checkpoint.

  Parameters

    name – the name of the model to provide some distinction between different simulation models

  Returns

    either None if no recovery was possible, or the Simulator object after simulation

pypdevs.simulator.local(sim)

  Test whether or not the simulation is done locally

  Parameters

    sim – the simulator with the locations

  Returns

    bool – whether or not the simulation is local

class pypdevs.simulator.Simulator(model)

  Associates a hierarchical DEVS model with the simulation engine.

  __init__(model)

    Constructor of the simulator.

    Parameters

      model – a valid model (created with the provided functions)

  checkpoint()

    Create a checkpoint of this object

  drawModelConnections(outfile, model, colors=None)

    Draws all necessary connections between the model

    Parameters

      - outfile – the file to output to

      - model – a CoupledDEVS model whose children should be drawn

      - colors – the colors to draw on the connections. Only used when an initial allocator is used.

  drawModelHierarchy(outfile, model)

    Draws the hierarchy by creating a Graphviz Dot file. This merely creates the first part: the hierarchy of all models

    Parameters

      - outfile – a file handle to write text to

      - model – the model to draw

  loadCheckpoint()

    Alert the Simulator that it was restored from a checkpoint and thus can take some shortcuts

  loadLocationsFromFile(filename)

    Try to load a file containing the allocation of the nodes. If such a (valid) file is found, True is returned. Otherwise False is returned.

    This can thus easily be used in a simulator experiment file as a condition for setting an allocator (e.g. check for an allocation file and if none is found, create one by running the allocator first).

    A partially valid file will not be used; a file does not need to specify an allocation for all models, those that aren’t mentioned are simply skipped and their default allocation is used (as specified in the model itself).

    Parameters

      filename – the name of the file to use

    Returns

      bool – success of the operation

  modifyAttributes(model_id, attr, value)

    Modify an attribute of a specific model.

    Do NOT call this method directly, but call it through the simconfig interface

    Parameters

      - model_id – the model_id of the model to modify the state from

      - attr – the name of the attribute of the model to modify

      - value – the value to set as attribute

  modifyState(model_id, state)

    Modify the state of a specific model.

    Do NOT call this method directly, but call it through the simconfig interface

    Parameters

      - model_id – the model_id of the model to modify the state from

      - state – the state to configure

  modifyStateAttr(model_id, attr, value)

    Modify an attribute of the state of a specific model.

    Do NOT call this method directly, but call it through the simconfig interface

    Parameters

      - model_id – the model_id of the model to modify the state from

      - attr – the name of the attribute of the state to modify

      - value – the value to set as attribute

  real_simulate()

    The actual simulation part, this is identical for the ‘start from scratch’ and ‘start from checkpoint’ algorithm, thus it was split up

  realtime_interrupt(string)

    Generate an interrupt for the realtime backend using a method call.

    Parameters

      string – the value to interrupt with, should be of the form “port value”

  realtime_loop_call()

    Perform a single iteration in the loop for real time simulation

  reinit()

    Reinitialize the model, so that a new simulate() call will restart the simulation anew. This is possible in both local and distributed simulation, though it requires the setAllowLocalReinit method to be called first if you are running local simulation.

    The additional method call is required as allowing reinitialisation requires the complete model to be saved twice (a reinit copy and a working copy).

    Do NOT call this method directly, but call it through the simconfig file

  removeTracers()

    Remove all currently registered tracers.

  runStartup()

    Perform startup of the simulator right before simulation

  showProgress(locations)

    Shows the progress of the simulation by polling all locations that are passed. Should run on a seperate thread as this blocks!

    Parameters

      locations – list of all locations to access

  simulate()

    Start simulation with the previously set options. Can be reran afterwards to continue the simulation of the model (or reinit it first and restart simulation), possibly after altering some aspects of the model with the provided methods.

  startAllocator()

    Set the use of an allocator if required, thus forcing all models to run at the controller