mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Use well index for well water perf velocity
This commit is contained in:
@@ -1305,7 +1305,7 @@ namespace Opm
|
|||||||
// other primary variables related to polymer injectivity study
|
// other primary variables related to polymer injectivity study
|
||||||
if constexpr (Base::has_polymermw) {
|
if constexpr (Base::has_polymermw) {
|
||||||
if (this->isInjector()) {
|
if (this->isInjector()) {
|
||||||
auto * perf_water_velocity = &well_state.perfWaterVelocity()[this->first_perf_];
|
auto * perf_water_velocity = well_state.perfWaterVelocity(this->index_of_well_);
|
||||||
auto * perf_skin_pressure = well_state.perfSkinPressure(this->index_of_well_);
|
auto * perf_skin_pressure = well_state.perfSkinPressure(this->index_of_well_);
|
||||||
for (int perf = 0; perf < number_of_perforations_; ++perf) {
|
for (int perf = 0; perf < number_of_perforations_; ++perf) {
|
||||||
perf_water_velocity[perf] = primary_variables_[Bhp + 1 + perf];
|
perf_water_velocity[perf] = primary_variables_[Bhp + 1 + perf];
|
||||||
@@ -2833,7 +2833,7 @@ namespace Opm
|
|||||||
// other primary variables related to polymer injection
|
// other primary variables related to polymer injection
|
||||||
if constexpr (Base::has_polymermw) {
|
if constexpr (Base::has_polymermw) {
|
||||||
if (this->isInjector()) {
|
if (this->isInjector()) {
|
||||||
const auto * water_velocity = &well_state.perfWaterVelocity()[first_perf_];
|
const auto * water_velocity = well_state.perfWaterVelocity(this->index_of_well_);
|
||||||
const auto * skin_pressure = well_state.perfSkinPressure(this->index_of_well_);
|
const auto * skin_pressure = well_state.perfSkinPressure(this->index_of_well_);
|
||||||
for (int perf = 0; perf < number_of_perforations_; ++perf) {
|
for (int perf = 0; perf < number_of_perforations_; ++perf) {
|
||||||
primary_variables_[Bhp + 1 + perf] = water_velocity[perf];
|
primary_variables_[Bhp + 1 + perf] = water_velocity[perf];
|
||||||
|
|||||||
@@ -482,11 +482,11 @@ void WellState::init(const std::vector<double>& cellPressures,
|
|||||||
{
|
{
|
||||||
auto * throughput_target = this->perfThroughput(newIndex);
|
auto * throughput_target = this->perfThroughput(newIndex);
|
||||||
auto * pressure_target = this->perfSkinPressure(newIndex);
|
auto * pressure_target = this->perfSkinPressure(newIndex);
|
||||||
auto * velocity_target = &perf_water_velocity_[connpos];
|
auto * velocity_target = this->perfWaterVelocity(newIndex);
|
||||||
|
|
||||||
const auto * throughput_src = prevState->perfThroughput(oldIndex);
|
const auto * throughput_src = prevState->perfThroughput(oldIndex);
|
||||||
const auto * pressure_src = prevState->perfSkinPressure(oldIndex);
|
const auto * pressure_src = prevState->perfSkinPressure(oldIndex);
|
||||||
const auto * velocity_src = &prevState->perfWaterVelocity()[oldPerf_idx_beg];
|
const auto * velocity_src = prevState->perfWaterVelocity(oldIndex);
|
||||||
|
|
||||||
for (int perf = 0; perf < num_perf_this_well; ++perf)
|
for (int perf = 0; perf < num_perf_this_well; ++perf)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -254,12 +254,12 @@ public:
|
|||||||
return &perf_skin_pressure_[this->first_perf_index_[well_index]];
|
return &perf_skin_pressure_[this->first_perf_index_[well_index]];
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<double>& perfWaterVelocity() {
|
double * perfWaterVelocity(std::size_t well_index) {
|
||||||
return perf_water_velocity_;
|
return &perf_water_velocity_[this->first_perf_index_[well_index]];
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::vector<double>& perfWaterVelocity() const {
|
const double * perfWaterVelocity(std::size_t well_index) const {
|
||||||
return perf_water_velocity_;
|
return &perf_water_velocity_[this->first_perf_index_[well_index]];
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Comm>
|
template<class Comm>
|
||||||
|
|||||||
Reference in New Issue
Block a user