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:
WellContainer<Well::Status> status_;
@ -100,11 +81,11 @@ protected:
std::vector<double> temperature_;
WellContainer<std::vector<double>> wellrates_;
PhaseUsage phase_usage_;
private:
WellContainer<std::vector<double>> perfrates_;
WellContainer<std::vector<double>> perfpress_;
private:
void initSingleWell(const std::vector<double>& cellPressures,
const int w,

View File

@ -60,9 +60,6 @@ public:
static const int Oil = BlackoilPhases::Liquid;
static const int Gas = BlackoilPhases::Vapour;
using BaseType :: wellRates;
using BaseType :: perfPress;
explicit WellStateFullyImplicitBlackoil(const PhaseUsage& pu) :
WellState(pu)
{
@ -422,6 +419,25 @@ public:
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]; }
/// 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:
std::vector<double> perfphaserates_;
WellContainer<int> is_producer_; // Size equal to number of local wells.