mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-09 10:15:34 -06:00
updating the group control limit for individual control wells
to provide a better standard for the wells under individual control to return to group control. For example, some wells get really big group control limit and switch to individual control, it is very difficult for them to return to group control with that kind of unreasonable fixed group limit.
This commit is contained in:
parent
15790ecb57
commit
f6b92dcc43
@ -793,6 +793,18 @@ namespace Opm
|
||||
const double children_guide_rate = children_[i]->productionGuideRate(true);
|
||||
children_[i]->applyProdGroupControl(prod_mode, (children_guide_rate / my_guide_rate) * rate_for_group_control, true);
|
||||
children_[i]->setTargetUpdated(true);
|
||||
} else {
|
||||
// for the well not under group control, we need to update their group control limit
|
||||
// to provide a mechanism for the well to return to group control
|
||||
// putting its own rate back to the rate_for_group_control for redistribution
|
||||
const double rate = std::abs(children_[i]->getProductionRate(well_rates, prod_mode) * children_[i]->efficiencyFactor());
|
||||
const double temp_rate_for_group_control = rate_for_group_control + rate;
|
||||
|
||||
// TODO: the following might not be the correct thing to do for mutliple-layer group
|
||||
const double children_guide_rate = children_[i]->productionGuideRate(false);
|
||||
const double temp_my_guide_rate = my_guide_rate + children_guide_rate;
|
||||
children_[i]->applyProdGroupControl(prod_mode, (children_guide_rate / temp_my_guide_rate) * temp_rate_for_group_control, false);
|
||||
children_[i]->setTargetUpdated(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user