|
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... | |
| class | GeneralCalculator |
| Shared logic for injector and producer paths. More... | |
| struct | InjectionConstraintInfo |
| Result for an injection constraint with its injection control mode. More... | |
| struct | ProductionConstraintInfo |
| Result for a production constraint with its production control mode. More... | |
| struct | ProductionConstraintResult |
| Per-rate-type production constraints info for a group. More... | |
| class | TopToBottomCalculator |
| Distribute a top-level constraint (target or limit) down to the requested group. More... | |
Public Types | |
| enum | ConstraintType { Target, Limit } |
| Type of constraint to calculate: target or limit. More... | |
| using | ControlMode = std::variant< std::monostate, Group::InjectionCMode, Group::ProductionCMode > |
| Union of control-mode types used by group constraint calculations. More... | |
| 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. More... | |
| std::optional< ProductionConstraintInfo > | groupProductionTarget (const Group &group) |
| Compute production target for group. More... | |
| std::optional< ProductionConstraintResult > | groupProductionConstraints (const Group &group) |
| Compute per-rate-type production constraints for a group. More... | |
| 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 = std::variant< std::monostate, Group::InjectionCMode, Group::ProductionCMode > |
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.
|
strong |
Type of constraint to calculate: target or limit.
| std::optional< typename GroupConstraintCalculator< Scalar, IndexTraits >::InjectionConstraintInfo > Opm::GroupConstraintCalculator< Scalar, IndexTraits >::groupInjectionTarget | ( | const Group & | group, |
| ReservoirCoupling::Phase | injection_phase | ||
| ) |
Compute injection target for group in the given injection phase.
| 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.
| std::optional< typename GroupConstraintCalculator< Scalar, IndexTraits >::ProductionConstraintInfo > Opm::GroupConstraintCalculator< Scalar, IndexTraits >::groupProductionTarget | ( | const Group & | group | ) |
Compute production target for group.