213{
216
219
222
223
226
227 _fs->massFractions(
p,
T, Z, phase_state, fsp);
229
230
231 _fs->gasProperties(
p,
T, fsp);
232 ADReal gas_density = fsp[1].density;
233 ADReal gas_viscosity = fsp[1].viscosity;
234 ADReal gas_enthalpy = fsp[1].enthalpy;
235
237 _ncg_fp->rho_from_p_T(Z *
p,
T) + _water_fp->rho_from_p_T(_water_fp->vaporPressure(
T),
T);
239 (1.0 - Z) * _water_fp->mu_from_p_T(_water_fp->vaporPressure(
T),
T);
240 ADReal enthalpy = Z * _ncg_fp->h_from_p_T(Z *
p,
T) +
241 (1.0 - Z) * _water_fp->h_from_p_T(_water_fp->vaporPressure(
T),
T);
242
243 ABS_TEST(gas_density, density, 1.0e-10);
244 ABS_TEST(gas_viscosity, viscosity, 1.0e-10);
245 ABS_TEST(gas_enthalpy, enthalpy, 1.0e-10);
246
247
248 Real ddensity_dp = gas_density.derivatives()[_pidx];
249 Real ddensity_dT = gas_density.derivatives()[_Tidx];
250 Real ddensity_dZ = gas_density.derivatives()[_Zidx];
251 Real dviscosity_dp = gas_viscosity.derivatives()[_pidx];
252 Real dviscosity_dT = gas_viscosity.derivatives()[_Tidx];
253 Real dviscosity_dZ = gas_viscosity.derivatives()[_Zidx];
254 Real denthalpy_dp = gas_enthalpy.derivatives()[_pidx];
255 Real denthalpy_dT = gas_enthalpy.derivatives()[_Tidx];
256 Real denthalpy_dZ = gas_enthalpy.derivatives()[_Zidx];
257
258 const Real dp = 1.0e-1;
259 _fs->gasProperties(
p + dp,
T, fsp);
260 ADReal rho1 = fsp[1].density;
261 ADReal mu1 = fsp[1].viscosity;
262 ADReal h1 = fsp[1].enthalpy;
263
264 _fs->gasProperties(
p - dp,
T, fsp);
265 ADReal rho2 = fsp[1].density;
266 ADReal mu2 = fsp[1].viscosity;
267 ADReal h2 = fsp[1].enthalpy;
268
269 REL_TEST(ddensity_dp, (rho1 - rho2).
value() / (2.0 * dp), 1.0e-7);
270 REL_TEST(dviscosity_dp, (mu1 - mu2).
value() / (2.0 * dp), 1.0e-7);
271 REL_TEST(denthalpy_dp, (h1 - h2).
value() / (2.0 * dp), 5.0e-7);
272
273 const Real dT = 1.0e-3;
274 _fs->gasProperties(
p,
T + dT, fsp);
275 rho1 = fsp[1].density;
276 mu1 = fsp[1].viscosity;
277 h1 = fsp[1].enthalpy;
278
279 _fs->gasProperties(
p,
T - dT, fsp);
280 rho2 = fsp[1].density;
281 mu2 = fsp[1].viscosity;
282 h2 = fsp[1].enthalpy;
283
284 REL_TEST(ddensity_dT, (rho1 - rho2).
value() / (2.0 * dT), 1.0e-7);
285 REL_TEST(dviscosity_dT, (mu1 - mu2).
value() / (2.0 * dT), 1.0e-8);
286 REL_TEST(denthalpy_dT, (h1 - h2).
value() / (2.0 * dT), 1.0e-8);
287
288
289 const Real dZ = 1.0e-8;
290 _fs->massFractions(
p,
T, Z + dZ, phase_state, fsp);
291 _fs->gasProperties(
p,
T, fsp);
292 rho1 = fsp[1].density;
293 mu1 = fsp[1].viscosity;
294 h1 = fsp[1].enthalpy;
295
296 _fs->massFractions(
p,
T, Z - dZ, phase_state, fsp);
297 _fs->gasProperties(
p,
T, fsp);
298 rho2 = fsp[1].density;
299 mu2 = fsp[1].viscosity;
300 h2 = fsp[1].enthalpy;
301
302 REL_TEST(ddensity_dZ, (rho1 - rho2).
value() / (2.0 * dZ), 5.0e-8);
303 REL_TEST(dviscosity_dZ, (mu1 - mu2).
value() / (2.0 * dZ), 5.0e-8);
304 REL_TEST(denthalpy_dZ, (h1 - h2).
value() / (2.0 * dZ), 1.0e-8);
305
306
307
308 Z = 0.45;
310
311 _fs->massFractions(
p,
T, Z, phase_state, fsp);
313
314 _fs->gasProperties(
p,
T, fsp);
315 gas_density = fsp[1].density;
316 gas_viscosity = fsp[1].viscosity;
317 gas_enthalpy = fsp[1].enthalpy;
318 ddensity_dp = gas_density.derivatives()[_pidx];
319 ddensity_dT = gas_density.derivatives()[_Tidx];
320 ddensity_dZ = gas_density.derivatives()[_Zidx];
321 dviscosity_dp = gas_viscosity.derivatives()[_pidx];
322 dviscosity_dT = gas_viscosity.derivatives()[_Tidx];
323 dviscosity_dZ = gas_viscosity.derivatives()[_Zidx];
324 denthalpy_dp = gas_enthalpy.derivatives()[_pidx];
325 denthalpy_dT = gas_enthalpy.derivatives()[_Tidx];
326 denthalpy_dZ = gas_enthalpy.derivatives()[_Zidx];
327
328 _fs->massFractions(
p + dp,
T, Z, phase_state, fsp);
329 _fs->gasProperties(
p + dp,
T, fsp);
330 rho1 = fsp[1].density;
331 mu1 = fsp[1].viscosity;
332 h1 = fsp[1].enthalpy;
333
334 _fs->massFractions(
p - dp,
T, Z, phase_state, fsp);
335 _fs->gasProperties(
p - dp,
T, fsp);
336 rho2 = fsp[1].density;
337 mu2 = fsp[1].viscosity;
338 h2 = fsp[1].enthalpy;
339
340 REL_TEST(ddensity_dp, (rho1 - rho2).
value() / (2.0 * dp), 1.0e-7);
341 REL_TEST(dviscosity_dp, (mu1 - mu2).
value() / (2.0 * dp), 1.0e-7);
342 REL_TEST(denthalpy_dp, (h1 - h2).
value() / (2.0 * dp), 1.0e-7);
343
344 _fs->massFractions(
p,
T + dT, Z, phase_state, fsp);
345 _fs->gasProperties(
p,
T + dT, fsp);
346 rho1 = fsp[1].density;
347 mu1 = fsp[1].viscosity;
348 h1 = fsp[1].enthalpy;
349
350 _fs->massFractions(
p,
T - dT, Z, phase_state, fsp);
351 _fs->gasProperties(
p,
T - dT, fsp);
352 rho2 = fsp[1].density;
353 mu2 = fsp[1].viscosity;
354 h2 = fsp[1].enthalpy;
355
356 REL_TEST(ddensity_dT, (rho1 - rho2).
value() / (2.0 * dT), 1.0e-7);
357 REL_TEST(dviscosity_dT, (mu1 - mu2).
value() / (2.0 * dT), 1.0e-8);
358 REL_TEST(denthalpy_dT, (h1 - h2).
value() / (2.0 * dT), 1.0e-8);
359
360 _fs->massFractions(
p,
T, Z + dZ, phase_state, fsp);
361 _fs->gasProperties(
p,
T, fsp);
362 rho1 = fsp[1].density;
363 mu1 = fsp[1].viscosity;
364 h1 = fsp[1].enthalpy;
365
366 _fs->massFractions(
p,
T, Z - dZ, phase_state, fsp);
367 _fs->gasProperties(
p,
T, fsp);
368 rho2 = fsp[1].density;
369 mu2 = fsp[1].viscosity;
370 h2 = fsp[1].enthalpy;
371
372 ABS_TEST(ddensity_dZ, (rho1 - rho2).
value() / (2.0 * dZ), 1.0e-8);
373 ABS_TEST(dviscosity_dT, (mu1 - mu2).
value() / (2.0 * dZ), 1.0e-7);
374 ABS_TEST(denthalpy_dZ, (h1 - h2).
value() / (2.0 * dZ), 1.0e-8);
375}
CppType viscosity(const CppType &T, const Real molar_mass, const LennardJonesParameters &lj)
Chapman-Enskog viscosity of a dilute gas [Pa s].
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)