Skip to content

Commit

Permalink
- add more TRACE information
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@23966 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
lochel committed Jan 7, 2015
1 parent a7b270d commit 0b33566
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 7 deletions.
Expand Up @@ -651,7 +651,9 @@ static int numeric_initialization(DATA *data, int optiMethod, int lambda_steps)
*/
static int symbolic_initialization(DATA *data, long numLambdaSteps)
{
TRACE_PUSH
long step;
int retVal;

/* initial sample and delay before initial the system */
initDelay(data, data->simulationInfo.startTime);
Expand Down Expand Up @@ -766,7 +768,10 @@ static int symbolic_initialization(DATA *data, long numLambdaSteps)
}

/* check for over-determined systems */
return data->callback->functionRemovedInitialEquations(data);
retVal = data->callback->functionRemovedInitialEquations(data);

TRACE_POP
return retVal;
}

/*! \fn static char *mapToDymolaVars(const char *varname)
Expand Down
40 changes: 34 additions & 6 deletions SimulationRuntime/c/simulation/solver/linearSystem.c
Expand Up @@ -71,6 +71,7 @@ const char *LS_DESC[LS_MAX+1] = {
*/
int initializeLinearSystems(DATA *data)
{
TRACE_PUSH
int i, nnz;
int size;
LINEAR_SYSTEM_DATA *linsys = data->simulationInfo.linearSystemData;
Expand Down Expand Up @@ -133,6 +134,8 @@ int initializeLinearSystems(DATA *data)
}

messageClose(LOG_LS_V);

TRACE_POP
return 0;
}

Expand All @@ -144,6 +147,7 @@ int initializeLinearSystems(DATA *data)
*/
int updateStaticDataOfLinearSystems(DATA *data)
{
TRACE_PUSH
int i, nnz;
int size;
LINEAR_SYSTEM_DATA *linsys = data->simulationInfo.linearSystemData;
Expand All @@ -156,6 +160,8 @@ int updateStaticDataOfLinearSystems(DATA *data)
}

messageClose(LOG_LS_V);

TRACE_POP
return 0;
}

Expand Down Expand Up @@ -184,6 +190,7 @@ void printLinearSystemSolvingStatistics(DATA *data, int sysNumber, int logLevel)
*/
int freeLinearSystems(DATA *data)
{
TRACE_PUSH
int i;
LINEAR_SYSTEM_DATA* linsys = data->simulationInfo.linearSystemData;

Expand Down Expand Up @@ -221,6 +228,8 @@ int freeLinearSystems(DATA *data)
}

messageClose(LOG_LS_V);

TRACE_POP
return 0;
}

Expand All @@ -233,7 +242,9 @@ int freeLinearSystems(DATA *data)
*/
int solve_linear_system(DATA *data, int sysNumber)
{
TRACE_PUSH
int success;
int retVal;
LINEAR_SYSTEM_DATA* linsys = data->simulationInfo.linearSystemData;

rt_ext_tp_tick(&(linsys[sysNumber].totalTimeClock));
Expand All @@ -259,7 +270,10 @@ int solve_linear_system(DATA *data, int sysNumber)
linsys[sysNumber].totalTime += rt_ext_tp_tock(&(linsys[sysNumber].totalTimeClock));
linsys[sysNumber].numberOfCall++;

return check_linear_solution(data, 1, sysNumber);
retVal = check_linear_solution(data, 1, sysNumber);

TRACE_POP
return retVal;
}

/*! \fn check_linear_solutions
Expand All @@ -275,13 +289,19 @@ int solve_linear_system(DATA *data, int sysNumber)
*/
int check_linear_solutions(DATA *data, int printFailingSystems)
{
TRACE_PUSH
long i;

for(i=0; i<data->modelData.nLinearSystems; ++i) {
if(check_linear_solution(data, printFailingSystems, i))
return 1;
for(i=0; i<data->modelData.nLinearSystems; ++i)
{
if(check_linear_solution(data, printFailingSystems, i))
{
TRACE_POP
return 1;
}
}

TRACE_POP
return 0;
}

Expand All @@ -298,13 +318,18 @@ int check_linear_solutions(DATA *data, int printFailingSystems)
*/
int check_linear_solution(DATA *data, int printFailingSystems, int sysNumber)
{
TRACE_PUSH
LINEAR_SYSTEM_DATA* linsys = data->simulationInfo.linearSystemData;
long j, i = sysNumber;;
long j, i = sysNumber;

if(linsys[i].solved == 0)
{
int index = linsys[i].equationIndex, indexes[2] = {1,index};
if (!printFailingSystems) return 1;
if (!printFailingSystems)
{
TRACE_POP
return 1;
}
warningStreamPrintWithEquationIndexes(LOG_LS, 1, indexes, "linear system %d fails: at t=%g", index, data->localData[0]->timeValue);

for(j=0; j<modelInfoGetEquation(&data->modelData.modelDataXml, (linsys[i]).equationIndex).numVar; ++j) {
Expand All @@ -328,9 +353,12 @@ int check_linear_solution(DATA *data, int printFailingSystems, int sysNumber)
}
}
messageCloseWarning(LOG_LS);

TRACE_POP
return 1;
}

TRACE_POP
return 0;
}

Expand Down
9 changes: 9 additions & 0 deletions SimulationRuntime/c/simulation/solver/nonlinearSystem.c
Expand Up @@ -107,6 +107,7 @@ struct dataNewtonAndHybrid {
*/
int initializeNonlinearSystems(DATA *data)
{
TRACE_PUSH
int i;
int size;
NONLINEAR_SYSTEM_DATA *nonlinsys = data->simulationInfo.nonlinearSystemData;
Expand Down Expand Up @@ -179,6 +180,8 @@ int initializeNonlinearSystems(DATA *data)
}

messageClose(LOG_NLS);

TRACE_POP
return 0;
}

Expand All @@ -190,6 +193,7 @@ int initializeNonlinearSystems(DATA *data)
*/
int updateStaticDataOfNonlinearSystems(DATA *data)
{
TRACE_PUSH
int i;
int size;
NONLINEAR_SYSTEM_DATA *nonlinsys = data->simulationInfo.nonlinearSystemData;
Expand All @@ -203,6 +207,8 @@ int updateStaticDataOfNonlinearSystems(DATA *data)
}

messageClose(LOG_NLS);

TRACE_POP
return 0;
}

Expand All @@ -214,6 +220,7 @@ int updateStaticDataOfNonlinearSystems(DATA *data)
*/
int freeNonlinearSystems(DATA *data)
{
TRACE_PUSH
int i;
NONLINEAR_SYSTEM_DATA* nonlinsys = data->simulationInfo.nonlinearSystemData;

Expand Down Expand Up @@ -261,6 +268,8 @@ int freeNonlinearSystems(DATA *data)
}

messageClose(LOG_NLS);

TRACE_POP
return 0;
}

Expand Down
3 changes: 3 additions & 0 deletions SimulationRuntime/c/simulation/solver/stateset.c
Expand Up @@ -306,6 +306,7 @@ static int comparePivot(modelica_integer *oldPivot, modelica_integer *newPivot,
*/
int stateSelection(DATA *data, char reportError, int switchStates)
{
TRACE_PUSH
long i=0;
long j=0;
int globalres=0;
Expand Down Expand Up @@ -356,5 +357,7 @@ int stateSelection(DATA *data, char reportError, int switchStates)
free(oldColPivot);
free(oldRowPivot);
}

TRACE_POP
return globalres;
}

0 comments on commit 0b33566

Please sign in to comment.