mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
move assignGroupGuideRates into BlackoilWellModelGuideRates
This commit is contained in:
@@ -770,34 +770,6 @@ assignGroupControl(const Group& group,
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
BlackoilWellModelGeneric::
|
||||
assignGroupGuideRates(const Group& group,
|
||||
const std::unordered_map<std::string, data::GroupGuideRates>& groupGuideRates,
|
||||
data::GroupData& gdata) const
|
||||
{
|
||||
auto& prod = gdata.guideRates.production; prod.clear();
|
||||
auto& inj = gdata.guideRates.injection; inj .clear();
|
||||
|
||||
auto xgrPos = groupGuideRates.find(group.name());
|
||||
if (xgrPos == groupGuideRates.end()) {
|
||||
// No guiderates defined for this group.
|
||||
return;
|
||||
}
|
||||
|
||||
const auto& xgr = xgrPos->second;
|
||||
|
||||
if (this->guideRate_.has(group.name())) {
|
||||
prod = xgr.production;
|
||||
}
|
||||
|
||||
if (this->guideRate_.has(group.name(), Phase::WATER) ||
|
||||
this->guideRate_.has(group.name(), Phase::GAS))
|
||||
{
|
||||
inj = xgr.injection;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
BlackoilWellModelGeneric::
|
||||
assignGroupValues(const int reportStepIdx,
|
||||
@@ -811,7 +783,7 @@ assignGroupValues(const int reportStepIdx,
|
||||
|
||||
auto& gdata = gvalues[gname];
|
||||
this->assignGroupControl(grup, gdata);
|
||||
this->assignGroupGuideRates(grup, groupGuideRates, gdata);
|
||||
BlackoilWellModelGuideRates(*this).assignGroupGuideRates(grup, groupGuideRates, gdata);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -275,9 +275,6 @@ protected:
|
||||
const int reportStepIndex) const;
|
||||
void assignGroupControl(const Group& group,
|
||||
data::GroupData& gdata) const;
|
||||
void assignGroupGuideRates(const Group& group,
|
||||
const std::unordered_map<std::string, data::GroupGuideRates>& groupGuideRates,
|
||||
data::GroupData& gdata) const;
|
||||
void assignGroupValues(const int reportStepIdx,
|
||||
std::map<std::string, data::GroupData>& gvalues) const;
|
||||
void assignNodeValues(std::map<std::string, data::NodeData>& nodevalues) const;
|
||||
|
||||
@@ -542,4 +542,32 @@ calculateAllGroupGuideRates(const int reportStepIdx) const
|
||||
return gr;
|
||||
}
|
||||
|
||||
void BlackoilWellModelGuideRates::
|
||||
assignGroupGuideRates(const Group& group,
|
||||
const std::unordered_map<std::string, data::GroupGuideRates>& groupGuideRates,
|
||||
data::GroupData& gdata) const
|
||||
{
|
||||
auto& prod = gdata.guideRates.production; prod.clear();
|
||||
auto& inj = gdata.guideRates.injection; inj .clear();
|
||||
|
||||
auto xgrPos = groupGuideRates.find(group.name());
|
||||
if (xgrPos == groupGuideRates.end()) {
|
||||
// No guiderates defined for this group.
|
||||
return;
|
||||
}
|
||||
|
||||
const auto& xgr = xgrPos->second;
|
||||
|
||||
if (wellModel_.guideRate().has(group.name())) {
|
||||
prod = xgr.production;
|
||||
}
|
||||
|
||||
if (wellModel_.guideRate().has(group.name(), Phase::WATER) ||
|
||||
wellModel_.guideRate().has(group.name(), Phase::GAS))
|
||||
{
|
||||
inj = xgr.injection;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace Opm
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace Opm {
|
||||
|
||||
class BlackoilWellModelGeneric;
|
||||
namespace data {
|
||||
struct GroupData;
|
||||
class GroupGuideRates;
|
||||
class GuideRateValue;
|
||||
class Wells;
|
||||
@@ -56,6 +57,11 @@ public:
|
||||
std::unordered_map<std::string, data::GroupGuideRates>
|
||||
calculateAllGroupGuideRates(const int reportStepIdx) const;
|
||||
|
||||
//! \brief Assign group guide rates.
|
||||
void assignGroupGuideRates(const Group& group,
|
||||
const std::unordered_map<std::string, data::GroupGuideRates>& groupGuideRates,
|
||||
data::GroupData& gdata) const;
|
||||
|
||||
private:
|
||||
//! \brief Obtain guide rate values.
|
||||
void getGuideRateValues(const GuideRate::RateVector& qs,
|
||||
|
||||
Reference in New Issue
Block a user