Skip to content

Latest commit

 

History

History
237 lines (199 loc) · 17 KB

CHANGELOG.md

File metadata and controls

237 lines (199 loc) · 17 KB

Change log

All notable changes to libcosim will be documented in this file. This includes new features, bug fixes and breaking changes. For a more detailed list of all changes, click the header links for each version.

This project adheres to Semantic Versioning

v0.10.4 - 2024-12-12

Fixed
  • Real time factor calculation for small time steps has been improved by computing a rolling average rather than a fixed amount of 5 timesteps.
  • Variables are now correctly transferred at the points in the FMU initialization sequence where they are permitted to change.
  • FMU start values will now be correctly initialized before entering initialization mode.
  • Various bug fixes and improvements.
Changed
  • The fixed precision of the file observer can now be specified.
  • File observer is now printing the correct FMU author.

v0.10.3 - 2024-02-19

Fixed
  • parseURI null check and error handling implemented.
Changed
  • Upgraded Conan to v2

v0.10.2 - 2023-02-08

Fixed
  • Update to proxyfmu 0.3.1 due to a disconnection issue related to Thrift.

v0.10.1 - 2022-12-08

Changed
  • Update to proxyfmu 0.3.0 due to downstream build issues related to Thrift.

v0.10.0 - 2022-12-02

Changed
  • GCC7 and GCC8 artifact builds have been removed, and GCC9 artifact builds added. This is currently the only supported GCC version.
  • The file observer is now programmatically configurable, and there is no longer a need for clients to create a separate LogConfig.xml file upfront to specify it's configuration.
  • The file observer no longer outputs headers as variable name [reference, type, causality]. Instead only the variable name is output, and the extra data about each variable and the model itself is output in a separate metadata file, in YAML format. This will have the same filename as the CSV file with the simulation data, including the timestamp, with _metadata at the end.
  • Using find_variable no longer throws an exception, but rather returns an optional value, which may be empty if the variable could not be found.
  • Update to proxyfmu 0.2.9.
Added
  • An asynchronous version of simulate_until is now available through the execution interface. This accepts an optional end time parameter and launches the execution in a new thread.
  • Support has been added for optionally specifying simulation end time (where only start time was supported) in OspSystemStructure.xml. If specified, end time will also be parsed and made available in the simulation configuration.
Fixed

v0.9.0 – 2022-04-05

Changed
  • Removed fibers to simplify code and increase simulation performance. Concurrency must now be implemented in the master algorithm, and fixed_step_algorithm has been modified to use a thread pool. (PR#674, PR#692)
  • Performance improvements (PR#687)
Added
  • OspModelDescription.xml can be located in same folder as FMU when using proxyfmu (PR#688)
  • Option to build with FMI logging removed (PR#679)
Fixed
  • Update to proxyfmu 0.2.7

v0.8.3 – 2021-11-26

Fixed
  • Update to proxyfmu 0.2.6 (PR#676)
  • Adding builds for:
    • libcosim as static library (PR#627)
    • compiled with VS2019 (PR#660)

v0.8.2 – 2021-10-21

Fixed
  • Update to fmilibrary 2.3 (PR#659)
  • Update to proxyfmu 0.2.4 (PR#663)

v0.8.1 – 2021-09-15

Fixed
  • Using proxyfmu v0.2.3 that fixes an assumtion that proxyfmu executable being located in working directory (PR#657, proxyfmu#40)
  • Stopped-flag not reset when end-time exceeded (PR#656)

v0.8.0 – 2021-09-03

Changed
  • Replacing JVM based fmu-proxy with proxy-fmu (PR#633)
  • Replacing boost::filesystem with std::filesystem (PR#637)
Fixed
  • Memory leaks in observers (PR#647)

v0.7.1 – 2021-06-03

Added
  • improving documentation (PR#617)
Fixed
  • Compile using VS2019(PR#638)
  • Allow empty sequence of initial values in OspSystemStructure (PR#613)
  • Model description only exposed through execution (PR#603)
  • Validate initial variable values from OspSystemStructure (PR#604)
  • Real time timer improvements (PR#605)
  • Link dependencies dynamically (PR#596)
  • updating dependencies and resolving conflicts (PR#610, PR#632, PR#641)

v0.7.0 – 2020-05-29

Changed
  • Renamed library from csecore to libcosim (PR#571)
  • C API moved to separate repository libcosimc (PR#571)
  • Split model.hpp into model_description.hpp and time.hpp (PR#587)
Added
  • Provide library version in API (PR#586)
Fixed
  • Incorrect parsing of VectorSum function dimension (PR#580)
  • Arbitrary order for child elements in OspSystemStructure.xml <connections>(PR#575)

v0.6.0 – 2020-04-27

Changed
  • MSMI configuration (OspSystemStructure.xml and OspModelDescription.xml) updated
    • plugs, sockets and bonds replaced with variable groups (PR#496, PR#530, PR#537)
    • configuration for Function to FMU connections (PR#517)
    • Include FMI 2.0 unit xsd in OspModelDescription.xml (#523)
  • multi-variable connections replaced with functions (PR#518)
  • algorithm configuration moved to DefaultExperiment in .ssd (PR#447)
  • OspModelDescription file location at FMU path or configuration path (#462)
Added
  • Functions for calculations between time steps (PR#517)
  • Support setting initial values through C API (#328)
  • Increased SSP support:
    • support .ssp files (#491)
    • support individual model step-size configuration in SSP (#435)
    • support external ssv files (parameter sets) (PR#489)
    • support multiple ParameterSets in SSP (#483)
    • support multiple .ssd in an .ssp (#483)
    • support linear transformations (#451)
  • Support on/off toggling of file observer (#508)
  • Add functionality for offline model building (#114)
  • Support stateful and/or time-dependent manipulators (#203)
  • Persistent FMU cache (PR#388)
  • Update fmu-proxy client to match upstream v0.6.1 (#434)
  • Scenarios can be written in YAML (#271)
  • Allow CSV files produced by file_observer to be generated without a timestamp (PR#555)
Fixed
  • First line in output files is just zeroes (#486)
  • ssp_parser does not handle connections correctly (#479)
  • Typo causes SSP parser to ignore "Connector" elements (#274)

v0.5.1 – 2019-11-01

Changed
  • Move visitor to utility header (PR#425)
Fixed
  • Warning about string truncation in newer GCCs (#418)
  • Simulation errors are not propagated when using cse_execution_start() (#415)
  • Sum connections not parsed properly from OspSystemStructure.xml (#429)
  • True/false boolean initial values not supported in OspSystemStructure.xml (#420)
  • Fails to load FMU with empty folders in the resources directory (#440)
  • Conflicting Conan dependencies (#450)
  • Scenario does not support string values (#354)

v0.5.0 – 2019-10-03

Added
  • Multi-variable connections (PR#295)
  • Support for MSMI extension to FMUs <FMU-name>_OspModelDescription.xml, that enables mapping of FMU variables into plugs, sockets and bonds (PR#333)
  • New CSE configuration format OspSystemStructure.xml (PR#333), that enables configuration of:
    • Individual model step size
    • Plug/socket and bond connections
    • Multi-variable connections. Only sum connection included.
  • Can advance an execution to a specific point in time with cse_execution_simulate_until in C-API (PR#325)
  • Can override configured step size and start time for fixed-step algorithm in cse_ssp_fixed_step_execution_create and cse_ssp_execution_create in C-API (PR#373)
Changed
  • Must provide instance name when creating local slaves with cse_local_slave_create. (Fixing #381, PR#387)
  • cse_variable_index renamed to cse_value_reference PR#339
Fixed
  • cse_local_slave_create is broken when adding more than one instance of the same FMU (#381)
  • Memory error when moving a cosim::uri (#361)
  • Cryptic error message with ill-defined or missing osp:FixedStepMaster in SSP (#338)
  • Invalid connections in SSP are not properly handled (#336)
  • Cannot use "." as file_observer output directory (#310)

v0.4.0 – 2019-08-19

Added
  • Initial variable values configurable from SSP (PR#291)
  • Allow boolean to be set from scenario (PR#292)
  • Providing overview of modified variables (PR#296)
  • Give client code more control over logging (PR#314)
Fixed
  • Cannot run JavaFMI generated FMUs (PR#268)
  • Prevent crash when a variable is reconnected (PR#285)

v0.3.0 – 2019-06-26

Added
  • fmu-proxy integration (PR#162, PR#239)
  • introducingorchestration interface for classes that resolve model URIs of one or more specific URI schemes (PR#233)
  • logging configuration (PR#247)
  • observers can observe string and boolean variables (PR#257)
  • can set arbitrary real time factor (PR#261)
  • improved error reporting
Fixed
  • Prevent crash when FMU GUIDs include curly brackets (#244)
  • Prevent crash when FMU includes enumerated variables (#246)

v0.2.0 – 2019-03-21

Added
  • Scenario: Automatically modify any variables (except with causality local) on specified simulation time using scenario files
  • Multi threaded co-simulation
  • Introducing manipulator interface for manipulating variables
  • fixed_step_algorithm supports executing FMUs with different time steps
Fixed
  • Preventing observers from consuming increasing amount of memory

v0.1.0 – 2019-01-04

First OSP JIP partner release