opm-simulators
Loading...
Searching...
No Matches
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 GroupStateHelperType & groupStateHelper () 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: