Skip to content

Commit

Permalink
- partial fix for gradient
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18452 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Vitalij Ruge committed Dec 10, 2013
1 parent 1fb2652 commit 6217b6d
Showing 1 changed file with 5 additions and 13 deletions.
18 changes: 5 additions & 13 deletions SimulationRuntime/c/optimization/mainOptimizer/ipoptODE.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ int startIpopt(DATA* data, SOLVER_INFO* solverInfo, int flag)
iData->current_var = 0;
iData->current_time = 0;
iData->data = data;
iData->mayer_index = 0;
iData->lagrange_index = 1;

iData->mayer = (short) (mayer(data, &obj) >= 0);
iData->lagrange = (short) (lagrange(data, &obj) >= 0);

iData->mayer_index = 0;
iData->lagrange_index = (iData->mayer)? 1 : 0;

iData->matrixA = data->callback->initialAnalyticJacobianA((void*) iData->data);
iData->matrixB = data->callback->initialAnalyticJacobianB((void*) iData->data);
iData->matrixC = data->callback->initialAnalyticJacobianC((void*) iData->data);
Expand Down Expand Up @@ -135,16 +135,8 @@ int startIpopt(DATA* data, SOLVER_INFO* solverInfo, int flag)
/* AddIpoptNumOption(nlp,"derivative_test_perturbation",1e-6); */
AddIpoptIntOption(nlp, "max_iter", 5000);

for(i=0, tmp = 1;i<=4;++i){
res = IpoptSolve(nlp, (*iData).v, NULL, &obj, (*iData).mult_g, (*iData).mult_x_L, (*iData).mult_x_U, (void*)iData);
if(res!= Solve_Succeeded)
{
AddIpoptNumOption(nlp,"mu_init",tmp);
tmp *=10.0;
AddIpoptIntOption(nlp, "max_iter", 500);
}else {break;}
}

res = IpoptSolve(nlp, (*iData).v, NULL, &obj, (*iData).mult_g, (*iData).mult_x_L, (*iData).mult_x_U, (void*)iData);

FreeIpoptProblem(nlp);

if(ACTIVE_STREAM(LOG_IPOPT))
Expand Down

0 comments on commit 6217b6d

Please sign in to comment.