opm-simulators
Loading...
Searching...
No Matches
Opm::GroupConstraintCalculator< Scalar, IndexTraits >::GeneralCalculator Class Reference

Shared logic for injector and producer paths. More...

#include <GroupConstraintCalculator.hpp>

Public Types

using TargetCalculatorType = std::variant<std::monostate, TargetCalculator, InjectionTargetCalculator>

Public Member Functions

 GeneralCalculator (GroupConstraintCalculator &calculator, const Group &original_group, std::optional< ReservoirCoupling::Phase > injection_phase=std::nullopt)
 GeneralCalculator (GroupConstraintCalculator &calculator, const Group &original_group, Group::ProductionCMode explicit_cmode)
 Construct for computing a limit for an explicit production rate type.
std::optional< ConstraintInfocalculateGroupConstraint ()
ConstraintType constraintType () const
DeferredLoggerdeferredLogger ()
DeferredLoggerdeferredLogger () const
int fipnum () const
const GConSale & gconsale () const
const GroupState< Scalar > & groupState () const
TargetCalculatorType getInjectionTargetCalculator (const Group &group)
TargetCalculatorType getProductionTargetCalculator (const Group &group) const
TargetCalculatorType getTargetCalculator (const Group &group)
std::optional< ConstraintInfogetGroupConstraintNoGuideRate (const Group &group)
std::optional< Group::ProductionCMode > getProdCmode (const Group &group) const
Group::ProductionCMode getProdCmode () const
const GuideRate & guideRate () const
bool hasGuideRate (const Group &group) const
bool hasGuideRate (const std::string &name) const
bool hasHigherLevelControlOrNoLimit (const Group &group)
Phase injectionPhase_ () const
bool isInjectionConstraint () const
bool isProductionConstraint () const
const Group & originalGroup () const
const PhaseUsageInfo< IndexTraits > & phaseUsage () const
int pvtreg () const
int reportStepIdx () const
const std::vector< Scalar > & resvCoeffsInj () const
const std::vector< Scalar > & resvCoeffsProd () 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

Detailed Description

template<class Scalar, class IndexTraits>
class Opm::GroupConstraintCalculator< Scalar, IndexTraits >::GeneralCalculator

Shared logic for injector and producer paths.

Provides the common context (schedule, states, guide rates, phase usage, PVT/FIP regions, logger) and computes a target for the requested bottom group. The optional injection_phase indicates whether the calculation is for injection (has value) or production (no value). Internally it selects phase-dependent RESV coefficients and performs a recursive traversal to accumulate limits and select the effective control mode.

Constructor & Destructor Documentation

◆ GeneralCalculator()

template<class Scalar, class IndexTraits>
Opm::GroupConstraintCalculator< Scalar, IndexTraits >::GeneralCalculator::GeneralCalculator ( GroupConstraintCalculator & calculator,
const Group & original_group,
Group::ProductionCMode explicit_cmode )

Construct for computing a limit for an explicit production rate type.

The recursion stops at ancestors with has_control(explicit_cmode).


The documentation for this class was generated from the following files: