mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
FullyImplicitBlackoilSolver: cleanup the residualNorm() method
This commit is contained in:
@@ -1267,23 +1267,22 @@ namespace {
|
|||||||
double
|
double
|
||||||
FullyImplicitBlackoilSolver::residualNorm() const
|
FullyImplicitBlackoilSolver::residualNorm() const
|
||||||
{
|
{
|
||||||
double r = 0;
|
double globalNorm = 0;
|
||||||
for (std::vector<ADB>::const_iterator
|
std::vector<ADB>::const_iterator quantityIt = residual_.mass_balance.begin();
|
||||||
b = residual_.mass_balance.begin(),
|
const std::vector<ADB>::const_iterator endQuantityIt = residual_.mass_balance.end();
|
||||||
e = residual_.mass_balance.end();
|
for (; quantityIt != endQuantityIt; ++quantityIt)
|
||||||
b != e; ++b)
|
|
||||||
{
|
{
|
||||||
const double rowResid = (*b).value().matrix().norm();
|
const double quantityResid = (*quantityIt).value().matrix().norm();
|
||||||
if (!std::isfinite(rowResid)) {
|
if (!std::isfinite(quantityResid)) {
|
||||||
OPM_THROW(Opm::NumericalProblem,
|
OPM_THROW(Opm::NumericalProblem,
|
||||||
"Encountered a non-finite residual");
|
"Encountered a non-finite residual");
|
||||||
}
|
}
|
||||||
r = std::max(r, rowResid);
|
globalNorm = std::max(globalNorm, quantityResid);
|
||||||
}
|
}
|
||||||
r = std::max(r, residual_.well_flux_eq.value().matrix().norm());
|
globalNorm = std::max(globalNorm, residual_.well_flux_eq.value().matrix().norm());
|
||||||
r = std::max(r, residual_.well_eq.value().matrix().norm());
|
globalNorm = std::max(globalNorm, residual_.well_eq.value().matrix().norm());
|
||||||
|
|
||||||
return r;
|
return globalNorm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user