107 assert((
int )T.size() == ncomp * (
int )P.size() && (
int )T.size() == ncomp * (
int )R.size());
108 if (user_uniform_sigma_ > 0)
109 for (
int i =0; i < (int)P.size(); i++) R[i * ncomp +
id] = user_uniform_sigma_;
112 if (ncomp == 1)
return compute_eos_field(P, T, R, EOS_prop_sat[(
int)SAT::SIGMA][0], EOS_prop_sat[(
int)SAT::SIGMA][1]);
115 VectorD temp_((
int)P.size());
118 for (
auto& val : TT) val = T[i_it * ncomp + id];
119 err_ =
compute_eos_field(P, TT, R, EOS_prop_sat[(
int)SAT::SIGMA][0], EOS_prop_sat[(
int)SAT::SIGMA][1]);
120 for (
auto& val : TT) T[i_it * ncomp + id] = val;
126 Cerr <<
"EOS_to_TRUST_Sat_generique::" << __func__ <<
" should not be called since TRUST is not compiled with the EOS library !!! " << finl;
153 assert((
int )sats.size() == 7);
155 SpanD dPTs__ = sats.at(SAT::T_SAT_DP), Hvs__ = sats.at(SAT::HV_SAT), Hls__ = sats.at(SAT::HL_SAT),
156 dPHvs__ = sats.at(SAT::HV_SAT_DP), dPHls__ = sats.at(SAT::HL_SAT_DP), Lvap__ = sats.at(SAT::LV_SAT), dPLvap__ = sats.at(SAT::LV_SAT_DP);
158 const int sz = (int) P.size(), nb_out = 5;
160 NEPTUNE::ArrOfInt tmp(sz);
161 NEPTUNE::EOS_Error_Field ferr(tmp);
162 NEPTUNE::EOS_Fields flds_out(nb_out);
163 NEPTUNE::EOS_Field P_fld(
"Pressure",
"P", sz, (
double*) P.begin());
167 for (
auto &itr : sats)
169 SAT prop_ = itr.first;
170 SpanD span_ = itr.second;
171 assert(ncomp * (
int )P.size() == (
int )span_.size());
172 if (prop_ != SAT::LV_SAT && prop_ != SAT::LV_SAT_DP)
173 flds_out[i_out++] = NEPTUNE::EOS_Field(EOS_prop_sat[(
int) prop_][0], EOS_prop_sat[(
int) prop_][1], (
int) span_.size(), (
double*) span_.begin());
175 err_ = (int)fluide->compute(P_fld, flds_out, ferr);
178 for (
int i = 0; i < sz; i++)
180 Lvap__[i] = Hvs__[i] - Hls__[i];
181 dPLvap__[i] = dPHvs__[i] - dPHls__[i];
187 for (
auto &itr : sats) assert(ncomp * (
int )P.size() == (
int )itr.second.size());
189 VectorD dPTs(sz), Hvs(sz), Hls(sz), dPHvs(sz), dPHls(sz), Lvap(sz), dPLvap;
190 SpanD dPTs_(dPTs), Hvs_(Hvs), Hls_(Hls), dPHvs_(dPHvs), dPHls_(dPHls), Lvap_(Lvap), dPLvap_(dPLvap);
192 MSatSpanD sats_loc = { { SAT::T_SAT_DP, dPTs_ }, { SAT::HV_SAT, Hvs_ }, { SAT::HL_SAT, Hls_ }, { SAT::HV_SAT_DP, dPHvs_ }, { SAT::HL_SAT_DP, dPHls_ } };
194 for (
auto &itr : sats_loc)
196 SAT prop_ = itr.first;
197 SpanD span_ = itr.second;
198 flds_out[i_out++] = NEPTUNE::EOS_Field(EOS_prop_sat[(
int) prop_][0], EOS_prop_sat[(
int) prop_][1], (
int) span_.size(), (
double*) span_.begin());
201 err_ = (int)fluide->compute(P_fld, flds_out, ferr);
203 for (
int i = 0; i < sz; i++)
205 dPTs__[i * ncomp + id] = dPTs_[i];
206 Hvs__[i * ncomp + id] = Hvs_[i];
207 Hls__[i * ncomp + id] = Hls_[i];
208 dPHvs__[i * ncomp + id] = dPHvs_[i];
209 dPHls__[i * ncomp + id] = dPHls_[i];
210 Lvap__[i * ncomp + id] = Hvs_[i] - Hls_[i];
211 dPLvap__[i * ncomp + id] = dPHvs_[i] - dPHls_[i];
217 Cerr <<
"EOS_to_TRUST_Sat_generique::" << __func__ <<
" should not be called since TRUST is not compiled with the EOS library !!! " << finl;
226 const SpanD P = input.at(
"pression");
228 int i_out = 0, nb_out = (int) sats.size(), sz = (int) P.size();
229 NEPTUNE::ArrOfInt tmp(sz);
230 NEPTUNE::EOS_Error_Field ferr(tmp);
231 NEPTUNE::EOS_Fields flds_out(nb_out);
232 NEPTUNE::EOS_Field P_fld(
"Pressure",
"P", (
int) P.size(), (
double*) P.begin());
234 for (
auto &itr : sats)
236 SAT prop_ = itr.first;
237 SpanD span_ = itr.second;
238 assert(sz == (
int ) span_.size());
239 flds_out[i_out++] = NEPTUNE::EOS_Field(EOS_prop_sat[(
int) prop_][0], EOS_prop_sat[(
int) prop_][1], (
int) span_.size(), (
double*) span_.begin());
242 return (
int)fluide->compute(P_fld, flds_out, ferr);
244 Cerr <<
"EOS_to_TRUST_Sat_generique::" << __func__ <<
" should not be called since TRUST is not compiled with the EOS library !!! " << finl;