mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-16 20:24:48 -06:00
Make sure the perforation pressures is initialized also for STOP wells
This commit is contained in:
parent
96b4556926
commit
b03078452f
@ -143,18 +143,16 @@ namespace Opm
|
||||
assert((wells->type[w] == INJECTOR) || (wells->type[w] == PRODUCER));
|
||||
const WellControls* ctrl = wells->ctrls[w];
|
||||
|
||||
if (well_controls_well_is_stopped(ctrl)) {
|
||||
// Shut well: perfphaserates_ are all zero.
|
||||
} else {
|
||||
const int num_perf_this_well = wells->well_connpos[w + 1] - wells->well_connpos[w];
|
||||
// Open well: Initialize perfphaserates_ to well
|
||||
// rates divided by the number of perforations.
|
||||
for (int perf = wells->well_connpos[w]; perf < wells->well_connpos[w + 1]; ++perf) {
|
||||
const int num_perf_this_well = wells->well_connpos[w + 1] - wells->well_connpos[w];
|
||||
// Open well: Initialize perfphaserates_ to well
|
||||
// rates divided by the number of perforations.
|
||||
for (int perf = wells->well_connpos[w]; perf < wells->well_connpos[w + 1]; ++perf) {
|
||||
if (well_controls_well_is_open(ctrl)) {
|
||||
for (int p = 0; p < np; ++p) {
|
||||
perfphaserates_[np*perf + p] = wellRates()[np*w + p] / double(num_perf_this_well);
|
||||
}
|
||||
perfPress()[perf] = cellPressures[wells->well_cells[perf]];
|
||||
}
|
||||
perfPress()[perf] = cellPressures[wells->well_cells[perf]];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -303,4 +303,18 @@ BOOST_AUTO_TEST_CASE(Rates)
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
BOOST_AUTO_TEST_CASE(STOP_well)
|
||||
{
|
||||
/*
|
||||
This test verifies that the perforation pressures is correctly initialized
|
||||
also for wells in the STOP state.
|
||||
*/
|
||||
const Setup setup{ "wells_manager_data_wellSTOP.data" };
|
||||
auto wstate = buildWellState(setup, 0);
|
||||
for (const auto& p : wstate.perfPress())
|
||||
BOOST_CHECK(p > 0);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
@ -35,11 +35,17 @@ SCHEDULE
|
||||
WELSPECS
|
||||
'INJ1' 'G' 1 1 8335 'GAS' /
|
||||
'PROD1' 'G' 10 10 8400 'OIL' /
|
||||
'STOP' 'G' 5 5 8400 'OIL' /
|
||||
/
|
||||
|
||||
COMPDAT
|
||||
'INJ1' 1 1 1 1 'OPEN' 1 10.6092 0.5 /
|
||||
'PROD1' 10 3 3 3 'OPEN' 0 10.6092 0.5 /
|
||||
'STOP' 5 3 1 3 'OPEN' 0 10.6092 0.5 /
|
||||
/
|
||||
|
||||
WCONHIST
|
||||
'STOP' 'STOP' 'GRAT' 0 0 0 /
|
||||
/
|
||||
|
||||
WCONPROD
|
||||
|
Loading…
Reference in New Issue
Block a user