22#ifndef OPM_MULTISEGMENTWELL_SEGMENTS_HEADER_INCLUDED
23#define OPM_MULTISEGMENTWELL_SEGMENTS_HEADER_INCLUDED
25#include <opm/simulators/wells/MultisegmentWellPrimaryVariables.hpp>
33class WellInterfaceGeneric;
35template<
typename Flu
idSystem,
typename Indices,
typename Scalar>
39 using EvalWell =
typename PrimaryVariables::EvalWell;
45 void computeFluidProperties(
const EvalWell& temperature,
46 const EvalWell& saltConcentration,
54 EvalWell getHydroPressureLoss(
const int seg)
const;
58 const int perf)
const;
60 EvalWell getSurfaceVolume(
const EvalWell& temperature,
61 const EvalWell& saltConcentration,
63 const int pvt_region_index,
64 const int seg_idx)
const;
66 EvalWell getFrictionPressureLoss(
const int seg)
const;
69 EvalWell pressureDropSpiralICD(
const int seg)
const;
72 EvalWell pressureDropAutoICD(
const int seg,
73 const UnitSystem& unit_system)
const;
76 EvalWell pressureDropValve(
const int seg)
const;
79 EvalWell accelerationPressureLoss(
const int seg)
const;
81 const std::vector<std::vector<int>>& inlets()
const
86 const std::vector<std::vector<int>>& perforations()
const
91 int upwinding_segment(
const int seg)
const
93 return upwinding_segments_[seg];
96 Scalar getRefDensity()
const
98 return densities_[0].value();
101 const EvalWell& density(
const int seg)
const
103 return densities_[seg];
106 Scalar perforation_depth_diff(
const int perf)
const
108 return perforation_depth_diffs_[perf];
121 std::vector<std::vector<int>> perforations_;
126 std::vector<Scalar> perforation_depth_diffs_;
129 std::vector<std::vector<int>> inlets_;
131 std::vector<Scalar> depth_diffs_;
135 std::vector<EvalWell> densities_;
138 std::vector<EvalWell> mass_rates_;
141 std::vector<EvalWell> viscosities_;
144 std::vector<int> upwinding_segments_;
146 std::vector<std::vector<EvalWell>> phase_densities_;
147 std::vector<std::vector<EvalWell>> phase_fractions_;
148 std::vector<std::vector<EvalWell>> phase_viscosities_;
Definition: DeferredLogger.hpp:57
Definition: MultisegmentWellPrimaryVariables.hpp:42
Definition: MultisegmentWellSegments.hpp:37
Scalar getPressureDiffSegPerf(const int seg, const int perf) const
Pressure difference between segment and perforation.
Definition: MultisegmentWellSegments.cpp:331
void updateUpwindingSegments(const PrimaryVariables &primary_variables)
Update upwinding segments.
Definition: MultisegmentWellSegments.cpp:297
Definition: WellInterfaceGeneric.hpp:51
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27