FMI.jl Documentation
What is FMI.jl?
FMI.jl is a free-to-use software library for the Julia programming language, which integrates FMI (fmi-standard.org): load, instantiate, parameterize and simulate FMUs seamlessly inside the Julia programming language!
How can I install FMI.jl?
- open a Julia-Command-Window, activate your preferred environment
- go to package manager using
]
and typeadd FMI
julia> ]
(@v1.6) pkg> add FMI
If you want to check that everything works correctly, you can run the tests bundled with FMI.jl:
julia> using Pkg
julia> Pkg.test("FMI")
Additionally, you can check the version of FMI.jl that you have installed with the status
command.
julia> ]
(@v1.6) pkg> status FMI
Throughout the rest of the tutorial we assume that you have installed the FMI.jl package and have typed using FMI
which loads the package:
julia> using FMI
How the documentation is structured?
Having a high-level overview of how this documentation is structured will help you know where to look for certain things. The xxx main parts of the documentation are :
- The Examples section gives insight in what is possible with this Library while using short and easily understandable code snippets
- The Library Functions sections contains all the documentation to the functions provided by this library
What is currently supported in FMI.jl?
- simulation / plotting of CS- and ME-FMUs
- event-handling for discontinuous ME-FMUs
- the full FMI command set
What is under development in FMI.jl?
- FMI 3.0 and SSP 1.0 support
- FMI Cross Checks
- more examples
- ...
What Platforms are supported?
FMI.jl is tested (and testing) under Julia Version 1.6 and latest on Windows (latest) and Ubuntu (latest). Mac should work, but untested.
How to cite? Related publications?
Tobias Thummerer, Josef Kircher, Lars Mikelsons 2021 NeuralFMU: Towards Structural Integration of FMUs into Neural Networks (14th Modelica Conference, Preprint, Accepted) arXiv:2109.04351
Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs (10th International Conference on Mathematical Modeling in Physical Sciences, Preprint, Accepted) arXiv:2109.04880
Interested in Hybrid Modeling in Julia using FMUs?
See FMIFlux.jl.
FMI.jl Library Index
FMI.fmiCanGetSetState
FMI.fmiCanSerializeFMUstate
FMI.fmiCompletedIntegratorStep
FMI.fmiDeSerializeFMUstate
FMI.fmiDoStep
FMI.fmiEnterContinuousTimeMode
FMI.fmiEnterInitializationMode
FMI.fmiExitInitializationMode
FMI.fmiFreeFMUstate!
FMI.fmiFreeInstance!
FMI.fmiGetBoolean
FMI.fmiGetBoolean!
FMI.fmiGetContinuousStates
FMI.fmiGetDerivatives
FMI.fmiGetDirectionalDerivative
FMI.fmiGetEventIndicators
FMI.fmiGetFMUstate
FMI.fmiGetGUID
FMI.fmiGetGenerationDateAndTime
FMI.fmiGetGenerationTool
FMI.fmiGetInteger
FMI.fmiGetInteger!
FMI.fmiGetModelName
FMI.fmiGetNominalsOfContinuousStates
FMI.fmiGetNumberOfEventIndicators
FMI.fmiGetReal
FMI.fmiGetReal!
FMI.fmiGetString
FMI.fmiGetString!
FMI.fmiGetTypesPlatform
FMI.fmiGetVariableNamingConvention
FMI.fmiGetVersion
FMI.fmiInfo
FMI.fmiInstantiate!
FMI.fmiIsCoSimulation
FMI.fmiIsModelExchange
FMI.fmiLoad
FMI.fmiNewDiscreteStates
FMI.fmiProvidesDirectionalDerivative
FMI.fmiReset
FMI.fmiSerializeFMUstate
FMI.fmiSerializedFMUstateSize
FMI.fmiSetBoolean
FMI.fmiSetContinuousStates
FMI.fmiSetDebugLogging
FMI.fmiSetFMUstate
FMI.fmiSetInteger
FMI.fmiSetReal
FMI.fmiSetString
FMI.fmiSetTime
FMI.fmiSetupExperiment
FMI.fmiSimulate
FMI.fmiSimulateCS
FMI.fmiSimulateME
FMI.fmiStringToValueReference
FMI.fmiTerminate
FMI.fmiUnload