mirror of
https://github.com/OPM/opm-simulators.git
synced 2026-10-24 22:57:42 -05:00
replace std::max_element with std::ranges::max_element where appropriate
the c++-20 constrained algorithm is safer and code is more readable
This commit is contained in:
1 parent
0484d42517
commit
35d9ab77bb
7 files changed
+15
-11
No files matched your search
@@ -980,7 +980,7 @@ int GenericOutputBlackoilModule<FluidSystem>::
|
||||
regionMax(const std::vector<int>& region,
|
||||
const Parallel::Communication& comm)
|
||||
{
|
||||
const auto max_value = region.empty() ? 0 : *std::max_element(region.begin(), region.end());
|
||||
const auto max_value = region.empty() ? 0 : *std::ranges::max_element(region);
|
||||
return comm.max(max_value);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ InterRegFlowMapSingleFIP(const std::vector<int>& region)
|
||||
{
|
||||
if (! region.empty()) {
|
||||
this->maxLocalRegionID_= this->maxGlobalRegionID_ =
|
||||
*std::max_element(region.begin(), region.end());
|
||||
*std::ranges::max_element(region);
|
||||
}
|
||||
|
||||
std::ranges::transform(region, this->region_.begin(),
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace {
|
||||
for (auto rset = 0*nset; rset < nset; ++rset) {
|
||||
const auto& reg = getRegionArray(regionNames[rset]);
|
||||
|
||||
auto m = std::max_element(reg.begin(), reg.end());
|
||||
const auto m = std::ranges::max_element(reg);
|
||||
if (m == reg.end()) { // reg.empty()
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -98,8 +98,10 @@ namespace Amg
|
||||
diag_block_transpose.solve(bweights, rhs);
|
||||
}
|
||||
|
||||
double abs_max = *std::max_element(
|
||||
bweights.begin(), bweights.end(), [](double a, double b) { return std::fabs(a) < std::fabs(b); });
|
||||
const double abs_max =
|
||||
*std::ranges::max_element(bweights,
|
||||
[](double a, double b)
|
||||
{ return std::fabs(a) < std::fabs(b); });
|
||||
bweights /= std::fabs(abs_max);
|
||||
weights[row_idx] = bweights;
|
||||
}
|
||||
@@ -208,8 +210,10 @@ namespace Amg
|
||||
}
|
||||
block_transpose.solve(bweights, rhs);
|
||||
|
||||
double abs_max = *std::max_element(
|
||||
bweights.begin(), bweights.end(), [](double a, double b) { return std::fabs(a) < std::fabs(b); });
|
||||
const double abs_max =
|
||||
*std::ranges::max_element(bweights,
|
||||
[](double a, double b)
|
||||
{ return std::fabs(a) < std::fabs(b); });
|
||||
// probably a scaling which could give approximately total compressibility would be better
|
||||
bweights /= std::fabs(abs_max); // given normal densities this scales weights to about 1.
|
||||
|
||||
|
||||
@@ -150,8 +150,8 @@ namespace Opm
|
||||
/// \brief return max step length used so far
|
||||
double AdaptiveSimulatorTimer::maxStepLength () const
|
||||
{
|
||||
if( steps_.empty() ) return 0.0;
|
||||
return *(std::max_element( steps_.begin(), steps_.end() ));
|
||||
if (steps_.empty()) return 0.0;
|
||||
return *std::ranges::max_element(steps_);
|
||||
}
|
||||
|
||||
/// \brief return min step length used so far
|
||||
|
||||
@@ -157,7 +157,7 @@ void Opm::ParallelPAvgDynamicSourceData<Scalar>::defineCommunication()
|
||||
// permutation of 0..allIndices.size()-1 and the maximum source
|
||||
// location may exceed size()-1. Resize the storageIndex_ according
|
||||
// to the largest source location ID.
|
||||
if (auto maxIxPos = std::max_element(allIndices.begin(), allIndices.end());
|
||||
if (const auto maxIxPos = std::ranges::max_element(allIndices);
|
||||
maxIxPos != allIndices.end())
|
||||
{
|
||||
// +1 for zero-based indices.
|
||||
|
||||
@@ -127,7 +127,7 @@ BOOST_AUTO_TEST_CASE(CheckMassBalanceWithinTRGMBE)
|
||||
auto mbw = data["MB_Water"];
|
||||
auto mbg = data["MB_Gas"];
|
||||
|
||||
const int num_reports = 1 + *std::max_element(rstep.begin(), rstep.end());
|
||||
const int num_reports = 1 + *std::ranges::max_element(rstep);
|
||||
std::vector<double> max_mb;
|
||||
max_mb.reserve(num_reports);
|
||||
|
||||
|
||||
Reference in new issue
Block a user