Opm::WellState::init(): Handle shut wells

This is a minor bugfix to account for the presence of shut wells
(characterised by "ctrls[w]->current < 0").  The existing code would
lead to indexing outside the "ctrls" array in the context of a shut
well.
This commit is contained in:
Bård Skaflestad 2013-01-18 13:23:37 +01:00
parent e5ff636860
commit d0fa32011b

View File

@ -42,12 +42,15 @@ namespace Opm
// to pressure in first perforation cell.
for (int w = 0; w < nw; ++w) {
const WellControls* ctrl = wells->ctrls[w];
if (ctrl->type[ctrl->current] == BHP) {
bhp_[w] = ctrl->target[ctrl->current];
} else {
if ((ctrl->current < 0) || // SHUT
(ctrl->type[ctrl->current] != BHP)) {
const int cell = wells->well_cells[wells->well_connpos[w]];
bhp_[w] = state.pressure()[cell];
}
else {
bhp_[w] = ctrl->target[ctrl->current];
}
}
perfrates_.resize(wells->well_connpos[nw], 0.0);
perfpress_.resize(wells->well_connpos[nw], -1e100);