Opened 10 years ago
Last modified 9 years ago
#3264 closed defect
Solver for algebraic loops — at Version 1
Reported by: | Rüdiger Franke | Owned by: | Marcus Walther |
---|---|---|---|
Priority: | high | Milestone: | 1.9.4 |
Component: | Cpp Run-time | Version: | trunk |
Keywords: | Cc: |
Description (last modified by )
Currently an FMU with algebraic loop fails because the solver "Newton" is not known. The first hurdle can be taken by fixing the capatalization in FMU(2)GlobalSettings.h
from "Newton" to "newton" -- or better configure "kinsol" as in OMCFactory::ReadSimulationParameter (r25379, r25381)?
Btw. LinSolverOMCFactory only knows "umfpack" -- is the default "kinsol" in OMCFactory::ReadSimulationParameter correct?
Anyway, the FMU now wants to load libOMCppKinsol.so
dynamically at runtime. It appears that the setting in SimulationRuntime/Core/System/CMakeLists.txt
, Line 16 is wrong:
set_target_properties(${SystemName}_FMU PROPERTIES COMPILE_DEFINITIONS "DRUNTIME_STATIC_LINKING")
Changing to COMPILE_DEFINITIONS "RUNTIME_STATIC_LINKING"
, without D
, the resulting libOMCppSystem_FMU contains an AlgLoopSolverFactory with the intended constructer. But that one crashes.
r25380 adds the rpath for now, so that FMUs with algebraic loops work. This is considered a temporary fix though.
How can one link a reasonable solver for algebraic loops into the FMU?