Skip to content

Commit 2ac44ce

Browse files
ptaeuberOpenModelica-Hudson
authored andcommitted
Fix check of homotopy solution
Belonging to [master]: - OpenModelica/OMCompiler#1942
1 parent 9e2d1a7 commit 2ac44ce

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

SimulationRuntime/c/simulation/solver/initialization/initialization.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,6 @@ static int symbolic_initialization(DATA *data, threadData_t *threadData)
273273
fprintf(pFile, "\n");
274274
}
275275
#endif
276-
277-
if (check_nonlinear_solutions(data, 0) ||
278-
check_linear_solutions(data, 0) ||
279-
check_mixed_solutions(data, 0))
280-
break;
281276
}
282277
data->simulationInfo->homotopyUsed = 1;
283278
messageClose(LOG_INIT);

SimulationRuntime/c/simulation/solver/nonlinearSystem.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -883,6 +883,7 @@ int solve_nonlinear_system(DATA *data, threadData_t *threadData, int sysNumber)
883883

884884
infoStreamPrint(LOG_INIT, 0, "[system %d] homotopy parameter lambda = %g", sysNumber, data->simulationInfo->lambda);
885885
nonlinsys->solved = solveNLS(data, threadData, sysNumber);
886+
if (!nonlinsys->solved) break;
886887

887888
#if !defined(OMC_NO_FILESYSTEM)
888889
if(ACTIVE_STREAM(LOG_INIT))
@@ -992,10 +993,10 @@ int check_nonlinear_solution(DATA *data, int printFailingSystems, int sysNumber)
992993
{
993994
int index = nonlinsys[i].equationIndex, indexes[2] = {1,index};
994995
if (!printFailingSystems) return 1;
995-
warningStreamPrintWithEquationIndexes(LOG_NLS, 1, indexes, "nonlinear system %d fails: at t=%g", index, data->localData[0]->timeValue);
996+
warningStreamPrintWithEquationIndexes(LOG_NLS, 0, indexes, "nonlinear system %d fails: at t=%g", index, data->localData[0]->timeValue);
996997
if(data->simulationInfo->initial)
997998
{
998-
warningStreamPrint(LOG_NLS_V, 0, "proper start-values for some of the following iteration variables might help");
999+
warningStreamPrint(LOG_INIT, 1, "proper start-values for some of the following iteration variables might help");
9991000
}
10001001
for(j=0; j<modelInfoGetEquation(&data->modelData->modelDataXml, (nonlinsys[i]).equationIndex).numVar; ++j) {
10011002
int done=0;
@@ -1006,18 +1007,18 @@ int check_nonlinear_solution(DATA *data, int printFailingSystems, int sysNumber)
10061007
if (!strcmp(mData->realVarsData[k].info.name, modelInfoGetEquation(&data->modelData->modelDataXml, (nonlinsys[i]).equationIndex).vars[j]))
10071008
{
10081009
done = 1;
1009-
warningStreamPrint(LOG_NLS_V, 0, "[%ld] Real %s(start=%g, nominal=%g)", j+1,
1010+
warningStreamPrint(LOG_INIT, 0, "[%ld] Real %s(start=%g, nominal=%g)", j+1,
10101011
mData->realVarsData[k].info.name,
10111012
mData->realVarsData[k].attribute.start,
10121013
mData->realVarsData[k].attribute.nominal);
10131014
}
10141015
}
10151016
if (!done)
10161017
{
1017-
warningStreamPrint(LOG_NLS_V, 0, "[%ld] Real %s(start=?, nominal=?)", j+1, modelInfoGetEquation(&data->modelData->modelDataXml, (nonlinsys[i]).equationIndex).vars[j]);
1018+
warningStreamPrint(LOG_INIT, 0, "[%ld] Real %s(start=?, nominal=?)", j+1, modelInfoGetEquation(&data->modelData->modelDataXml, (nonlinsys[i]).equationIndex).vars[j]);
10181019
}
10191020
}
1020-
messageCloseWarning(LOG_NLS);
1021+
messageCloseWarning(LOG_INIT);
10211022
return 1;
10221023
}
10231024
if(nonlinsys[i].solved == 2)

0 commit comments

Comments
 (0)