Skip to content

Releases: modelon-community/PyFMI

PyFMI-2.14.0

26 Aug 14:34
Compare
Choose a tag to compare

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

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

25 Jun 18:57
Compare
Choose a tag to compare

What's Changed

Full Changelog: PyFMI-2.13.0...PyFMI-2.13.1

PyFMI-2.13.0

14 May 15:37
Compare
Choose a tag to compare

What's Changed

Full Changelog: PyFMI-2.12.0...PyFMI-2.13.0

PyFMI-2.12.0

25 Apr 17:02
Compare
Choose a tag to compare

What's Changed

Full Changelog: PyFMI-2.11.0...PyFMI-2.12.0

PyFMI-2.11.0

17 Jul 09:09
Compare
Choose a tag to compare
  • 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

19 Jun 13:35
Compare
Choose a tag to compare
  • 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

24 Apr 09:35
Compare
Choose a tag to compare
  • 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

05 Apr 15:49
Compare
Choose a tag to compare
* Corrected version number.

PyFMI-2.10.1

05 Apr 08:32
Compare
Choose a tag to compare
* 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

10 Mar 14:52
Compare
Choose a tag to compare
* 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.