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
- 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.
- 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
- parseURI null check and error handling implemented.
- Upgraded Conan to v2
v0.10.2 - 2023-02-08
- Update to proxyfmu 0.3.1 due to a disconnection issue related to Thrift.
v0.10.1 - 2022-12-08
- Update to proxyfmu 0.3.0 due to downstream build issues related to Thrift.
v0.10.0 - 2022-12-02
- 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.
- An asynchronous version of
simulate_until
is now available through theexecution
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.
v0.9.0 – 2022-04-05
- 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)
- OspModelDescription.xml can be located in same folder as FMU when using proxyfmu (PR#688)
- Option to build with FMI logging removed (PR#679)
- Update to proxyfmu 0.2.7
v0.8.3 – 2021-11-26
- Update to proxyfmu 0.2.6 (PR#676)
- Adding builds for:
v0.8.2 – 2021-10-21
v0.8.1 – 2021-09-15
- 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
- Replacing JVM based fmu-proxy with proxy-fmu (PR#633)
- Replacing
boost::filesystem
withstd::filesystem
(PR#637)
- Memory leaks in observers (PR#647)
v0.7.1 – 2021-06-03
- improving documentation (PR#617)
- 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
- Renamed library from csecore to libcosim (PR#571)
- C API moved to separate repository libcosimc (PR#571)
- Split
model.hpp
intomodel_description.hpp
andtime.hpp
(PR#587)
- Provide library version in API (PR#586)
- 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
- MSMI configuration (OspSystemStructure.xml and OspModelDescription.xml) updated
- 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)
Functions
for calculations between time steps (PR#517)- Support setting initial values through C API (#328)
- Increased SSP support:
- 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)
- 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
- Move
visitor
to utility header (PR#425)
- 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
- 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
andcse_ssp_execution_create
in C-API (PR#373)
- Must provide instance name when creating local slaves with
cse_local_slave_create
. (Fixing #381, PR#387) cse_variable_index
renamed tocse_value_reference
PR#339
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
- 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)
v0.3.0 – 2019-06-26
- fmu-proxy integration (PR#162, PR#239)
- introducing
orchestration
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
- Prevent crash when FMU GUIDs include curly brackets (#244)
- Prevent crash when FMU includes enumerated variables (#246)
v0.2.0 – 2019-03-21
- 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
- Preventing observers from consuming increasing amount of memory
First OSP JIP partner release