47 using Scalar =
typename FluidSystem::Scalar;
48 using IndexTraits =
typename FluidSystem::IndexTraitsType;
53 std::vector<Scalar> b_perf{};
54 std::vector<Scalar> rsmax_perf{};
55 std::vector<Scalar> rvmax_perf{};
56 std::vector<Scalar> rvwmax_perf{};
57 std::vector<Scalar> rswmax_perf{};
58 std::vector<Scalar> surf_dens_perf{};
63 std::function<Scalar(
int,
int)> getTemperature{};
64 std::function<Scalar(
int)> getSaltConcentration{};
65 std::function<
int(
int)> pvtRegionIdx{};
66 std::function<Scalar(
int)> solventInverseFormationVolumeFactor{};
67 std::function<Scalar(
int)> solventRefDensity{};
72 std::function<
void(
int,
const std::vector<int>&, std::vector<Scalar>&)> mobility{};
73 std::function<
void(
int,
const std::vector<int>&, std::vector<Scalar>&)> densityInCell{};
98 Scalar
rho(
const typename std::vector<Scalar>::size_type i)
const
101 ? this->perf_densities_[i]
107 {
return perf_pressure_diffs_[
perf]; }
109 using Eval =
typename WellInterfaceIndices<FluidSystem, Indices>::Eval;
112 Eval connectionRateBrine(Scalar& rate,
114 const std::vector<EvalWell>&
cq_s,
115 const std::variant<Scalar,EvalWell>& saltConcentration)
const;
117 Eval connectionRateFoam(
const std::vector<EvalWell>&
cq_s,
118 const std::variant<Scalar,EvalWell>& foamConcentration,
119 const Phase transportPhase,
122 std::tuple<Eval,EvalWell>
123 connectionRatePolymer(Scalar& rate,
124 const std::vector<EvalWell>&
cq_s,
125 const std::variant<Scalar,EvalWell>& polymerConcentration)
const;
127 Eval connectionRateBioeffects(Scalar& rate,
129 const std::vector<EvalWell>&
cq_s,
130 const std::variant<Scalar,EvalWell>& microbialConcentration)
const;
132 std::tuple<Eval,Eval,Eval>
133 connectionRatesMICP(Scalar&
rate_m,
136 const std::vector<EvalWell>&
cq_s,
137 const std::variant<Scalar,EvalWell>& microbialConcentration,
138 const std::variant<Scalar,EvalWell>& oxygenConcentration,
139 const std::variant<Scalar,EvalWell>& ureaConcentration)
const;
141 std::tuple<Eval,EvalWell>
142 connectionRatezFraction(Scalar& rate,
144 const std::vector<EvalWell>&
cq_s,
148 void computePressureDelta();
153 const Properties&
props,
156 void computeDensitiesForStoppedProducer(
const DensityPropertyFunctions&
prop_func);
161 void initialiseConnectionMixture(
const int num_comp,
168 copyInPerforationRates(
const Properties&
props,
173 std::vector<Scalar> perf_densities_;
174 std::vector<Scalar> perf_pressure_diffs_;
void computeProperties(const bool stop_or_zero_rate_target, const WellState< Scalar, IndexTraits > &well_state, const DensityPropertyFunctions &prop_func, const Properties &props, DeferredLogger &deferred_logger)
Compute connection properties (densities, pressure drop, ...)
Definition StandardWellConnections.cpp:671
Scalar rho(const typename std::vector< Scalar >::size_type i) const
Returns density for specific perforation/connection.
Definition StandardWellConnections.hpp:98
DenseAd::DynamicEvaluation< Scalar, numStaticWellEq+Indices::numEq+1 > EvalWell
Evaluation for the well equations.
Definition StandardWellPrimaryVariables.hpp:88
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:240