44 using Scalar =
typename FluidSystem::Scalar;
49 std::vector<Scalar> b_perf;
50 std::vector<Scalar> rsmax_perf;
51 std::vector<Scalar> rvmax_perf;
52 std::vector<Scalar> rvwmax_perf;
53 std::vector<Scalar> rswmax_perf;
54 std::vector<Scalar> surf_dens_perf;
57 void computePropertiesForPressures(
const WellState& well_state,
58 const std::function<Scalar(
int,
int)>& getTemperature,
59 const std::function<Scalar(
int)>& getSaltConcentration,
60 const std::function<
int(
int)>& pvtRegionIdx,
61 const std::function<Scalar(
int)>& solventInverseFormationVolumeFactor,
62 const std::function<Scalar(
int)>& solventRefDensity,
67 const std::function<Scalar(
int,
int)>& invB,
68 const std::function<Scalar(
int,
int)>& mobility,
69 const std::function<Scalar(
int)>& solventInverseFormationVolumeFactor,
70 const std::function<Scalar(
int)>& solventMobility,
85 Scalar
rho(
const typename std::vector<Scalar>::size_type i)
const
87 return (i < this->perf_densities_.size())
88 ? this->perf_densities_[i]
94 {
return perf_pressure_diffs_[perf]; }
96 using Eval =
typename WellInterfaceIndices<FluidSystem,Indices>::Eval;
99 Eval connectionRateBrine(
double& rate,
100 const double vap_wat_rate,
101 const std::vector<EvalWell>& cq_s,
102 const std::variant<Scalar,EvalWell>& saltConcentration)
const;
104 Eval connectionRateFoam(
const std::vector<EvalWell>& cq_s,
105 const std::variant<Scalar,EvalWell>& foamConcentration,
106 const Phase transportPhase,
109 std::tuple<Eval,EvalWell>
110 connectionRatePolymer(
double& rate,
111 const std::vector<EvalWell>& cq_s,
112 const std::variant<Scalar,EvalWell>& polymerConcentration)
const;
114 std::tuple<Eval,Eval,Eval>
115 connectionRatesMICP(
const std::vector<EvalWell>& cq_s,
116 const std::variant<Scalar,EvalWell>& microbialConcentration,
117 const std::variant<Scalar,EvalWell>& oxygenConcentration,
118 const std::variant<Scalar,EvalWell>& ureaConcentration)
const;
120 std::tuple<Eval,EvalWell>
121 connectionRatezFraction(
double& rate,
122 const double dis_gas_rate,
123 const std::vector<EvalWell>& cq_s,
124 const std::variant<Scalar, std::array<EvalWell,2>>& solventConcentration)
const;
127 void computePressureDelta();
131 void computeDensities(
const std::vector<Scalar>& perfComponentRates,
132 const Properties& props,
137 std::vector<Scalar> perf_densities_;
138 std::vector<Scalar> perf_pressure_diffs_;
void computeProperties(const WellState &well_state, const std::function< Scalar(int, int)> &invB, const std::function< Scalar(int, int)> &mobility, const std::function< Scalar(int)> &solventInverseFormationVolumeFactor, const std::function< Scalar(int)> &solventMobility, const Properties &props, DeferredLogger &deferred_logger)
Compute connection properties (densities, pressure drop, ...)
Definition StandardWellConnections.cpp:424
Scalar rho(const typename std::vector< Scalar >::size_type i) const
Returns density for specific perforation/connection.
Definition StandardWellConnections.hpp:85
DenseAd::DynamicEvaluation< Scalar, numStaticWellEq+Indices::numEq+1 > EvalWell
Evaluation for the well equations.
Definition StandardWellPrimaryVariables.hpp:87