From 58cae62e0252b3c6161cc079d1381c0480a681e7 Mon Sep 17 00:00:00 2001 From: wibraun Date: Fri, 19 Oct 2018 15:28:39 +0200 Subject: [PATCH] [cRuntime] add some jacobian statistics Belonging to [master]: - OpenModelica/OMCompiler#2732 --- SimulationRuntime/c/simulation/solver/dassl.c | 6 ++++++ SimulationRuntime/c/simulation/solver/ida_solver.c | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/SimulationRuntime/c/simulation/solver/dassl.c b/SimulationRuntime/c/simulation/solver/dassl.c index dda202dee0..a59bb252bf 100644 --- a/SimulationRuntime/c/simulation/solver/dassl.c +++ b/SimulationRuntime/c/simulation/solver/dassl.c @@ -310,6 +310,12 @@ int dassl_initial(DATA* data, threadData_t *threadData, SOLVER_INFO* solverInfo, { infoStreamPrint(LOG_STDOUT, 0, "Jacobian or SparsePattern is not generated or failed to initialize! Switch back to normal."); dasslData->dasslJacobian = INTERNALNUMJAC; + } else { + ANALYTIC_JACOBIAN* jac = &data->simulationInfo->analyticJacobians[data->callback->INDEX_JAC_A]; + infoStreamPrint(LOG_SIMULATION, 1, "Initialized colored Jacobian:"); + infoStreamPrint(LOG_SIMULATION, 0, "columns: %d rows: %d", jac->sizeCols, jac->sizeRows); + infoStreamPrint(LOG_SIMULATION, 0, "NNZ: %d colors: %d", jac->sparsePattern.numberOfNoneZeros, jac->sparsePattern.maxColors); + messageClose(LOG_SIMULATION); } } /* default use a user sub-routine for JAC */ diff --git a/SimulationRuntime/c/simulation/solver/ida_solver.c b/SimulationRuntime/c/simulation/solver/ida_solver.c index c2a72bee8a..c544629cf2 100644 --- a/SimulationRuntime/c/simulation/solver/ida_solver.c +++ b/SimulationRuntime/c/simulation/solver/ida_solver.c @@ -450,7 +450,14 @@ ida_solver_initial(DATA* data, threadData_t *threadData, SOLVER_INFO* solverInfo flag = IDADense(idaData->ida_mem, idaData->N); warningStreamPrint(LOG_STDOUT, 0, "IDA linear solver method also switched back to %s", IDA_LS_METHOD_DESC[idaData->linearSolverMethod]); } + } else { + ANALYTIC_JACOBIAN* jac = &data->simulationInfo->analyticJacobians[data->callback->INDEX_JAC_A]; + infoStreamPrint(LOG_SIMULATION, 1, "Initialized colored Jacobian:"); + infoStreamPrint(LOG_SIMULATION, 0, "columns: %d rows: %d", jac->sizeCols, jac->sizeRows); + infoStreamPrint(LOG_SIMULATION, 0, "NNZ: %d colors: %d", jac->sparsePattern.numberOfNoneZeros, jac->sparsePattern.maxColors); + messageClose(LOG_SIMULATION); } + } /* set up the appropriate function pointer */ if (idaData->linearSolverMethod == IDA_LS_KLU)