For testing: group tree balancing - #7220
Conversation
|
A brief (copilot) description of the algorithm: OverviewThe balancer distributes production targets across a group tree so that each The key simplifying assumption is that well phase-rate fractions are fixed
The result of this pre-processing step is a single Recursive balancing of a single subtree
1. Sorted distribution to direct childrenThe direct guide-rate children of the current node are collected and sorted A small ratio means the child will hit its limit early (before the group's For the common case where all direct children are individually constrained 2. Resorting when group-controlled children are presentAfter a group child is recursively balanced, its effective mode category can Whenever a newly balanced child turns out to be Individual but a later 3. Dynamic limit checking for transparent groups (no guide rate)Some groups sit between the current node and its guide-rate children but The guide-rate-to-limit ratio of a transparent group changes dynamically as Post-balancing cleanupAfter all subtrees are balanced, groups that have no limits of their own and |
|
jenkins build this failure_report please |
|
jenkins build this failure_report please |
|
Had a quick look at test failures. A few of them require closer investigation. Mostly minor differences likely due to that PR estimates strictest well-controls at beginning of time-step which may lead to different (hopefully better) initial guess for well-solves compared to master. |
|
jenkins build this failure_report please |
This PR contains experimental code for efficient group-tree balancing intended for improved robustness in cases with multi-layer/complex well/group-tree hierarchies. Under assumption of fixed well phase fractions, it recursively finds the correct control-mode configuration and rates by treating children in sorted order by their guiderate-to-limit ratios.
Current code can be tested by option
--enable-group-tree-balancer = true. This willbeginTimeStepbefore wells are solved (using potentials to determine strictest well-controls)updateWellControlsAndNetworkIteration(if well/groups have changed) after wells are solved (using IPR to determine strictest well-controls).Some preliminary observations: