opm-simulators
Opm::GroupConstraintCalculator< Scalar, IndexTraits >::TopToBottomCalculator Class Reference

Distribute a top-level constraint (target or limit) down to the requested group. More...

#include <GroupConstraintCalculator.hpp>

Public Types

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

Public Member Functions

 TopToBottomCalculator (GeneralCalculator &parent_calculator, const Group &top_group, const Group &bottom_group, Scalar efficiency_factor)
 
std::optional< ConstraintInfocalculateGroupConstraint ()
 
ConstraintType constraintType () const
 
DeferredLoggerdeferredLogger ()
 
DeferredLoggerdeferredLogger () const
 
Group::ProductionCMode getProdCmode () const
 
std::optional< Group::ProductionCMode > getProdCmode (const Group &group) const
 
const GroupState< Scalar > & groupState () const
 
const GuideRate & guideRate () const
 
bool isInjectionConstraint () const
 
bool isProductionConstraint () const
 
const PhaseUsageInfo< IndexTraits > & phaseUsage () 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 WellState< Scalar, IndexTraits > & wellState () const
 
const GroupStateHelperTypegroupStateHelper () const
 

Static Public Attributes

static constexpr Scalar TARGET_RATE_TOLERANCE = 1e-12
 

Detailed Description

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

Distribute a top-level constraint (target or limit) down to the requested group.

After the effective top constraint (target or limit) and control mode are known, this helper walks the chain of groups from the top to the bottom group and applies either a production TargetCalculator or an InjectionTargetCalculator. A FractionCalculator is used where guide-rate fractions/reductions are required.


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