mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Added welshut for production wells. Also added wellopen-handling.
This commit is contained in:
parent
2a631282fc
commit
c0717c0f7c
@ -618,6 +618,10 @@ namespace Opm
|
|||||||
if (cpos == -1 && mode != ProductionControl::GRUP) {
|
if (cpos == -1 && mode != ProductionControl::GRUP) {
|
||||||
THROW("Control mode type " << mode << " not present in well " << well_names[wix]);
|
THROW("Control mode type " << mode << " not present in well " << well_names[wix]);
|
||||||
}
|
}
|
||||||
|
// If it's shut, we complement the cpos
|
||||||
|
if (wcp_line.open_shut_flag_ == "SHUT") {
|
||||||
|
cpos = ~cpos; // So we can easily retrieve the cpos later
|
||||||
|
}
|
||||||
set_current_control(wix, cpos, w_);
|
set_current_control(wix, cpos, w_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -677,6 +681,28 @@ namespace Opm
|
|||||||
*/
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (deck.hasField("WELOPEN")) {
|
||||||
|
const WELOPEN& welopen = deck.getWELOPEN();
|
||||||
|
|
||||||
|
for (size_t i = 0; i < welopen.welopen.size(); ++i) {
|
||||||
|
WelopenLine line = welopen.welopen[i];
|
||||||
|
std::string wellname = line.well_;
|
||||||
|
std::map<std::string, int>::const_iterator it = well_names_to_index.find(wellname);
|
||||||
|
if (it == well_names_to_index.end()) {
|
||||||
|
THROW("Trying to open well with name: \"" << wellname<<"\" but it's not registered under WELSPECS.");
|
||||||
|
}
|
||||||
|
int index = it->second;
|
||||||
|
|
||||||
|
// We don't open already open wells
|
||||||
|
/// \TODO Should this perhaps be allowed? I.e. should it be if(well_shut) { shutwell(); } else { /* do nothing*/ }?
|
||||||
|
ASSERT(w_->ctrls[index]->current < 0);
|
||||||
|
|
||||||
|
// We revert back to it's original control.
|
||||||
|
// Note that this is OK as ~~ = id.
|
||||||
|
w_->ctrls[index]->current = ~w_->ctrls[index]->current;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Build the well_collection_ well group hierarchy.
|
// Build the well_collection_ well group hierarchy.
|
||||||
if (deck.hasField("GRUPTREE")) {
|
if (deck.hasField("GRUPTREE")) {
|
||||||
|
Loading…
Reference in New Issue
Block a user