Opened 11 years ago
Last modified 10 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?
