Running simulations — BuildingsPy documentation

### Navigation

- index
- modules |
- next |
- previous |
- Home > BuildingsPy

# Running simulations

This module contains the class Simulator that can be used to run Modelica simulations using Dymola.

class `buildingspy.simulate.Simulator.` `Simulator`(modelName, simulator, outputDirectory='.')

  Class to simulate a Modelica model.

  Parameters: | modelName – The name of the Modelica model. simulator – The simulation engine. Currently, the only supported value is `dymola`. outputDirectory – An optional output directory.

  If the parameter `outputDirectory` is specified, then the output files and log files will be moved to this directory when the simulation is completed. Outputs from the python functions will be written to `outputDirectory/BuildingsPy.log`.

  `addModelModifier`(modelModifier)

    Adds a model modifier.

    Parameters: | dictionary – A model modifier.

    Usage: Type

          >>> from buildingspy.simulate.Simulator import Simulator
          >>> s=Simulator("myPackage.myModel", "dymola")
          >>> s.addModelModifier('redeclare package MediumA = Buildings.Media.IdealGases.SimpleAir')

    This method adds a model modifier. The modifier is added to the list of model parameters. For example, the above statement would yield the command `simulateModel(myPackage.myModel(redeclare package MediumA = Buildings.Media.IdealGases.SimpleAir), startTime=...`

  `addParameters`(dictionary)

    Adds parameter declarations to the simulator.

    Parameters: | dictionary – A dictionary with the parameter values

    Usage: Type

          >>> from buildingspy.simulate.Simulator import Simulator
          >>> s=Simulator("myPackage.myModel", "dymola")
          >>> s.addParameters({'PID.k': 1.0, 'valve.m_flow_nominal' : 0.1})
          >>> s.addParameters({'PID.t': 10.0})

    This will add the three parameters `PID.k`, `valve.m_flow_nominal` and `PID.t` to the list of model parameters.

  `addPostProcessingStatement`(command)

    Adds a post-processing statement to the simulation script.

    Parameters: | statement – A script statement.

    This will execute `command` after the simulation, and before the log file is written.

  `addPreProcessingStatement`(command)

    Adds a pre-processing statement to the simulation script.

    Parameters: | statement – A script statement.

    Usage: Type

          >>> from buildingspy.simulate.Simulator import Simulator
          >>> s=Simulator("myPackage.myModel", "dymola")
          >>> s.addPreProcessingStatement("Advanced.StoreProtectedVariables:= true;")
          >>> s.addPreProcessingStatement("Advanced.GenerateTimers = true;")

    This will execute the two statements after the `openModel` and before the `simulateModel` statement.

  `deleteLogFiles`()

    Deletes the log files of the Python simulator, e.g. the files `BuildingsPy.log`, `run.mos` and `simulator.log`.

  `deleteOutputFiles`()

    Deletes the output files of the simulator.

  `exitSimulator`(exitAfterSimulation=True)

    This function allows avoiding that the simulator terminates.

    Parameters: | exit – Set to `False` to avoid the simulator from terminating after the simulation.

    This function is useful during debugging, as it allows to keep the simulator open after the simulation in order to inspect results or log messages.

  `getOutputDirectory`()

    Returns the name of the output directory.

    Returns: | The name of the output directory.

  `getParameters`()

    Returns a list of parameters as (key, value)-tuples.

    Returns: | A list of parameters as (key, value)-tuples.

    Usage: Type

          >>> from buildingspy.simulate.Simulator import Simulator
          >>> s=Simulator("myPackage.myModel", "dymola")
          >>> s.addParameters({'PID.k': 1.0, 'valve.m_flow_nominal' : 0.1})
          >>> s.getParameters()
          [('valve.m_flow_nominal', 0.1), ('PID.k', 1.0)]

  `getSimulatorSettings`()

    Returns a list of settings for the parameter as (key, value)-tuples.

    Returns: | A list of parameters (key, value) pairs, as 2-tuples.

    This method is deprecated. Use `getParameters()` instead.

  `printModelAndTime`()

    Prints the current time and the model name to the standard output.

    This method may be used to print logging information.

  `setNumberOfIntervals`(n)

    Sets the number of output intervals.

    Parameters: | n – The number of output intervals.

    The default is unspecified, which defaults by Dymola to 500.

  `setResultFile`(resultFile)

    Sets the name of the result file (without extension).

    Parameters: | resultFile – The name of the result file (without extension).

  `setSolver`(solver)

    Sets the solver.

    Parameters: | solver – The name of the solver.

    The default solver is radau.

  `setStartTime`(t0)

    Sets the start time.

    Parameters: | t0 – The start time of the simulation in seconds.

    The default stop time is 1.

  `setStopTime`(t1)

    Sets the start time.

    Parameters: | t0 – The start time of the simulation in seconds.

    The default start time is 0.

  `setTimeOut`(sec)

    Sets the time out after which the simulation will be killed.

    Parameters: | sec – The time out after which the simulation will be killed.

    The default value is -1, which means that the simulation will never be killed.

  `setTolerance`(eps)

    Sets the solver tolerance.

    Parameters: | eps – The solver tolerance.

    The default solver tolerance is 1E-6.

  `showGUI`(show=True)

    Call this function to show the GUI of the simulator.

    By default, the simulator runs without GUI

  `showProgressBar`(show=True)

    Enables or disables the progress bar.

    Parameters: | show – Set to false to disable the progress bar.

    If this function is not called, then a progress bar will be shown as the simulation runs.

  `simulate`()

    Simulates the model.

    This method
      1. Deletes dymola output files
      2. Copies the current directory to a temporary directory.
      3. Writes a Modelica script to the temporary directory.
      4. Starts the Modelica simulation environment from the temporary directory.
      5. Translates and simulates the model.
      6. Closes the Modelica simulation environment.
      7. Copies output files and deletes the temporary directory.

    This method requires that the directory that contains the executable dymola is on the system PATH variable. If it is not found, the function returns with an error message.

### Navigation

- index
- modules |
- next |
- previous |
- Home > BuildingsPy