Skip to content

Commit

Permalink
- small fix for constraints in hesse
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18805 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Vitalij Ruge committed Jan 27, 2014
1 parent bae0da5 commit d535f31
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 9 deletions.
Expand Up @@ -525,11 +525,11 @@ static int local_jac_struct(IPOPT_DATA_ *iData, int * nng)
for(j = 0; j < iData->nv; ++j)
{
for(ii = 0; ii < nJ; ++ii)
if(J[ii][i]+J[ii][j]> 1)
Hg[i][j] += 1;
if(J[ii][i]*J[ii][j])
Hg[i][j] = 1;
}

if(ACTIVE_STREAM(LOG_IPOPT))
if(ACTIVE_STREAM(LOG_JAC))
{
printf("\n***********");
for(ii = 0; ii < nJ; ++ii)
Expand Down
Expand Up @@ -54,6 +54,7 @@ int initial_guess_ipopt(IPOPT_DATA_ *iData,SOLVER_INFO* solverInfo)
int err;
double *v;
long double tol;
short printGuess;

DATA* data = iData->data;
SIMULATION_DATA *sData = (SIMULATION_DATA*)data->localData[0];
Expand Down Expand Up @@ -84,7 +85,8 @@ int initial_guess_ipopt(IPOPT_DATA_ *iData,SOLVER_INFO* solverInfo)
v[ii] = u0[j]*iData->scalVar[j + iData->nx];
}

if(ACTIVE_STREAM(LOG_IPOPT) && !ACTIVE_STREAM(LOG_SOLVER))
printGuess = (short)(ACTIVE_STREAM(LOG_INIT) && !ACTIVE_STREAM(LOG_SOLVER));
if(printGuess)
{
printf("\n****initial guess****");
printf("\n #####done time[%i] = %f",0,iData->time[0]);
Expand All @@ -99,7 +101,7 @@ int initial_guess_ipopt(IPOPT_DATA_ *iData,SOLVER_INFO* solverInfo)

dasrt_step(data, solverInfo);

if(ACTIVE_STREAM(LOG_IPOPT) && !ACTIVE_STREAM(LOG_SOLVER))
if(printGuess)
printf("\n #####done time[%i] = %f",k,iData->time[k]);

for(j=0; j< iData->nx; ++j)
Expand Down Expand Up @@ -133,7 +135,7 @@ int initial_guess_ipopt(IPOPT_DATA_ *iData,SOLVER_INFO* solverInfo)
}
}

if(ACTIVE_STREAM(LOG_IPOPT))
if(printGuess)
printf("\n*****initial guess done*****");

dasrt_deinitial(solverInfo->solverData);
Expand Down
9 changes: 6 additions & 3 deletions SimulationRuntime/c/optimization/lagrangeFun/ipopt_hessian.c
Expand Up @@ -190,7 +190,7 @@ static int sumLagrange(IPOPT_DATA_ *iData, double * erg,int ii, int i, int j, in
{
long double sum;
int l;
int nJ = (ii) ? iData->nx + iData->nc : iData->nx;
int nJ = (p) ? iData->nx + iData->nc : iData->nx;
sum = 0.0;
if(iData->Hg[j][i])
for(l = 0; l<iData->nx; ++l)
Expand All @@ -202,10 +202,13 @@ static int sumLagrange(IPOPT_DATA_ *iData, double * erg,int ii, int i, int j, in
else
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];
for(l = iData->nx; l<nJ; ++l)
sum += iData->H[l][i][j];

if(mayer_yes)
sum += iData->mH[i][j];

Expand Down

0 comments on commit d535f31

Please sign in to comment.