22 #ifndef OPM_MULTISEGMENTWELL_GENERIC_HEADER_INCLUDED
23 #define OPM_MULTISEGMENTWELL_GENERIC_HEADER_INCLUDED
25 #include <opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.hpp>
36 class WellInterfaceGeneric;
39 template <
typename Scalar>
46 void scaleSegmentRatesWithWellRates(
WellState& well_state)
const;
47 void scaleSegmentPressuresWithBhp(
WellState& well_state)
const;
50 const WellSegments& segmentSet()
const;
53 WellSegments::CompPressureDrop compPressureDrop()
const;
57 int segmentNumberToIndex(
const int segment_number)
const;
62 double calculateThpFromBhp(
const std::vector<double>& rates,
67 std::optional<double> computeBhpAtThpLimitInj(
const std::function<std::vector<double>(
const double)>& frates,
68 const SummaryState& summary_state,
72 std::optional<double> computeBhpAtThpLimitProd(
const std::function<std::vector<double>(
const double)>& frates,
73 const SummaryState& summary_state,
74 const double maxPerfPress,
82 bool& stagnate)
const;
84 bool accelerationalPressureLossConsidered()
const;
85 bool frictionalPressureLossConsidered()
const;
98 std::vector<std::vector<int>> segment_perforations_;
101 std::vector<std::vector<int>> segment_inlets_;
103 std::vector<double> segment_depth_diffs_;
108 std::vector<double> perforation_segment_depth_diffs_;
Definition: DeferredLogger.hpp:57
Definition: MultisegmentWellGeneric.hpp:41
int numberOfSegments() const
number of segments for this well
Definition: MultisegmentWellGeneric.cpp:156
void detectOscillations(const std::vector< double > &measure_history, const int it, bool &oscillate, bool &stagnate) const
Detect oscillation or stagnation based on the residual measure history.
Definition: MultisegmentWellGeneric.cpp:222
Definition: WellInterfaceGeneric.hpp:51
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition: WellState.hpp:56
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:26