Output rates to multisegment wells

This commit is contained in:
Svenn Tveit
2024-06-05 15:13:05 +02:00
parent db970d58d2
commit adc36d64a5
5 changed files with 52 additions and 2 deletions

View File

@@ -1698,6 +1698,33 @@ assignWellTracerRates(data::Wells& wsrpt,
}
}
template<class Scalar>
void BlackoilWellModelGeneric<Scalar>::
assignMswTracerRates(data::Wells& wsrpt,
const MswTracerRates& mswTracerRates) const
{
if (mswTracerRates.empty())
return;
for (const auto& mswTR : mswTracerRates) {
std::string wellName = std::get<0>(mswTR.first);
auto xwPos = wsrpt.find(wellName);
if (xwPos == wsrpt.end()) { // No well results.
continue;
}
std::string tracerName = std::get<1>(mswTR.first);
std::size_t segNumber = std::get<2>(mswTR.first);
Scalar rate = mswTR.second;
auto& wData = xwPos->second;
auto segPos = wData.segments.find(segNumber);
if (segPos != wData.segments.end()) {
auto& segment = segPos->second;
segment.rates.set(data::Rates::opt::tracer, rate, tracerName);
}
}
}
template<class Scalar>
std::vector<std::vector<int>> BlackoilWellModelGeneric<Scalar>::
getMaxWellConnections() const