handling well_efficiency_factor_ in WellInterface.

This commit is contained in:
Kai Bao 2017-07-25 14:48:37 +02:00
parent 358d4c2a00
commit 369ccfef52
4 changed files with 16 additions and 12 deletions

View File

@ -285,12 +285,6 @@ enum WellVariablePositions {
double gravity_;
const RateConverterType& rate_converter_;
// The efficiency factor for each connection. It is specified based on wells and groups,
// We calculate the factor for each connection for the computation of contributions to the mass balance equations.
// By default, they should all be one.
std::vector<double> well_perforation_efficiency_factors_;
// the depth of the all the cell centers
// for standard Wells, it the same with the perforation depth
std::vector<double> pv_;
std::vector<double> wells_rep_radius_;

View File

@ -958,15 +958,12 @@ namespace Opm {
const int nw = wells().number_of_wells;
for (int w = 0; w < nw; ++w) {
const std::string well_name = wells().name[w];
const std::string well_name = well_container_[w]->name();
const WellNode& well_node = wellCollection()->findWellNode(well_name);
const double well_efficiency_factor = well_node.getAccumulativeEfficiencyFactor();
// assign the efficiency factor to each perforation related.
for (int perf = wells().well_connpos[w]; perf < wells().well_connpos[w + 1]; ++perf) {
well_perforation_efficiency_factors_[perf] = well_efficiency_factor;
}
well_container_[w]->setWellEfficiencyFactor(well_efficiency_factor);
}
}

View File

@ -204,6 +204,8 @@ namespace Opm
const WellState& well_state,
std::vector<double>& well_potentials) const = 0;
void setWellEfficiencyFactor(const double efficiency_factor);
protected:
const Well* well_ecl_;

View File

@ -98,7 +98,6 @@ namespace Opm
}
well_efficiency_factor_ = 1.0;
// TODO: need to calculate based on wellCollections, or it should happen in the Well Model side.
}
@ -281,6 +280,18 @@ namespace Opm
template<typename TypeTag>
void
WellInterface<TypeTag>::
setWellEfficiencyFactor(const double efficiency_factor)
{
well_efficiency_factor_ = efficiency_factor;
}
template<typename TypeTag>
const PhaseUsage&
WellInterface<TypeTag>::