Basics

class rtctools.simulation.simulation_problem.SimulationProblem(**kwargs)[source]

Bases: DataStoreAccessor

Implements the BMI Interface.

Base class for all Simulation problems. Loads the Modelica Model.

Variables:

modelica_library_folders – Folders containing any referenced Modelica libraries. Default is an empty list.

get_current_time()[source]

Return current time of simulation.

Returns:

The current simulation time.

get_end_time()[source]

Return end time of experiment.

Returns:

The end time of the experiment.

get_start_time()[source]

Return start time of experiment.

Returns:

The start time of the experiment.

get_var(name)[source]

Return a numpy array from FMU.

Parameters:

name – Variable name.

Returns:

The value of the variable.

get_var_count()[source]

Return the number of variables in the model.

Returns:

The number of variables in the model.

get_var_name(i)[source]

Returns the name of a variable.

Parameters:

i – Index in ordered dictionary returned by method get_variables.

Returns:

The name of the variable.

get_var_rank(name)[source]

Not implemented

get_var_shape(name)[source]

Not implemented

get_var_type(name)[source]

Return type, compatible with numpy.

Parameters:

name – String variable name.

Returns:

The numpy-compatible type of the variable.

Raises:

KeyError

get_variables()[source]

Return all variables (both internal and user defined)

Returns:

An ordered dictionary of all variables supported by the model.

initialize(config_file=None)[source]

Initialize state vector with default values

Parameters:

config_file – Path to an initialization file.

post()[source]

Any postprocessing takes place here.

pre()[source]

Any preprocessing takes place here.

reset()[source]

Reset the FMU.

setup_experiment(start, stop, dt)[source]

Method for subclasses (PIMixin, CSVMixin, or user classes) to set timing information for a simulation run.

Parameters:
  • start – Start time for the simulation.

  • stop – Final time for the simulation.

  • dt – Time step size.

simulate()[source]

Run model from start_time to end_time.

update(dt)[source]

Performs one timestep.

The methods setup_experiment and initialize must have been called before.

Parameters:

dt – Time step size.

rtctools.util.run_simulation_problem(simulation_problem_class, base_folder='..', log_level=20, **kwargs)[source]

Sets up and runs a simulation problem.

Parameters:
  • simulation_problem_class – Simulation problem class to solve.

  • base_folder – Folder within which subfolders “input”, “output”, and “model” exist, containing input and output data, and the model, respectively.

  • log_level – The log level to use.

Returns:

SimulationProblem instance.