Opm::GroupTargetCalculator< Scalar, IndexTraits > Class Template Reference

#include <GroupTargetCalculator.hpp>

Classes

class  GeneralCalculator
 
struct  InjectionTargetInfo
 
struct  ProductionTargetInfo
 
struct  TargetInfo
 
class  TopToBottomCalculator
 

Public Types

enum class  TargetType { Injection , Production }
 
using ControlMode = std::variant< std::monostate, Group::InjectionCMode, Group::ProductionCMode >
 
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

 GroupTargetCalculator (const BlackoilWellModelGeneric< Scalar, IndexTraits > &well_model, const GroupStateHelperType &group_state_helper, DeferredLogger &deferred_logger)
 
DeferredLoggerdeferredLogger ()
 
int fipnum () const
 
std::optional< InjectionTargetInfogroupInjectionTarget (const Group &group, ReservoirCoupling::Phase injection_phase)
 
std::optional< ProductionTargetInfogroupProductionTarget (const Group &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 GroupStateHelperTypegroupStateHelper () const
 

Detailed Description

template<class Scalar, class IndexTraits>
class Opm::GroupTargetCalculator< Scalar, IndexTraits >

Calculate group-level targets for production and injection.

This class traverses the group hierarchy to determine effective control modes and targets, 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.

Member Typedef Documentation

◆ ControlMode

template<class Scalar , class IndexTraits >
using Opm::GroupTargetCalculator< Scalar, IndexTraits >::ControlMode = std::variant< std::monostate, Group::InjectionCMode, Group::ProductionCMode >

Union of control-mode types used by group target calculations. Holds Group::InjectionCMode for injection, Group::ProductionCMode for production; std::monostate denotes that no specific control applies.

◆ FractionCalculator

template<class Scalar , class IndexTraits >
using Opm::GroupTargetCalculator< Scalar, IndexTraits >::FractionCalculator = GroupStateHelpers::FractionCalculator<Scalar, IndexTraits>

◆ GroupStateHelperType

template<class Scalar , class IndexTraits >
using Opm::GroupTargetCalculator< Scalar, IndexTraits >::GroupStateHelperType = GroupStateHelper<Scalar, IndexTraits>

◆ InjectionTargetCalculator

template<class Scalar , class IndexTraits >
using Opm::GroupTargetCalculator< Scalar, IndexTraits >::InjectionTargetCalculator = GroupStateHelpers::InjectionTargetCalculator<Scalar, IndexTraits>

◆ TargetCalculator

template<class Scalar , class IndexTraits >
using Opm::GroupTargetCalculator< Scalar, IndexTraits >::TargetCalculator = GroupStateHelpers::TargetCalculator<Scalar, IndexTraits>

Member Enumeration Documentation

◆ TargetType

template<class Scalar , class IndexTraits >
enum class Opm::GroupTargetCalculator::TargetType
strong
Enumerator
Injection 
Production 

Constructor & Destructor Documentation

◆ GroupTargetCalculator()

template<class Scalar , class IndexTraits >
Opm::GroupTargetCalculator< Scalar, IndexTraits >::GroupTargetCalculator ( const BlackoilWellModelGeneric< Scalar, IndexTraits > &  well_model,
const GroupStateHelperType group_state_helper,
DeferredLogger deferred_logger 
)

Construct a calculator bound to one report step and simulator state.

Member Function Documentation

◆ deferredLogger()

template<class Scalar , class IndexTraits >
DeferredLogger & Opm::GroupTargetCalculator< Scalar, IndexTraits >::deferredLogger ( )
inline

◆ fipnum()

template<class Scalar , class IndexTraits >
int Opm::GroupTargetCalculator< Scalar, IndexTraits >::fipnum ( ) const
inline

◆ groupInjectionTarget()

template<class Scalar , class IndexTraits >
std::optional< InjectionTargetInfo > Opm::GroupTargetCalculator< Scalar, IndexTraits >::groupInjectionTarget ( const Group &  group,
ReservoirCoupling::Phase  injection_phase 
)

Compute injection target for group in the given injection phase.

◆ groupProductionTarget()

template<class Scalar , class IndexTraits >
std::optional< ProductionTargetInfo > Opm::GroupTargetCalculator< Scalar, IndexTraits >::groupProductionTarget ( const Group &  group)

Compute production target for group.

◆ groupState()

template<class Scalar , class IndexTraits >
const GroupState< Scalar > & Opm::GroupTargetCalculator< Scalar, IndexTraits >::groupState ( ) const
inline

◆ groupStateHelper()

template<class Scalar , class IndexTraits >
const GroupStateHelperType & Opm::GroupTargetCalculator< Scalar, IndexTraits >::groupStateHelper ( ) const
inline

◆ guideRate()

template<class Scalar , class IndexTraits >
const GuideRate & Opm::GroupTargetCalculator< Scalar, IndexTraits >::guideRate ( ) const
inline

◆ phaseUsage()

template<class Scalar , class IndexTraits >
const PhaseUsageInfo< IndexTraits > & Opm::GroupTargetCalculator< Scalar, IndexTraits >::phaseUsage ( ) const
inline

◆ pvtreg()

template<class Scalar , class IndexTraits >
int Opm::GroupTargetCalculator< Scalar, IndexTraits >::pvtreg ( ) const
inline

◆ reportStepIdx()

template<class Scalar , class IndexTraits >
int Opm::GroupTargetCalculator< Scalar, IndexTraits >::reportStepIdx ( ) const
inline

◆ resvCoeffsInj()

template<class Scalar , class IndexTraits >
const std::vector< Scalar > & Opm::GroupTargetCalculator< Scalar, IndexTraits >::resvCoeffsInj ( ) const
inline

◆ schedule()

template<class Scalar , class IndexTraits >
const Schedule & Opm::GroupTargetCalculator< Scalar, IndexTraits >::schedule ( ) const
inline

◆ summaryState()

template<class Scalar , class IndexTraits >
const SummaryState & Opm::GroupTargetCalculator< Scalar, IndexTraits >::summaryState ( ) const
inline

◆ wellModel()

template<class Scalar , class IndexTraits >
const BlackoilWellModelGeneric< Scalar, IndexTraits > & Opm::GroupTargetCalculator< Scalar, IndexTraits >::wellModel ( ) const
inline

◆ wellState()

template<class Scalar , class IndexTraits >
const WellState< Scalar, IndexTraits > & Opm::GroupTargetCalculator< Scalar, IndexTraits >::wellState ( ) const
inline

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