mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Retrieve Number of Connections from Well Map
This commit is contained in:
parent
f0c738ea34
commit
4fd5d52f2f
@ -213,7 +213,6 @@ namespace Opm
|
|||||||
auto end = prevState->wellMap().end();
|
auto end = prevState->wellMap().end();
|
||||||
for (int w = 0; w < nw; ++w) {
|
for (int w = 0; w < nw; ++w) {
|
||||||
const Well& well = wells_ecl[w];
|
const Well& well = wells_ecl[w];
|
||||||
const int num_perf_this_well = well_perf_data[w].size();
|
|
||||||
auto it = prevState->wellMap().find(well.name());
|
auto it = prevState->wellMap().find(well.name());
|
||||||
if ( it != end )
|
if ( it != end )
|
||||||
{
|
{
|
||||||
@ -258,6 +257,17 @@ namespace Opm
|
|||||||
// perfPhaseRates
|
// perfPhaseRates
|
||||||
const int oldPerf_idx_beg = (*it).second[ 1 ];
|
const int oldPerf_idx_beg = (*it).second[ 1 ];
|
||||||
const int num_perf_old_well = (*it).second[ 2 ];
|
const int num_perf_old_well = (*it).second[ 2 ];
|
||||||
|
const auto new_iter = this->wellMap().find(well.name());
|
||||||
|
if (new_iter == this->wellMap().end()) {
|
||||||
|
throw std::logic_error {
|
||||||
|
well.name() + " is not in internal well map - "
|
||||||
|
"Bug in WellStateFullyImplicitBlackoil"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const int connpos = new_iter->second[1];
|
||||||
|
const int num_perf_this_well = new_iter->second[2];
|
||||||
|
|
||||||
int num_perf_changed = (num_perf_old_well != num_perf_this_well) ? 1 : 0;
|
int num_perf_changed = (num_perf_old_well != num_perf_this_well) ? 1 : 0;
|
||||||
num_perf_changed = parallel_well_info[w]->communication().sum(num_perf_changed);
|
num_perf_changed = parallel_well_info[w]->communication().sum(num_perf_changed);
|
||||||
bool global_num_perf_same = (num_perf_changed == 0);
|
bool global_num_perf_same = (num_perf_changed == 0);
|
||||||
@ -265,10 +275,6 @@ namespace Opm
|
|||||||
// copy perforation rates when the number of perforations is equal,
|
// copy perforation rates when the number of perforations is equal,
|
||||||
// otherwise initialize perfphaserates to well rates divided by the number of perforations.
|
// otherwise initialize perfphaserates to well rates divided by the number of perforations.
|
||||||
|
|
||||||
const auto new_iter = this->wellMap().find(well.name());
|
|
||||||
if (new_iter == this->wellMap().end())
|
|
||||||
throw std::logic_error("Fatal error in WellStateFullyImplicitBlackoil - could not find well: " + well.name());
|
|
||||||
int connpos = new_iter->second[1];
|
|
||||||
if( global_num_perf_same )
|
if( global_num_perf_same )
|
||||||
{
|
{
|
||||||
int old_perf_phase_idx = oldPerf_idx_beg *np;
|
int old_perf_phase_idx = oldPerf_idx_beg *np;
|
||||||
|
Loading…
Reference in New Issue
Block a user