Skip to content

Commit

Permalink
- added some implicit solver
Browse files Browse the repository at this point in the history
-- used kinsol for nlp


git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@15255 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Vitalij Ruge committed Feb 21, 2013
1 parent a4250b3 commit cf5b432
Show file tree
Hide file tree
Showing 4 changed files with 800 additions and 246 deletions.
21 changes: 20 additions & 1 deletion SimulationRuntime/c/simulation/simulation_runtime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -584,13 +584,32 @@ int callSolver(DATA* simData, string result_file_cstr, string init_initMethod,
} else if(simData->simulationInfo.solverMethod == std::string("euler")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 1, outVars);
/*} else if(simData->simulationInfo.solverMethod == std::string("optimization")){
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 5, outVars); */
} else if(simData->simulationInfo.solverMethod == std::string("rungekutta")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 2, outVars);
#ifdef WITH_SUNDIALS
} else if(simData->simulationInfo.solverMethod == std::string("radau")) {
} else if(simData->simulationInfo.solverMethod == std::string("radau5")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 6, outVars);
} else if(simData->simulationInfo.solverMethod == std::string("radau3")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 7, outVars);
} else if(simData->simulationInfo.solverMethod == std::string("radau1")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 8, outVars);
} else if(simData->simulationInfo.solverMethod == std::string("lobatto2")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 9, outVars);
} else if(simData->simulationInfo.solverMethod == std::string("lobatto4")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 10, outVars);
/*} else if(simData->simulationInfo.solverMethod == std::string("lobatto6")) {
INFO1(LOG_SOLVER, " | Recognized solver: %s.", simData->simulationInfo.solverMethod);
retVal = solver_main(simData, init_initMethod.c_str(), init_optiMethod.c_str(), init_file.c_str(), init_time, lambda_steps, 11, outVars);
*/
#endif
} else if(simData->simulationInfo.solverMethod == std::string("dassl") ||
simData->simulationInfo.solverMethod == std::string("dasslwort") ||
Expand Down

0 comments on commit cf5b432

Please sign in to comment.