22 #ifndef OPM_MULTISEGMENTWELL_GENERIC_HEADER_INCLUDED 23 #define OPM_MULTISEGMENTWELL_GENERIC_HEADER_INCLUDED 32 template<
typename Scalar,
typename IndexTraits>
class WellInterfaceGeneric;
33 enum class WellSegmentCompPressureDrop;
35 template<
typename Scalar,
typename IndexTraits>
class WellState;
37 template<
typename Scalar,
typename IndexTraits>
38 class MultisegmentWellGeneric
42 const WellSegments& segmentSet()
const;
46 int segmentNumberToIndex(
const int segment_number)
const;
52 explicit MultisegmentWellGeneric(WellInterfaceGeneric<Scalar, IndexTraits>& baseif);
55 void scaleSegmentRatesWithWellRates(
const std::vector<std::vector<int>>& segment_inlets,
56 const std::vector<std::vector<int>>& segment_perforations,
57 WellState<Scalar, IndexTraits>& well_state)
const;
58 void scaleSegmentPressuresWithBhp(WellState<Scalar, IndexTraits>& well_state)
const;
61 WellSegmentCompPressureDrop compPressureDrop()
const;
64 bool update_relaxation_factor(
const std::vector<Scalar>& measure_history, Scalar& relaxation_factor,
bool& regularize, DeferredLogger& deferred_logger)
const;
65 bool repeatedStagnation(
const std::vector<Scalar>& measure_history,
bool& regularize, DeferredLogger& deferred_logger)
const;
67 bool accelerationalPressureLossConsidered()
const;
68 bool frictionalPressureLossConsidered()
const;
70 Scalar getSegmentDp(
const int seg,
72 const std::vector<Scalar>& seg_dp)
const;
74 const WellInterfaceGeneric<Scalar, IndexTraits>& baseif_;
79 #endif // OPM_MULTISEGMENTWELL_GENERIC_HEADER_INCLUDED int numberOfSegments() const
number of segments for this well
Definition: MultisegmentWellGeneric.cpp:126
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
bool update_relaxation_factor(const std::vector< Scalar > &measure_history, Scalar &relaxation_factor, bool ®ularize, DeferredLogger &deferred_logger) const
Detect oscillation or stagnation based on the residual measure history.
Definition: MultisegmentWellGeneric.cpp:150