Skip to content

Commit

Permalink
- fixed indices for constraints (optimization)
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18752 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Vitalij Ruge committed Jan 23, 2014
1 parent 23307a6 commit eb2f79b
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
Expand Up @@ -524,7 +524,7 @@ static int local_jac_struct(IPOPT_DATA_ *iData, int * nng)
for(i = 0; i <iData->nv; ++i)
for(j = 0; j < iData->nv; ++j)
{
for(ii = 0; ii < iData->nx; ++ii)
for(ii = 0; ii < nJ; ++ii)
if(J[ii][i]+J[ii][j]> 1)
Hg[i][j] += 1;
}
Expand Down
18 changes: 9 additions & 9 deletions SimulationRuntime/c/optimization/lagrangeFun/ipopt_hessian.c
Expand Up @@ -203,6 +203,7 @@ static int sumLagrange(IPOPT_DATA_ *iData, double * erg,int ii, int i, int j, in
sum += iData->bl[p]*iData->oH[i][j];
}
sum = iData->dt[ii]*sum;
if(iData->Hg[j][i])
for(l = iData->nx; l<nJ; ++l)
sum += iData->H[l][i][j];
if(mayer_yes)
Expand Down Expand Up @@ -245,15 +246,14 @@ static int num_hessian(double *v, double t, IPOPT_DATA_ *iData, double *lambda,
for(j = i; j < iData->nv; ++j)
{
if(iData->Hg[i][j]){
for(l = 0; l< nJ; ++l)
{
if(iData->knowedJ[l][j] + iData->knowedJ[l][i] >= 2)
iData->H[l][i][j] = (long double)lambda[l]*(iData->J[l][j] - iData->J0[l][j])/h;
else
iData->H[l][i][j] = (long double) 0.0;

iData->H[l][j][i] = iData->H[l][i][j];
}
for(l = 0; l< nJ; ++l)
{
if(iData->knowedJ[l][j] + iData->knowedJ[l][i] >= 2)
iData->H[l][i][j] = (long double)lambda[l]*(iData->J[l][j] - iData->J0[l][j])/h;
else
iData->H[l][i][j] = (long double) 0.0;
iData->H[l][j][i] = iData->H[l][i][j];
}
}
}
h = obj_factor/h;
Expand Down
2 changes: 1 addition & 1 deletion SimulationRuntime/c/optimization/mainOptimizer/ipoptODE.c
Expand Up @@ -135,7 +135,7 @@ int startIpopt(DATA* data, SOLVER_INFO* solverInfo, int flag)
}
/*AddIpoptStrOption(nlp, "derivative_test_print_all", "yes");*/
/* AddIpoptNumOption(nlp,"derivative_test_perturbation",1e-6); */
AddIpoptIntOption(nlp, "max_iter", 250);
AddIpoptIntOption(nlp, "max_iter", 5000);

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

Expand Down

0 comments on commit eb2f79b

Please sign in to comment.