Move rates and perf pressure

This commit is contained in:
Joakim Hove 2021-05-20 11:34:51 +02:00
parent 7b5c085bb5
commit e26e3950b6
2 changed files with 21 additions and 24 deletions

View File

@ -70,25 +70,6 @@ public:
/// One rate per well and phase.
const WellContainer<std::vector<double>>& wellRates() const { return wellrates_; }
std::vector<double>& wellRates(std::size_t well_index) { return wellrates_[well_index]; }
const std::vector<double>& wellRates(std::size_t well_index) const { return wellrates_[well_index]; }
/// One rate per well connection.
std::vector<double>& perfRates(std::size_t well_index) { return this->perfrates_[well_index]; }
const std::vector<double>& perfRates(std::size_t well_index) const { return this->perfrates_[well_index]; }
std::vector<double>& perfRates(const std::string& wname) { return this->perfrates_[wname]; }
const std::vector<double>& perfRates(const std::string& wname) const { return this->perfrates_[wname]; }
/// One pressure per well connection.
std::vector<double>& perfPress(std::size_t well_index) { return perfpress_[well_index]; }
const std::vector<double>& perfPress(std::size_t well_index) const { return perfpress_[well_index]; }
std::vector<double>& perfPress(const std::string& wname) { return perfpress_[wname]; }
const std::vector<double>& perfPress(const std::string& wname) const { return perfpress_[wname]; }
protected: protected:
WellContainer<Well::Status> status_; WellContainer<Well::Status> status_;
@ -100,11 +81,11 @@ protected:
std::vector<double> temperature_; std::vector<double> temperature_;
WellContainer<std::vector<double>> wellrates_; WellContainer<std::vector<double>> wellrates_;
PhaseUsage phase_usage_; PhaseUsage phase_usage_;
private:
WellContainer<std::vector<double>> perfrates_; WellContainer<std::vector<double>> perfrates_;
WellContainer<std::vector<double>> perfpress_; WellContainer<std::vector<double>> perfpress_;
private:
void initSingleWell(const std::vector<double>& cellPressures, void initSingleWell(const std::vector<double>& cellPressures,
const int w, const int w,

View File

@ -60,9 +60,6 @@ public:
static const int Oil = BlackoilPhases::Liquid; static const int Oil = BlackoilPhases::Liquid;
static const int Gas = BlackoilPhases::Vapour; static const int Gas = BlackoilPhases::Vapour;
using BaseType :: wellRates;
using BaseType :: perfPress;
explicit WellStateFullyImplicitBlackoil(const PhaseUsage& pu) : explicit WellStateFullyImplicitBlackoil(const PhaseUsage& pu) :
WellState(pu) WellState(pu)
{ {
@ -422,6 +419,25 @@ public:
void update_temperature(std::size_t well_index, double value) { temperature_[well_index] = value; } void update_temperature(std::size_t well_index, double value) { temperature_[well_index] = value; }
double temperature(std::size_t well_index) const { return temperature_[well_index]; } double temperature(std::size_t well_index) const { return temperature_[well_index]; }
/// One rate per well and phase.
const WellContainer<std::vector<double>>& wellRates() const { return wellrates_; }
std::vector<double>& wellRates(std::size_t well_index) { return wellrates_[well_index]; }
const std::vector<double>& wellRates(std::size_t well_index) const { return wellrates_[well_index]; }
/// One rate per well connection.
std::vector<double>& perfRates(std::size_t well_index) { return this->perfrates_[well_index]; }
const std::vector<double>& perfRates(std::size_t well_index) const { return this->perfrates_[well_index]; }
std::vector<double>& perfRates(const std::string& wname) { return this->perfrates_[wname]; }
const std::vector<double>& perfRates(const std::string& wname) const { return this->perfrates_[wname]; }
/// One pressure per well connection.
std::vector<double>& perfPress(std::size_t well_index) { return perfpress_[well_index]; }
const std::vector<double>& perfPress(std::size_t well_index) const { return perfpress_[well_index]; }
std::vector<double>& perfPress(const std::string& wname) { return perfpress_[wname]; }
const std::vector<double>& perfPress(const std::string& wname) const { return perfpress_[wname]; }
private: private:
std::vector<double> perfphaserates_; std::vector<double> perfphaserates_;
WellContainer<int> is_producer_; // Size equal to number of local wells. WellContainer<int> is_producer_; // Size equal to number of local wells.