Releases: modelon-community/PyFMI
PyFMI-2.14.0
Changelog
--- PyFMI-2.14.0 ---
* Updated the error message displayed when loading FMUs with needsExecutionTool set to True.
* Loading unzipped FMUs now also works with relative paths.
* Enabled setting logging categories in FMI2 via "set_debug_logging".
* XML Logs exceeding maximal size will now be truncated to start/end of the last CAPI call which did not exceed the maximal log size.
Related pull requests
- Fix string escape by @jschueller in #246
- Fix string escape by @jschueller in #248
- Updated error message with respect to needsExecutionTool by @modelonrobinandersson in #249
- Fixing issue with relative paths when loading unzipped FMUs by @PeterMeisrimelModelon in #254
- Enable setting of log categories by @PeterMeisrimelModelon in #255
- Adding log truncation&checkpoints to ensure log truncation aligns with complete CAPI calls by @PeterMeisrimelModelon in #252
Full Changelog: PyFMI-2.13.1...PyFMI-2.14.0
Attached wheels are compiled on Ubuntu 20.04 (the linux wheel) and Windows 10 (the windows wheel).
PyFMI-2.13.1
What's Changed
- Properly setting required python version by @PeterMeisrimelModelon in #239
- Updating GitHub action to latest assimulo by @PeterMeisrimelModelon in #235
- CI: Try scipy 1.13.x by @jschueller in #243
- Numpy 2.x support by @jschueller in #245
- Allow to build without distutils by @jschueller in #236
- Prepared for release of 2.13.1 by @modelonrobinandersson in #247
Full Changelog: PyFMI-2.13.0...PyFMI-2.13.1
PyFMI-2.13.0
What's Changed
- Upgrade to Cython 3 by @PeterMeisrimelModelon in #229
Full Changelog: PyFMI-2.12.0...PyFMI-2.13.0
PyFMI-2.12.0
What's Changed
- Remove FMUX and JMU related code by @filip-stenstrom in #196
- np.product is deprecated by @jschueller in #198
- Removing no longer required dependency on lxml by @PeterMeisrimelModelon in #200
- Update README.md by @modelonrobinandersson in #204
- Update setup.py package_data by @modelonrobinandersson in #206
- Fixed spelling error in README by @modelonrobinandersson in #207
- Improved FMU Compliance info by @modelonrobinandersson in #209
- Unified result handling - enabled all result handlers for the master alg by @chria in #223
- [FEAT] PyFMI logging frequency by @modelonrobinandersson in #227
Full Changelog: PyFMI-2.11.0...PyFMI-2.12.0
PyFMI-2.11.0
- Refactored result handling for dynamic_diagnostics. It is now possible use dynamic_diagnostics with a custom result handler.
- Migrated some diagnostics functionality into a new file: src/common/diagnostics.py. This should be seamless.
- pyfmi.common.diagnostics_prefix has been moved to pyfmi.common.diagnostics as DIAGNOSTICS_PREFIX.
Attached wheel for Python 3.8 is compiled on Ubuntu 20.04.
Attached wheel for Python 3.10 is compiled on Ubuntu 22.04, using
Package Version
--------------- -------
Assimulo 3.4.3
contourpy 1.2.0
cycler 0.12.1
Cython 0.29.37
fonttools 4.48.1
kiwisolver 1.4.5
matplotlib 3.8.3
numpy 1.26.4
packaging 23.2
pillow 10.2.0
pip 22.0.2
pyparsing 3.1.1
python-dateutil 2.8.2
scipy 1.12.0
setuptools 59.6.0
six 1.16.0
wheel 0.37.1
PyFMI-2.10.4
- Added 'result_handling' = None as option, deprecated 'none'.
- Fixed so that 'hasattr' works on log nodes.
- Calls to get continuous states derivatives when there are no such states will no longer result in FMU calls.
PyFMI-2.10.3
- Added method to retrieve the unbounded attribute for real variables in FMI2: get_variable_unbounded.
- Note: With Assimulo >= 3.4.1 CVode adds supports relative tolerance vectors, see Assimulo README for details.
- Added partial support for rtol vectors in simulate(): Values need to be equal except for zeros & requires support from used solver.
- For unbounded states, the simulate method attempts to create a vector of relative tolerances and entries that correspond to unbounded states are set to zero. (FMI2 ME only)
Among the assets below you find two wheels. In order to use them you need to have a gcc environment similar to the one that was used for the build, otherwise there will be issues with GLIBC if you have a GCC much newer than the one used during the build.
PyFMI-2.10.3-cp39-cp39-linux_x86_64.whl
- Compiled on CentOS 7.4.1708
- Python 3.9
- GCC 4.8.5
PyFMI-2.10.3-cp37-cp37m-win_amd64.whl
- Compiled on Windows 10
- Python 3.7
- GCC 5.1
PyFMI-2.10.2
* Corrected version number.
PyFMI-2.10.1
* Changed such that absolute tolerances calculated with state nominals retrieved before initialization will be recalculated with state nominals from after initialization when possible.
* Added auto correction of retrieved state nominals with illegal values.
PyFMI-2.10
* Added shortcut such that get_(real|integer|boolean|string)([]) calls no longer trigger a call to the FMU.
* Removed the following deprecated functions:
* pyfmi.fmi.FMUModelCS1, FMUModelME1, FMUModelCS2, FMUModelME2, pyfmi.fmi.FMUModelME1Extended: get_log_file_name: use get_log_filename
* pyfmi.fmi.FMUModelCS1, FMUModelME1, FMUModelCS2, FMUModelME2, pyfmi.fmi.FMUModelME1Extended: set_fmil_log_level: use set_log_level
* Removed the following deprecated arguments:
* pyfmi.fmi.FMUModelCS1, FMUModelME1, FMUModelCS2, FMUModelME2, load_fmu, pyfmi.fmi.FMUModelME1Extended: 'path': use 'fmu' instead
* pyfmi.fmi.FMUModelCS1, FMUModelME1, FMUModelCS2, FMUModelME2, load_fmu, pyfmi.fmi.FMUModelME1Extended: 'enable_logging': use 'log_level' instead
* pyfmi.fmi.FMUModelCS1, FMUModelME1Extended.initialize: 'tStart': use 'start_time' instead
* pyfmi.fmi.FMUModelCS1, FMUModelME1Extended.initialize: 'tStop': use 'stop_time' instead
* pyfmi.fmi.FMUModelCS1, FMUModelME1Extended.initialize: 'StopTimeDefined': use 'stop_time_defined' instead
* pyfmi.fmi.FMUModelCS1, FMUModelME1.initialize: 'tolControlled': use 'tolerance_defined' instead
* pyfmi.fmi.FMUModelCS1, FMUModelME1.initialize: 'relativeTolerance': use 'tolerance' instead
* Removed the following deprecated attribute:
* pyfmi.fmi.FMUModelCS1, FMUModelME1, FMUModelCS2, FMUModelME2, load_fmu, pyfmi.fmi.FMUModelME1Extended: 'version': use 'get_version' function instead
* Note that pyfmi.load_fmu creates instances of pyfmi.fmi.FMUModelCS1, FMUModelME1, FMUModelCS2, FMUModelME2
* Fixed a crash when using ExplicitEuler with dynamic_diagnostics on models with events.
* Changed Jacobian to use nominals retrieved via fmu.nominals_continuous_states instead of fmu.get_variable_nominal(<valueref>).
* Fixed so that malformed log messages do not trigger exceptions and instead the troublesome characters are replaced with a standard replacement character.