stepUntil — OpenModelica User's Guide v1.28.0-dev-282-gb926db7519 documentation

# stepUntil

Runs the simulation of an instantiated SSP model or a fmu until a specified time point or in a simulation loop.

> Notes:

>   - Must be called after initialize().

>   - Simulation uses start values from SSV files and any parameters overridden via setValue.

>   - Logged results are saved in the format defined by `setResultFile()` (commonly .mat).

>   - Simulation is performed on the active variant of the SSP model.

Syntax:

    stepUntil(stopTime: float)

Example usage:

    from OMSimulator import FMU, Variable, SignalType, Causality

    fmu = FMU('../resources/Modelica.Blocks.Sources.Sine.fmu', instanceName='Sine')

    fmu.instantiate()
    fmu.setResultFile('Sine_res.mat')

    fmu.initialize()

    current_time = 0.0
    stop_time = 1.0
    step_size = 0.1
    while current_time < stop_time:
      # advance simulation to the next time
      current_time = round(current_time + step_size, 10) # avoid floating point arithmetic issues
      fmu.stepUntil(current_time)
      print(f"info:    time: {current_time}, y: {fmu.getValue('y')}", flush=True)

    fmu.terminate()
    fmu.delete()