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
7830083e9b
commit
713c833b0a
|
@ -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