|
opm-simulators
|
Calculate group-level constraints for production and injection. More...
#include <GroupConstraintCalculator.hpp>
Classes | |
| struct | ConstraintInfo |
| Generic result for a computed constraint and its control mode. More... | |
| struct | ProductionConstraintInfo |
| Result for a production constraint with its production control mode. More... | |
| struct | InjectionConstraintInfo |
| Result for an injection constraint with its injection control mode. More... | |
| struct | ProductionConstraintResult |
| Per-rate-type production constraints info for a group. More... | |
| class | GeneralCalculator |
| Shared logic for injector and producer paths. More... | |
| class | TopToBottomCalculator |
| Distribute a top-level constraint (target or limit) down to the requested group. More... | |
Public Types | |
| enum class | ConstraintType { Target , Limit } |
| Type of constraint to calculate: target or limit. | |
| using | ControlMode |
| Union of control-mode types used by group constraint calculations. | |
| using | FractionCalculator = GroupStateHelpers::FractionCalculator<Scalar, IndexTraits> |
| using | InjectionTargetCalculator = GroupStateHelpers::InjectionTargetCalculator<Scalar, IndexTraits> |
| using | TargetCalculator = GroupStateHelpers::TargetCalculator<Scalar, IndexTraits> |
| using | GroupStateHelperType = GroupStateHelper<Scalar, IndexTraits> |
Public Member Functions | |
| GroupConstraintCalculator (const BlackoilWellModelGeneric< Scalar, IndexTraits > &well_model, const GroupStateHelperType &group_state_helper) | |
| Construct a calculator bound to one report step and simulator state. | |
| DeferredLogger & | deferredLogger () |
| DeferredLogger & | deferredLogger () const |
| int | fipnum () const |
| std::optional< InjectionConstraintInfo > | groupInjectionTarget (const Group &group, ReservoirCoupling::Phase injection_phase) |
| Compute injection target for group in the given injection phase. | |
| std::optional< ProductionConstraintInfo > | groupProductionTarget (const Group &group) |
| Compute production target for group. | |
| std::optional< ProductionConstraintResult > | groupProductionConstraints (const Group &group) |
| Compute per-rate-type production constraints for a group. | |
| const GroupState< Scalar > & | groupState () const |
| const GuideRate & | guideRate () const |
| const PhaseUsageInfo< IndexTraits > & | phaseUsage () const |
| int | pvtreg () const |
| int | reportStepIdx () const |
| const std::vector< Scalar > & | resvCoeffsInj () const |
| const Schedule & | schedule () const |
| const SummaryState & | summaryState () const |
| const BlackoilWellModelGeneric< Scalar, IndexTraits > & | wellModel () const |
| const WellState< Scalar, IndexTraits > & | wellState () const |
| const GroupStateHelperType & | groupStateHelper () const |
Calculate group-level constraints for production and injection.
This class traverses the group hierarchy to determine effective control modes and constraints, applying guide-rate based distribution, sales limits (e.g., GCONSALE), efficiency factors, and RESV coefficients where applicable. It provides a uniform interface for both producers and injectors and consolidates common logic through nested helper classes.
| using Opm::GroupConstraintCalculator< Scalar, IndexTraits >::ControlMode |
Union of control-mode types used by group constraint calculations.
Holds Group::InjectionCMode for injection, Group::ProductionCMode for production; std::monostate denotes that no specific control applies.
| std::optional< typename GroupConstraintCalculator< Scalar, IndexTraits >::ProductionConstraintResult > Opm::GroupConstraintCalculator< Scalar, IndexTraits >::groupProductionConstraints | ( | const Group & | group | ) |
Compute per-rate-type production constraints for a group.
Returns the active target plus effective limits for all rate types with defined limits in the group hierarchy.