ThummeTo / FMIFlux.jl

FMIFlux.jl is a free-to-use software library for the Julia programming language, which offers the ability to place FMUs (fmi-standard.org) everywhere inside of your ML topologies and still keep the resulting model trainable with a standard (or custom) FluxML training process.
MIT License
57 stars 15 forks source link

Error when calling a ME_NeuralFMU without having defined a solver #124

Closed juguma closed 8 months ago

juguma commented 9 months ago

When you call an ME_NeuralFMU https://github.com/ThummeTo/FMIFlux.jl/blob/177045b408fdeac2769778cc02c3fc3df21f364d/src/neural.jl#L1043, for which you haven't defined a solver, you get an error MethodError: no method matching isimplicit(::Nothing)

This is since in neural.jl, line 1290 the definition of the sensealg is based on the definition of the solver. MWE is the script of https://github.com/ThummeTo/FMIFlux.jl/issues/120 up to batchDataSolution (which fails).

If you simply leave the sensealg in such cases as nothing (e.g. modify line 1290 to if !isnothing(solver) && isimplicit(solver)), batchDataSolution runs through smoothly. However, I am not sure this is a globally valid solution (which would mean that both the solver and the sensealg are determined by heuristics of other packages!?).

juguma commented 8 months ago

Fixed by #126