Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.12.2 #184

Merged
merged 2 commits into from
May 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/Example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest]
file-name: [manipulation, modelica_conference_2021, multiple_instances, multiprocessing, multithreading, parameterize, simulate]
file-name: [manipulation, modelica_conference_2021, multiple_instances, multiprocessing, multithreading, parameterize, simulate, parameter_optimization]
julia-version: ['1.8']
julia-arch: [x64]
experimental: [false]
Expand Down
8 changes: 3 additions & 5 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name = "FMI"
uuid = "14a09403-18e3-468f-ad8a-74f8dda2d9ac"
authors = ["TT <[email protected]>", "LM <[email protected]>", "JK <[email protected]>"]
version = "0.12.1"
version = "0.12.2"

[deps]
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa"
Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
Expand All @@ -15,11 +14,10 @@ Requires = "ae029012-a4dd-5104-9daa-d747884805df"
ThreadPools = "b189fb0b-2eb5-4ed4-bc0c-d34c51242431"

[compat]
ChainRulesCore = "1.15.0"
DiffEqCallbacks = "2.26.0"
DifferentialEquations = "7.7.0"
FMIExport = "0.1.0"
FMIImport = "0.15.3"
FMIExport = "0.2.0"
FMIImport = "0.15.5"
ProgressMeter = "1.7.0"
Requires = "1.3.0"
ThreadPools = "2.1.1"
Expand Down
53 changes: 22 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@

2\. Install [*FMI.jl*](https://github.com/ThummeTo/FMI.jl):
```julia-repl
(@v1.6) pkg> add FMI
(@v1.X) pkg> add FMI
```

3\. If you want to check that everything works correctly, you can run the tests bundled with [*FMI.jl*](https://github.com/ThummeTo/FMI.jl):
```julia-repl
(@v1.6) pkg> test FMI
(@v1.X) pkg> test FMI
```

4\. Have a look inside the [examples folder](https://github.com/ThummeTo/FMI.jl/tree/examples/examples) in the examples branch or the [examples section](https://thummeto.github.io/FMI.jl/dev/examples/overview/) of the documentation. All examples are available as Julia-Script (*.jl*), Jupyter-Notebook (*.ipynb*) and Markdown (*.md*).
Expand All @@ -52,31 +52,32 @@ fmiUnload(myFMU)
- parameterization, simulation & plotting of CS- and ME-FMUs
- event-handling for imported discontinuous ME-FMUs

| | **FMI2.0.3** | | **FMI3.0** | |
|-----------------------------------|--------------|--------|------------|--------|
| | Import | Export | Import | Export |
| CS | ✓✓ | ~~ | ✓ | ~ |
| ME (continuous) | ✓✓ | ✓✓ | ✓ | ~ |
| ME (discontinuous) | ✓✓ | ✓✓ | ✓ | ~ |
| SE | - | - | ✓ | ~ |
| Explicit solvers | ✓✓ | ✓✓ | ✓ | ~ |
| Implicit solvers (autodiff=false) | ✓✓ | ~~ | ✓ | ~ |
| Implicit solvers (autodiff=true) | ✓ | ~~ | ~~ | ~ |
| get/setState | ✓✓ | ~ | ✓ | ~ |
| getDirectionalDerivatives | ✓✓ | ~ | ✓ | ~ |
| getAdjointDerivatives | - | - | ✓ | ~ |
| | **FMI2.0.3** | | **FMI3.0** | | **SSP1.0** | |
|-----------------------------------|--------------|--------|------------|--------|------------|--------|
| | Import | Export | Import | Export | Import | Export |
| CS | ✔️✔️ | 🚧 | ✔️ | 📅 | 📅 | 📅 |
| ME (continuous) | ✔️✔️ | ✔️✔️ | 🚧 | 📅 | 📅 | 📅 |
| ME (discontinuous) | ✔️✔️ | ✔️✔️ | 🚧 | 📅 | 📅 | 📅 |
| SE | 🚫 | 🚫 | 🚧 | 📅 | 🚫 | 🚫 |
| Explicit solvers | ✔️✔️ | ✔️✔️ | ✔️ | 📅 | 📅 | 📅 |
| Implicit solvers (autodiff=false) | ✔️✔️ | 🚧 | ✔️ | 📅 | 📅 | 📅 |
| Implicit solvers (autodiff=true) | ✔️✔️ | 🚧 | 🚧 | 📅 | 📅 | 📅 |
| get/setState | ✔️✔️ | 📅 | ✔️ | 📅 | 🚫 | 🚫 |
| getDirectionalDerivatives | ✔️✔️ | 📅 | ✔️ | 📅 | 🚫 | 🚫 |
| getAdjointDerivatives | 🚫 | 🚫 | ✔️ | 📅 | 🚫 | 🚫 |
| FMI Cross Checks | ✔️✔️ | 📅 | 📅 | 📅 | 🚫 | 🚫 |

✓✓ supported & tested
✔️✔️ supported & tested

beta supported, untested
✔️ beta supported (implemented), but untested

~~ work in progress
🚧 work in progress

~ planned
📅 planned

\- not supported by the corresponding FMI standard
🚫 not supported by the corresponding FMI standard (not applicable)

x not planned
not planned

## What FMI.jl-Library to use?
![FMI.jl Logo](https://github.com/ThummeTo/FMI.jl/blob/main/docs/src/assets/FMI_JL_family.png?raw=true "FMI.jl Family")
Expand All @@ -89,16 +90,6 @@ To keep dependencies nice and clean, the original package [*FMI.jl*](https://git
- [*FMIFlux.jl*](https://github.com/ThummeTo/FMIFlux.jl): Machine Learning with FMUs (differentiation over FMUs)
- [*FMIZoo.jl*](https://github.com/ThummeTo/FMIZoo.jl): A collection of testing and example FMUs

## What is further under development in FMI.jl?
- FMI3 Cross Checks (as soon as the successor is available)
- nice documentation & doc-strings
- more examples/tutorials
- ...

## What is planned for FMI.jl?
- SSP 1.0 support
- ...

## What Platforms are supported?
[*FMI.jl*](https://github.com/ThummeTo/FMI.jl) is tested (and testing) under Julia Versions *1.6 LTS* (64-bit) and *latest* (64-bit) on Windows *latest* (64-bit) and Ubuntu *latest* (64-bit). Mac and Julia (32-bit) should work, but untested. For the best performance, we recommend using Julia >= 1.7.

Expand Down
22 changes: 17 additions & 5 deletions docs/src/examples/overview.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
# Overview

This section discusses the included examples of the FMI.jl library. So you can execute them on your machine and get detailed information about all the steps. If you require further information about the function calls, see the function sections of the [library](https://thummeto.github.io/FMI.jl/dev/library/).
This section discusses the included examples of the FMI.jl library.
If you require further information about the function calls, see the function sections of the [library](https://thummeto.github.io/FMI.jl/dev/library/).
Examples are subdevided into *Basics*, *Advanced* and *Publication appendices*

The examples are:

**Basic examples:**

- [__Simulate__](https://thummeto.github.io/FMI.jl/dev/examples/simulate/): Showing how you can simulate a CS-FMU and a ME-FMU.
- [__Parameterize__](https://thummeto.github.io/FMI.jl/dev/examples/parameterize/): A short example explaining how to parameterize a FMU before simulation.
- [__Inputs__](https://thummeto.github.io/FMI.jl/dev/examples/inputs/): A short example explaining how to simulate a FMU with inputs.
- [__Multiple instances__](https://thummeto.github.io/FMI.jl/dev/examples/multiple_instances/): Showing the use of multiple instances.
- [__Modelica conference 2021__](https://thummeto.github.io/FMI.jl/dev/examples/modelica_conference_2021/): Showing the different variants of simulating an FMU.
- [__Manipulation__](https://thummeto.github.io/FMI.jl/dev/examples/manipulation/): Showing how to redefine a library function.


**Advanced examples:**

- [__Parameter Optimization__](https://thummeto.github.io/FMI.jl/dev/examples/parameter_optimization/): An introduction on how FMU parameters can be optimized to fit a specific behaviour.
- [__Multiple instances__](https://thummeto.github.io/FMI.jl/dev/examples/multiple_instances/): Showing the use of multiple FMU instances.
- [__Manipulation__](https://thummeto.github.io/FMI.jl/dev/examples/manipulation/): Showing how to redefine a linked C-library function of FMU.
- [__Multithreading__](https://thummeto.github.io/FMI.jl/dev/examples/multithreading/): Shows how to use multithreading to simulate multiple FMUs.
- [__Multiprocessing__](https://thummeto.github.io/FMI.jl/dev/examples/multiprocessing/): Shows how to use multiprocessing to simulate multiple FMUs.


**Publication appendices:**

- [__Modelica conference 2021__](https://thummeto.github.io/FMI.jl/dev/examples/modelica_conference_2021/): Showing the different variants of simulating an FMU.
1 change: 1 addition & 0 deletions examples/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ FMICore = "8af89139-c281-408e-bce2-3005eb87462f"
FMIZoo = "724179cf-c260-40a9-bd27-cccc6fe2f195"
Folds = "41a02a25-b8f0-4f67-bc48-60067656b558"
IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

Expand Down
Loading