diff --git a/SimulationRuntime/c/simulation/simulation_runtime.cpp b/SimulationRuntime/c/simulation/simulation_runtime.cpp index 913f67bf1e..5423aba71b 100644 --- a/SimulationRuntime/c/simulation/simulation_runtime.cpp +++ b/SimulationRuntime/c/simulation/simulation_runtime.cpp @@ -453,6 +453,11 @@ int startNonInteractiveSimulation(int argc, char**argv, DATA* data, threadData_t infoStreamPrint(LOG_SOLVER, 0, "overwrite solver method: %s [from command line]", data->simulationInfo->solverMethod); } } + /* if daeMode is turned on than use also the ida solver */ + if (omc_flag[FLAG_DAE_MODE] && std::string("ida") != data->simulationInfo->solverMethod) { + data->simulationInfo->solverMethod = std::string("ida").c_str(); + infoStreamPrint(LOG_SIMULATION, 0, "overwrite solver method: %s [DAEmode works only with IDA solver]", data->simulationInfo->solverMethod); + } // Create a result file const char *result_file = omc_flagValue[FLAG_R]; @@ -903,6 +908,12 @@ int initRuntimeAndSimulation(int argc, char**argv, DATA *data, threadData_t *thr infoStreamPrint(LOG_STDOUT, 0, "Tolerance for steady state detection changed to %g", steadyStateTol); } + /* if compiled with the new DAE mode the simulation + * works only in daeMode and the ida solver */ + if (compiledInDAEMode == 3){ + omc_flag[FLAG_DAE_MODE] = 1; + } + rt_tick(SIM_TIMER_INIT_XML); read_input_xml(data->modelData, data->simulationInfo); rt_accumulate(SIM_TIMER_INIT_XML);