Skip to content

About

FMIBuild.jl holds dependencies that are required to compile and zip a Functional Mock-Up Unit (FMU) compliant to the FMI-standard (fmi-standard.org). Because this dependencies should not be part of the compiled FMU, they are out-sourced into this package. FMIBuild.jl provides the build-commands for the Julia package FMIExport.jl.

Topics

Resources

Stars

10 stars

Watchers

3 watching

Forks

Latest commit

 

History

96 Commits

Folders and files

Repository files navigation

FMI.jl Logo

FMIBuild.jl

What is FMIBuild.jl?

FMIBuild.jl holds dependencies that are required to compile and zip a Functional Mock-Up Unit (FMU) compliant to the FMI-standard (fmi-standard.org). Because these dependencies should not be part of the compiled FMU, they are out-sourced into this package. FMIBuild.jl provides the build-commands for the Julia package FMIExport.jl.

Documentation Dev Docs
Tests Test (latest) Test (LTS)
Package evaluation Run PkgEval
Code coverage Coverage
Collaboration ColPrac: Contributor's Guide on Collaborative Practices for Community Packages
Formatting Code Style: JuliaFormatter

How can I use FMIBuild.jl?

Please note: FMIBuild.jl is not meant to be used as it is, but as part of FMI.jl and FMIExport.jl. However, you can install FMIBuild.jl by following these steps.

1. Open a Julia-REPL, switch to package mode using ], activate your preferred environment.

2. Install FMIBuild.jl:

(@v1.x) pkg> add FMIBuild

(3). If you want to check that everything works correctly, you can run the tests bundled with FMIBuild.jl:

(@v1.x) pkg> test FMIBuild

What FMI.jl library should I use?

FMI.jl Family To keep dependencies nice and clean, the original package FMI.jl had been split into new packages:

  • FMI.jl: High level loading, manipulating, saving or building entire FMUs from scratch
  • FMIImport.jl: Importing FMUs into Julia
  • FMIExport.jl: Exporting stand-alone FMUs from Julia Code
  • FMIBase.jl: Common concepts for import and export of FMUs
  • FMICore.jl: C-code wrapper for the FMI standard
  • FMISensitivity.jl: Static and dynamic sensitivities over FMUs
  • FMIBuild.jl: Compiler/Compilation dependencies for FMIExport.jl
  • FMIFlux.jl: Machine Learning with FMUs
  • FMIZoo.jl: A collection of testing and example FMUs

What platforms are supported?

FMIBuild.jl is tested (and testing) under Julia LTS and latest on Windows latest and Ubuntu latest (x64). Other platforms (macOS, x86, aarch64) might work, but are not CI-tested.

How to cite?

Tobias Thummerer, Johannes Stoljar and Lars Mikelsons. 2022. NeuralFMU: presenting a workflow for integrating hybrid NeuralODEs into real-world applications. Electronics 11, 19, 3202. DOI: 10.3390/electronics11193202

Related publications?

Tobias Thummerer, Lars Mikelsons and Josef Kircher. 2021. NeuralFMU: towards structural integration of FMUs into neural networks. Martin Sjölund, Lena Buffoni, Adrian Pop and Lennart Ochel (Ed.). Proceedings of 14th Modelica Conference 2021, Linköping, Sweden, September 20-24, 2021. Linköping University Electronic Press, Linköping (Linköping Electronic Conference Proceedings ; 181), 297-306. DOI: 10.3384/ecp21181297

Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons. 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs Journal of Physics: Conference Series 2090, 1, 012155. DOI: 10.1088/1742-6596/2090/1/012155

Notes for contributors

Contributors are welcome. Before contributing, please read, understand and follow the Contributor's Guide on Collaborative Practices for Community Packages. During development of new implementations or optimizations on existing code, one will have to make design decisions that influence the library performance and usability. The following prioritization should be the basis for decision-making:

  • #1 Compliance with standard: It is the highest priority to be compliant with the FMI standard (fmi-standard.org). Identifiers described in the standard must be used. Structures and topologies should follow the specification as far as the possibilities of the Julia programming language allows.
  • #2 Performance: Because the FMI.jl family is used for simulation, performance is very important. This applies to the efficient use of CPU and GPU, but also the conscientious use of RAM and disc space.
  • #3 Usability: The library should be as usable as possible and feel "the Julia way" (e.g. by using multiple dispatch instead of the "C coding style"), as long as being fully compliant with the FMI standard.

About

FMIBuild.jl holds dependencies that are required to compile and zip a Functional Mock-Up Unit (FMU) compliant to the FMI-standard (fmi-standard.org). Because this dependencies should not be part of the compiled FMU, they are out-sourced into this package. FMIBuild.jl provides the build-commands for the Julia package FMIExport.jl.

Topics

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages