22#ifndef OPM_MULTISEGMENTWELL_GENERIC_HEADER_INCLUDED
23#define OPM_MULTISEGMENTWELL_GENERIC_HEADER_INCLUDED
35template<
class Scalar>
class WellInterfaceGeneric;
36enum class WellSegmentCompPressureDrop;
38template<
class Scalar>
class WellState;
40template <
typename Scalar>
41class MultisegmentWellGeneric
45 const WellSegments& segmentSet()
const;
49 int segmentNumberToIndex(
const int segment_number)
const;
55 MultisegmentWellGeneric(WellInterfaceGeneric<Scalar>& baseif);
58 void scaleSegmentRatesWithWellRates(
const std::vector<std::vector<int>>& segment_inlets,
59 const std::vector<std::vector<int>>& segment_perforations,
60 WellState<Scalar>& well_state)
const;
61 void scaleSegmentPressuresWithBhp(WellState<Scalar>& well_state)
const;
64 WellSegmentCompPressureDrop compPressureDrop()
const;
69 bool& stagnate)
const;
71 bool accelerationalPressureLossConsidered()
const;
72 bool frictionalPressureLossConsidered()
const;
74 Scalar getSegmentDp(
const int seg,
76 const std::vector<Scalar>& seg_dp)
const;
78 const WellInterfaceGeneric<Scalar>& baseif_;
int numberOfSegments() const
number of segments for this well
Definition MultisegmentWellGeneric.cpp:116
void detectOscillations(const std::vector< Scalar > &measure_history, bool &oscillate, bool &stagnate) const
Detect oscillation or stagnation based on the residual measure history.
Definition MultisegmentWellGeneric.cpp:140
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilboundaryratevector.hh:37