{"id":13702718,"url":"https://github.com/modelon-community/pyfmi","last_synced_at":"2025-10-21T20:53:10.813Z","repository":{"id":6911482,"uuid":"8161941","full_name":"modelon-community/PyFMI","owner":"modelon-community","description":"PyFMI is a package for loading and interacting with Functional Mock-Up Units (FMUs) both for Model Exchange and Co-Simulation, which are compiled dynamic models compliant with the Functional Mock-Up Interface (FMI)","archived":false,"fork":false,"pushed_at":"2025-10-02T15:41:12.000Z","size":15537,"stargazers_count":196,"open_issues_count":14,"forks_count":42,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-10-02T16:25:09.854Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://jmodelica.org/pyfmi","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"alibaba/tengine","license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modelon-community.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-02-12T16:05:11.000Z","updated_at":"2025-10-02T03:47:59.000Z","dependencies_parsed_at":"2023-12-01T12:17:43.031Z","dependency_job_id":"e3270d9a-e9f0-4834-bc22-5493fcb246a0","html_url":"https://github.com/modelon-community/PyFMI","commit_stats":null,"previous_names":[],"tags_count":78,"template":false,"template_full_name":null,"purl":"pkg:github/modelon-community/PyFMI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelon-community%2FPyFMI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelon-community%2FPyFMI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelon-community%2FPyFMI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelon-community%2FPyFMI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modelon-community","download_url":"https://codeload.github.com/modelon-community/PyFMI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelon-community%2FPyFMI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280333492,"owners_count":26312845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T21:00:41.250Z","updated_at":"2025-10-21T20:53:10.796Z","avatar_url":"https://github.com/modelon-community.png","language":"Python","funding_links":[],"categories":["FMI 2"],"sub_categories":["Libraries"],"readme":"About\n-----------\n\nPyFMI is a package for loading and interacting with Functional Mock-Up Units\n(FMUs) both for Model Exchange and Co-Simulation, which are compiled dynamic\nmodels compliant with the Functional Mock-Up Interface ([FMI](https://fmi-standard.org/)).\n\nFor a more indebt technical description of the features / functionality see the following [link](https://portal.research.lu.se/portal/files/7201641/pyfmi_tech.pdf).\n\nFor citing PyFMI, please use:\n\n\u003cem\u003eAndersson, C, Åkesson, J \u0026 Führer, C 2016, PyFMI: A Python Package for Simulation of Coupled Dynamic Models with the Functional Mock-up Interface. Technical Report in Mathematical Sciences, nr. 2, vol. 2016, vol. LUTFNA-5008-2016, Centre for Mathematical Sciences, Lund University\u003c/em\u003e.\n\nContributing\n-----------\nFor information about contributing, see https://github.com/modelon-community/contributing.\n\nInstallation from source\n-----------\nPyFMI can be built and installed from source, note this requires [FMI library](https://github.com/modelon-community/fmi-library). Additional details are found in the file `setup.py`.\n\n`python setup.py install --fmil-home=/path/to/FMI_Library/`\n\nHere the flag \"--fmil-home\" points to where FMI Library is installed. The Python package [Assimulo](https://github.com/modelon-community/Assimulo) needs to be installed in order to build from source.\n\nInstallation using CONDA\n-----------\n\n`conda install -c conda-forge pyfmi`\n\nNote that some examples requires optional dependencies for plotting, they are:\n- wxPython\n- matplotlib\n\nFMU Import Compliance\n-----------\nPyFMI is tested daily in several different ways:\n* Extensive external testing within the `Optimica Compiler Toolkit` (OCT) provided by [Modelon](https://help.modelon.com/latest/reference/oct/) using all models in Modelon Modelica libraries (7000+ models), exported as FMUs.\n* Unit tests from the `tests` directory. These use FMUs generated by\n  * OCT\n  * JModelica.org\n  * FMUs in the example directory are generated via \u003cem\u003eFMU SDK by Qtronic\u003c/em\u003e, more information is available in related `README.txt` for these FMUs with proper license text.\n* PyFMI is the default execution engine for [Modelon Impact](https://modelon.com/modelon-impact/).\n* Testing with FMUs from [FMI Cross Check](https://github.com/modelica/fmi-cross-check) and commit [55c6704](https://github.com/modelica/fmi-cross-check/commit/55c6704bbcaed3e0f4f788a02af0aba08b7faa4a):\n  * All the `win64` Dymola FMUs have been tested with PyFMI `2.11.0` and pass with default options.\n  * On `Ubuntu 20.04` using `Python 3.9`, `PyFMI 2.11.0`, the following FMUs pass (95 out of 116):\n     * fmus/2.0/me/linux64/MapleSim/2015.1/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2015.1/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2015.1/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/2015.2/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2015.2/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2015.2/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/2016.1/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2016.1/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2016.1/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/2016.2/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2016.2/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2016.2/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/2018/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2018/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2018/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/2019/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2019/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2019/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/2021.1/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2021.1/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2021.1/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/2021.2/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/MapleSim/2021.2/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/MapleSim/2021.2/Rectifier/Rectifier.fmu\n     * fmus/2.0/me/linux64/MapleSim/7.01/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/solidThinking_Activate/2020/ActivateRC/ActivateRC.fmu\n     * fmus/2.0/me/linux64/solidThinking_Activate/2020/Arenstorf/Arenstorf.fmu\n     * fmus/2.0/me/linux64/solidThinking_Activate/2020/Boocwen/Boocwen.fmu\n     * fmus/2.0/me/linux64/solidThinking_Activate/2020/CVloop/CVloop.fmu (simulated with `Radau5ODE` instead of `CVode`)\n     * fmus/2.0/me/linux64/solidThinking_Activate/2020/Pendulum/Pendulum.fmu\n     * fmus/2.0/me/linux64/SystemModeler/5.0/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/me/linux64/SystemModeler/5.0/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.1/BouncingBall/BouncingBall.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.1/Dahlquist/Dahlquist.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.1/Feedthrough/Feedthrough.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.1/Resource/Resource.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.1/Stair/Stair.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.1/VanDerPol/VanDerPol.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.2/BouncingBall/BouncingBall.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.2/Dahlquist/Dahlquist.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.2/Feedthrough/Feedthrough.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.2/Resource/Resource.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.2/Stair/Stair.fmu\n     * fmus/2.0/me/linux64/Test-FMUs/0.0.2/VanDerPol/VanDerPol.fmu\n     * fmus/2.0/cs/linux64/20sim/4.6.4.8004/TorsionBar/TorsionBar.fmu\n     * fmus/2.0/cs/linux64/EDALab_HIFSuite/2017.05_antlia/b01/b01.fmu\n     * fmus/2.0/cs/linux64/EDALab_HIFSuite/2017.05_antlia/des56_original/des56_original.fmu\n     * fmus/2.0/cs/linux64/EDALab_HIFSuite/2017.05_antlia/m6502/m6502.fmu\n     * fmus/2.0/cs/linux64/EDALab_HIFSuite/2017.05_antlia/uart/uart.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2015.1/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2015.1/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2015.1/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2015.2/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2015.2/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2015.2/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2016.1/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2016.1/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2016.1/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2016.2/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2016.2/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2016.2/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2018/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2018/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2018/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2019/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2019/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2019/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2021.1/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2021.1/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2021.1/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2021.2/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2021.2/CoupledClutches/CoupledClutches.fmu\n     * fmus/2.0/cs/linux64/MapleSim/2021.2/Rectifier/Rectifier.fmu\n     * fmus/2.0/cs/linux64/MapleSim/7.01/ControlledTemperature/ControlledTemperature.fmu\n     * fmus/2.0/cs/linux64/solidThinking_Activate/2020/ActivateRC/ActivateRC.fmu\n     * fmus/2.0/cs/linux64/solidThinking_Activate/2020/Arenstorf/Arenstorf.fmu\n     * fmus/2.0/cs/linux64/solidThinking_Activate/2020/Boocwen/Boocwen.fmu\n     * fmus/2.0/cs/linux64/solidThinking_Activate/2020/CVloop/CVloop.fmu\n     * fmus/2.0/cs/linux64/solidThinking_Activate/2020/DiscreteController/DiscreteController.fmu\n     * fmus/2.0/cs/linux64/solidThinking_Activate/2020/Pendulum/Pendulum.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.1/BouncingBall/BouncingBall.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.1/Dahlquist/Dahlquist.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.1/Feedthrough/Feedthrough.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.1/Resource/Resource.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.1/Stair/Stair.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.1/VanDerPol/VanDerPol.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.2/BouncingBall/BouncingBall.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.2/Dahlquist/Dahlquist.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.2/Feedthrough/Feedthrough.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.2/Resource/Resource.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.2/Stair/Stair.fmu\n     * fmus/2.0/cs/linux64/Test-FMUs/0.0.2/VanDerPol/VanDerPol.fmu\n     * fmus/2.0/cs/linux64/YAKINDU_Statechart_Tools/4.0.4/BouncingBall/BouncingBall.fmu\n     * fmus/2.0/cs/linux64/YAKINDU_Statechart_Tools/4.0.4/Feedthrough/Feedthrough.fmu\n     * fmus/2.0/cs/linux64/YAKINDU_Statechart_Tools/4.0.4/Stairs/Stairs.fmu\n  * Those that does not pass are believed to fail due to:\n    * Linux compliance issues.\n    * AMESim FMUs fail since FMUs that need an execution tool are not supported.\n* [Reference FMUs](https://github.com/modelica/Reference-FMUs/releases/tag/v0.0.27)\n  * All FMUs pass on both `win64` and `linux64` (tested on `Ubuntu 20.04`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodelon-community%2Fpyfmi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodelon-community%2Fpyfmi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodelon-community%2Fpyfmi/lists"}