Releases: dnv-opensource/component-model
v0.3.1
v0.3.0: ECCO Support
Added
- Added the documentation file
component-development-process.rst, outlining the recommended FMU development workflow, best practices, and the role of virtual derivatives. - Added the example XML structures
BouncingBallStructure.xmlandForcedOscillator6D.xmlto showcase richer algorithm and ECCO configuration sections together with clarified causality definitions.
Changed
- Refined the existing FMU XML examples with explicit algorithm sections, ECCO configuration, and clearer variable linkage descriptions.
- Updated
driving_force_fmu.pyto support vectorized amplitudes, frequencies, and frequency sweeps, while improving type annotations and initialization semantics. - Changed the upper bound for the
heightvariable inbouncing_ball_3d.pyto inches to align with the rest of the example unit system.
GitHub workflows
- Added Python 3.13 to the main CI matrix to ensure compatibility with the current stable release.
- Updated the future/experimental workflow to track Python 3.14 instead of 3.13 for forward-looking coverage.
v0.2.0
What's New: Structured Variables
Introducing structured variables to component-model according to FMI standard v.2 and 3.
Key Benefits:
- Hierarchical Variable Organization: Variables can now be organized in a tree structure using dot notation (e.g., vehicle.engine.speed)
- Automatic Derivative Handling: Define interface variables that represent derivatives (like speeds) of base variables without explicitly defining them in the underlying model
- Simplified Complex System Modeling: Models can expose a more intuitive interface while abstracting internal complexity
Technical Improvements:
- New variable naming conventions: flat and structured
- Support for derivative notation: der(variable) and der(variable,n)
- Enhanced parent-child relationship handling for nested components
- Improved array indexing with structured notation
v0.1.0
Changed
- Changed from
pip/toxtouvas package manager - README.rst : Completely rewrote section "Development Setup", introducing
uvas package manager. - Changed publishing workflow to use OpenID Connect (Trusted Publisher Management) when publishing to PyPI
GitHub workflows
- (all workflows): Adapted to use
uvas package manager - _test_future.yml : updated Python version to 3.13.0-alpha - 3.13.0
- _test_future.yml : updated name of test job to 'test313'
v0.0.2b3
GitHub workflow publish_release.yml Test no. 3
v0.0.2b2
GitHub workflow _publish_package.yml Test no. 2
v0.0.2b1
GitHub workflow _publish_package.yml Test no. 1
First release
This is the first release of the Component Model package, designed to extend the capabilities of the PythonFMU framework. The package allows for the seamless creation and simulation of component models adhering to the FMI, OSP, and DNV-RP-0513 standards. It focuses on efficient model-to-FMU translation and supports vector-based variable manipulation, unit definitions, and range checking. The package also enhances the Assurance of Simulation Models, with a particular focus on DNV-RP-0513 compliance.
Key Features:
Model-to-FMU Conversion:
Efficiently convert Python-based models to FMU (Functional Mock-up Units) with minimal code overhead.
-
Vector Variable Support: Seamless handling of vector variables using numpy, enabling 3D model simulations and unit-based calculations.
-
Unit and Display Unit Management: Full support for defining units and display units of variables, ensuring consistency in model representation.
-
Range Checking for Variables: Built-in support for validating variables against specified ranges, enhancing model integrity and reducing runtime errors.