Merge pull request #2627 from blattms/istl-solver-ebos-write-matrix

Write out the linear system when ultra high verbosity is requested.
This commit is contained in:
Bård Skaflestad 2020-05-18 09:34:49 +02:00 committed by GitHub
commit e32a397a42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,6 +31,7 @@
#include <opm/simulators/linalg/findOverlapRowsAndColumns.hpp>
#include <opm/simulators/linalg/setupPropertyTree.hpp>
#include <opm/simulators/linalg/FlexibleSolver.hpp>
#include <opm/simulators/linalg/WriteSystemMatrixHelper.hpp>
#include <opm/common/Exceptions.hpp>
#include <opm/simulators/linalg/ParallelIstlInformation.hpp>
#include <opm/common/utility/platform_dependent/disable_warnings.h>
@ -485,6 +486,8 @@ protected:
}
bool solve(Vector& x) {
const int verbosity = useFlexible_ ? prm_.get<int>("verbosity", 0) : parameters_.linear_solver_verbosity_;
const bool write_matrix = verbosity > 10;
// Solve system.
if (useFlexible_)
@ -493,6 +496,13 @@ protected:
assert(flexibleSolver_);
flexibleSolver_->apply(x, *rhs_, res);
iterations_ = res.iterations;
if (write_matrix) {
Opm::Helper::writeSystem(simulator_, //simulator is only used to get names
getMatrix(),
*rhs_,
comm_.get());
}
return converged_ = res.converged;
}
@ -530,6 +540,13 @@ protected:
scaleSolution(x);
}
if (write_matrix) {
Opm::Helper::writeSystem(simulator_, //simulator is only used to get names
getMatrix(),
*rhs_,
comm_.get());
}
return converged_;
}