Skip to content

Commit

Permalink
fixed empty dyn. optimization
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@24004 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Vitalij Ruge committed Jan 11, 2015
1 parent 15b286c commit e97f447
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
Expand Up @@ -328,6 +328,11 @@ static inline void smallIntSolverStep(DATA* data, SOLVER_INFO* solverInfo, const

rotateRingBuffer(data->simulationData, 1, (void**) data->localData);
do{
if(data->modelData.nStates < 1){
solverInfo->currentTime = tstop;
data->localData[0]->timeValue = tstop;
break;
}
solverInfo->currentStepSize = a*(tstop - solverInfo->currentTime);
err = dassl_step(data, solverInfo);
a *= 0.5;
Expand Down
7 changes: 6 additions & 1 deletion SimulationRuntime/c/simulation/solver/solver_main.c
Expand Up @@ -111,7 +111,12 @@ int solver_main_step(DATA* data, SOLVER_INFO* solverInfo)

#ifdef WITH_IPOPT
case S_OPTIMIZATION:
retVal = ipopt_step(data, solverInfo);
if((int)(data->modelData.nStates + data->modelData.nInputVars) > 0){
retVal = ipopt_step(data, solverInfo);
}else{
solverInfo->solverMethod = S_EULER;
retVal = euler_ex_step(data, solverInfo);
}
TRACE_POP
return retVal;
#endif
Expand Down

0 comments on commit e97f447

Please sign in to comment.