From 30a9e029987692e5a97e51f8106c8967cc537c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Fri, 30 Jun 2023 15:36:52 +0200 Subject: [PATCH] Add output of linear system sizes to DBG file. --- opm/simulators/linalg/ISTLSolverEbos.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/opm/simulators/linalg/ISTLSolverEbos.cpp b/opm/simulators/linalg/ISTLSolverEbos.cpp index cdb449f62..cdf0084ce 100644 --- a/opm/simulators/linalg/ISTLSolverEbos.cpp +++ b/opm/simulators/linalg/ISTLSolverEbos.cpp @@ -31,6 +31,8 @@ #include #include +#include + #if COMPILE_BDA_BRIDGE #include #include @@ -123,6 +125,24 @@ void FlexibleSolverInfo::create(const Matrix& matrix, [[maybe_unused]] Comm& comm) { + // Write sizes of linear systems on all ranks to debug log. + { + auto basic_comm = comm.communicator(); + std::ostringstream os; + os << "Linear system "; + if (basic_comm.size() > 1) { + os << fmt::format("on MPI rank: {} ", basic_comm.rank()); + } + os << fmt::format("blocksize: {} size: {:7d} block nonzeroes: {:9d}", + Matrix::block_type::rows, matrix.N(), matrix.nonzeroes()); + DeferredLogger local_logger; + local_logger.debug(os.str()); + auto global_logger = gatherDeferredLogger(local_logger, basic_comm); + if (basic_comm.rank() == 0) { + global_logger.logMessages(); + } + } + std::function weightsCalculator = getWeightsCalculator(prm, matrix, pressureIndex, trueFunc);