Opm::WellBhpThpCalculator< Scalar > Class Template Reference

Class for computing BHP limits. More...

#include <WellBhpThpCalculator.hpp>

Public Member Functions

 WellBhpThpCalculator (const WellInterfaceGeneric< Scalar > &well)
 Constructor sets reference to well. More...
 
bool wellHasTHPConstraints (const SummaryState &summaryState) const
 Checks if well has THP constraints. More...
 
Scalar getTHPConstraint (const SummaryState &summaryState) const
 Get THP constraint for well. More...
 
Scalar mostStrictBhpFromBhpLimits (const SummaryState &summaryState) const
 Obtain the most strict BHP from BHP limits. More...
 
Scalar calculateThpFromBhp (const std::vector< Scalar > &rates, const Scalar bhp, const Scalar rho, const std::optional< Scalar > &alq, const Scalar thp_limit, DeferredLogger &deferred_logger) const
 Calculates THP from BHP. More...
 
std::optional< Scalar > computeBhpAtThpLimitProd (const std::function< std::vector< Scalar >(const Scalar)> &frates, const SummaryState &summary_state, const Scalar maxPerfPress, const Scalar rho, const Scalar alq_value, const Scalar thp_limit, DeferredLogger &deferred_logger) const
 Compute BHP from THP limit for a producer. More...
 
std::optional< Scalar > computeBhpAtThpLimitInj (const std::function< std::vector< Scalar >(const Scalar)> &frates, const SummaryState &summary_state, const Scalar rho, const Scalar flo_rel_tol, const int max_iteration, const bool throwOnError, DeferredLogger &deferred_logger) const
 Compute BHP from THP limit for an injector. More...
 
void updateThp (const Scalar rho, const bool stop_or_zero_rate_target, const std::function< Scalar()> &alq_value, const std::array< unsigned, 3 > &active, WellState< Scalar > &well_state, const SummaryState &summary_state, DeferredLogger &deferred_logger) const
 Update THP. More...
 
template<class EvalWell >
EvalWell calculateBhpFromThp (const WellState< Scalar > &well_state, const std::vector< EvalWell > &rates, const Well &well, const SummaryState &summaryState, const Scalar rho, DeferredLogger &deferred_logger) const
 
Scalar calculateMinimumBhpFromThp (const WellState< Scalar > &well_state, const Well &well, const SummaryState &summaryState, const Scalar rho) const
 
bool isStableSolution (const WellState< Scalar > &well_state, const Well &well, const std::vector< Scalar > &rates, const SummaryState &summaryState) const
 
std::optional< Scalar > estimateStableBhp (const WellState< Scalar > &well_state, const Well &well, const std::vector< Scalar > &rates, const Scalar rho, const SummaryState &summaryState) const
 
std::pair< Scalar, Scalar > getFloIPR (const WellState< Scalar > &well_state, const Well &well, const SummaryState &summary_state) const
 

Static Public Member Functions

static bool bruteForceBracketCommonTHP (const std::function< Scalar(const Scalar)> &eq, const std::array< Scalar, 2 > &range, Scalar &low, Scalar &high, std::optional< Scalar > &approximate_solution, const Scalar &limit, DeferredLogger &deferred_logger)
 Find limits using brute-force solver. More...
 
static bool bruteForceBracketCommonTHP (const std::function< Scalar(const Scalar)> &eq, Scalar &min_thp, Scalar &max_thp)
 Find limits using brute-force solver. More...
 

Detailed Description

template<class Scalar>
class Opm::WellBhpThpCalculator< Scalar >

Class for computing BHP limits.

Constructor & Destructor Documentation

◆ WellBhpThpCalculator()

template<class Scalar >
Opm::WellBhpThpCalculator< Scalar >::WellBhpThpCalculator ( const WellInterfaceGeneric< Scalar > &  well)
inline

Constructor sets reference to well.

Member Function Documentation

◆ bruteForceBracketCommonTHP() [1/2]

template<class Scalar >
static bool Opm::WellBhpThpCalculator< Scalar >::bruteForceBracketCommonTHP ( const std::function< Scalar(const Scalar)> &  eq,
const std::array< Scalar, 2 > &  range,
Scalar &  low,
Scalar &  high,
std::optional< Scalar > &  approximate_solution,
const Scalar &  limit,
DeferredLogger deferred_logger 
)
static

Find limits using brute-force solver.

Referenced by Opm::BlackoilWellModel< TypeTag >::computeWellGroupThp().

◆ bruteForceBracketCommonTHP() [2/2]

template<class Scalar >
static bool Opm::WellBhpThpCalculator< Scalar >::bruteForceBracketCommonTHP ( const std::function< Scalar(const Scalar)> &  eq,
Scalar &  min_thp,
Scalar &  max_thp 
)
static

Find limits using brute-force solver.

◆ calculateBhpFromThp()

template<class Scalar >
template<class EvalWell >
EvalWell Opm::WellBhpThpCalculator< Scalar >::calculateBhpFromThp ( const WellState< Scalar > &  well_state,
const std::vector< EvalWell > &  rates,
const Well &  well,
const SummaryState &  summaryState,
const Scalar  rho,
DeferredLogger deferred_logger 
) const

◆ calculateMinimumBhpFromThp()

template<class Scalar >
Scalar Opm::WellBhpThpCalculator< Scalar >::calculateMinimumBhpFromThp ( const WellState< Scalar > &  well_state,
const Well &  well,
const SummaryState &  summaryState,
const Scalar  rho 
) const

◆ calculateThpFromBhp()

template<class Scalar >
Scalar Opm::WellBhpThpCalculator< Scalar >::calculateThpFromBhp ( const std::vector< Scalar > &  rates,
const Scalar  bhp,
const Scalar  rho,
const std::optional< Scalar > &  alq,
const Scalar  thp_limit,
DeferredLogger deferred_logger 
) const

◆ computeBhpAtThpLimitInj()

template<class Scalar >
std::optional< Scalar > Opm::WellBhpThpCalculator< Scalar >::computeBhpAtThpLimitInj ( const std::function< std::vector< Scalar >(const Scalar)> &  frates,
const SummaryState &  summary_state,
const Scalar  rho,
const Scalar  flo_rel_tol,
const int  max_iteration,
const bool  throwOnError,
DeferredLogger deferred_logger 
) const

Compute BHP from THP limit for an injector.

Referenced by Opm::StandardWell< TypeTag >::computeBhpAtThpLimitInj().

◆ computeBhpAtThpLimitProd()

template<class Scalar >
std::optional< Scalar > Opm::WellBhpThpCalculator< Scalar >::computeBhpAtThpLimitProd ( const std::function< std::vector< Scalar >(const Scalar)> &  frates,
const SummaryState &  summary_state,
const Scalar  maxPerfPress,
const Scalar  rho,
const Scalar  alq_value,
const Scalar  thp_limit,
DeferredLogger deferred_logger 
) const

Compute BHP from THP limit for a producer.

Referenced by Opm::StandardWell< TypeTag >::computeBhpAtThpLimitProdWithAlq().

◆ estimateStableBhp()

template<class Scalar >
std::optional< Scalar > Opm::WellBhpThpCalculator< Scalar >::estimateStableBhp ( const WellState< Scalar > &  well_state,
const Well &  well,
const std::vector< Scalar > &  rates,
const Scalar  rho,
const SummaryState &  summaryState 
) const

◆ getFloIPR()

template<class Scalar >
std::pair< Scalar, Scalar > Opm::WellBhpThpCalculator< Scalar >::getFloIPR ( const WellState< Scalar > &  well_state,
const Well &  well,
const SummaryState &  summary_state 
) const

◆ getTHPConstraint()

template<class Scalar >
Scalar Opm::WellBhpThpCalculator< Scalar >::getTHPConstraint ( const SummaryState &  summaryState) const

Get THP constraint for well.

◆ isStableSolution()

template<class Scalar >
bool Opm::WellBhpThpCalculator< Scalar >::isStableSolution ( const WellState< Scalar > &  well_state,
const Well &  well,
const std::vector< Scalar > &  rates,
const SummaryState &  summaryState 
) const

◆ mostStrictBhpFromBhpLimits()

◆ updateThp()

template<class Scalar >
void Opm::WellBhpThpCalculator< Scalar >::updateThp ( const Scalar  rho,
const bool  stop_or_zero_rate_target,
const std::function< Scalar()> &  alq_value,
const std::array< unsigned, 3 > &  active,
WellState< Scalar > &  well_state,
const SummaryState &  summary_state,
DeferredLogger deferred_logger 
) const

Update THP.

◆ wellHasTHPConstraints()

template<class Scalar >
bool Opm::WellBhpThpCalculator< Scalar >::wellHasTHPConstraints ( const SummaryState &  summaryState) const

Checks if well has THP constraints.


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