You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+20-1Lines changed: 20 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -42,8 +42,28 @@ You can evaluate FMUs inside of your loss function.
42
42
- building and training FMUINNs (PINNs)
43
43
- different AD-frameworks: ForwardDiff.jl (CI-tested), ReverseDiff.jl (CI-tested, default setting), FiniteDiff.jl (not CI-tested) and Zygote.jl (not CI-tested)
44
44
- use `Flux.jl` optimisers as well as the ones from `Optim.jl`
45
+
- using the entire *DifferentialEquations.jl* solver suite (`autodiff=false` for implicit solvers)
45
46
- ...
46
47
48
+
## (Current) Limitations
49
+
50
+
- Sensitivity information over state change by event $\partial x^{+} / \partial x^{-}$ can't be accessed in FMI.
51
+
These sensitivities are simplified on basis of one of the following assumptions (defined by user):
52
+
(1) the state after event depends on nothing, so sensitivities are zero or
53
+
(2) the state after event instance only depends on the same state before the event instance
54
+
The second is often correct for e.g. mechanical contacts, but may lead to wrong gradients for arbitrary discontinuous systems.
55
+
However even if the gradient might not be 100% correct in any case, gradients are often usable for optimization tasks.
56
+
This issue is also part of the [*OpenScaling*](https://itea4.org/project/openscaling.html) research project.
57
+
58
+
- Discontinuous systems with implicite solvers use continuous adjoints instead of automatic differentiation through the ODE solver.
59
+
This might lead to issues, because FMUs are by design not simulatable backward in time.
60
+
On the other hand, many FMUs are capabale of doing so.
61
+
This issue is also part of the [*OpenScaling*](https://itea4.org/project/openscaling.html) research project.
62
+
63
+
- Implicit solvers using `autodiff=true` is not supported (now), but you can use implicit solvers with `autodiff=false`.
64
+
65
+
- For now, only FMI version 2.0 is supported, but FMI 3.0 support is coming with the [*OpenScaling*](https://itea4.org/project/openscaling.html) research project.
66
+
47
67
## What is under development in FMIFlux.jl?
48
68
- performance optimizations
49
69
- multi threaded CPU training
@@ -54,7 +74,6 @@ You can evaluate FMUs inside of your loss function.
54
74
55
75
## What Platforms are supported?
56
76
[*FMIFlux.jl*](https://github.com/ThummeTo/FMIFlux.jl) is tested (and testing) under Julia versions *v1.6* (LTS) and *v1* (latest) on Windows (latest) and Ubuntu (latest). MacOS should work, but untested.
57
-
[*FMIFlux.jl*](https://github.com/ThummeTo/FMIFlux.jl) currently only works with FMI2-FMUs.
58
77
All shipped examples are automatically tested under Julia version *v1* (latest) on Windows (latest).
0 commit comments