117 REL_TEST(_tab_pT_from_fp->rho_from_p_T(
p,
T), _co2_fp->rho_from_p_T(
p,
T), 1.0e-4);
118 REL_TEST(_tab_pT_from_fp->h_from_p_T(
p,
T), _co2_fp->h_from_p_T(
p,
T), 1.0e-4);
119 REL_TEST(_tab_pT_from_fp->e_from_p_T(
p,
T), _co2_fp->e_from_p_T(
p,
T), 1.0e-4);
120 REL_TEST(_tab_pT_from_fp->mu_from_p_T(
p,
T), _co2_fp->mu_from_p_T(
p,
T), 1.0e-4);
121 REL_TEST(_tab_pT_from_fp->k_from_p_T(
p,
T), _co2_fp->k_from_p_T(
p,
T), 1.0e-4);
122 REL_TEST(_tab_pT_from_fp->cp_from_p_T(
p,
T), _co2_fp->cp_from_p_T(
p,
T), 1.0e-4);
123 REL_TEST(_tab_pT_from_fp->cv_from_p_T(
p,
T), _co2_fp->cv_from_p_T(
p,
T), 1.0e-4);
124 REL_TEST(_tab_pT_from_fp->s_from_p_T(
p,
T), _co2_fp->s_from_p_T(
p,
T), 1.0e-4);
127 Real
rho, drho_dp, drho_dT, rhoc, drhoc_dp, drhoc_dT;
128 _tab_pT_from_fp->rho_from_p_T(
p,
T,
rho, drho_dp, drho_dT);
129 _co2_fp->rho_from_p_T(
p,
T, rhoc, drhoc_dp, drhoc_dT);
130 REL_TEST(
rho, rhoc, 1.0e-4);
131 REL_TEST(drho_dp, drhoc_dp, 1.0e-3);
132 REL_TEST(drho_dT, drhoc_dT, 1.0e-3);
134 Real h, dh_dp, dh_dT, hc, dhc_dp, dhc_dT;
135 _tab_pT_from_fp->h_from_p_T(
p,
T, h, dh_dp, dh_dT);
136 _co2_fp->h_from_p_T(
p,
T, hc, dhc_dp, dhc_dT);
137 REL_TEST(h, hc, 1.0e-4);
138 REL_TEST(dh_dp, dhc_dp, 1.0e-3);
139 REL_TEST(dh_dT, dhc_dT, 1.0e-3);
141 Real
mu, dmu_dp, dmu_dT, muc, dmuc_dp, dmuc_dT;
142 _tab_pT_from_fp->mu_from_p_T(
p,
T,
mu, dmu_dp, dmu_dT);
143 _co2_fp->mu_from_p_T(
p,
T, muc, dmuc_dp, dmuc_dT);
144 REL_TEST(
mu, muc, 1.0e-4);
145 REL_TEST(dmu_dp, dmuc_dp, 1.0e-3);
146 REL_TEST(dmu_dT, dmuc_dT, 1.0e-3);
148 Real k, dk_dp, dk_dT, kc, dkc_dp, dkc_dT;
149 _tab_pT_from_fp->k_from_p_T(
p,
T, k, dk_dp, dk_dT);
150 _co2_fp->k_from_p_T(
p,
T, kc, dkc_dp, dkc_dT);
151 REL_TEST(k, kc, 1.0e-4);
152 REL_TEST(dk_dp, dkc_dp, 1.0e-3);
153 REL_TEST(dk_dT, dkc_dT, 1.0e-3);
155 Real e, de_dp, de_dT, ec, dec_dp, dec_dT;
156 _tab_pT_from_fp->e_from_p_T(
p,
T, e, de_dp, de_dT);
157 _co2_fp->e_from_p_T(
p,
T, ec, dec_dp, dec_dT);
158 REL_TEST(e, ec, 1.0e-4);
159 REL_TEST(de_dp, dec_dp, 1.0e-3);
160 REL_TEST(de_dT, dec_dT, 1.0e-3);
162 Real s, ds_dp, ds_dT, sc, dsc_dp, dsc_dT;
163 _tab_pT_from_fp->s_from_p_T(
p,
T, s, ds_dp, ds_dT);
164 _co2_fp->s_from_p_T(
p,
T, sc, dsc_dp, dsc_dT);
165 REL_TEST(s, sc, 1.0e-4);
166 REL_TEST(ds_dp, dsc_dp, 1.0e-3);
167 REL_TEST(ds_dT, dsc_dT, 1.0e-3);
184 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
185 Real
v = _tab_ve_from_pT->v_from_p_T(
p,
T);
186 Real pp = _tab_ve_from_pT->p_from_v_e(
v, e);
187 Real TT = _tab_ve_from_pT->T_from_v_e(
v, e);
188 ABS_TEST(
T, TT, 1.0);
189 REL_TEST(
p, pp, 0.001);
194 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
195 Real
v = _tab_ve_from_pT->v_from_p_T(
p,
T);
198 Real cp1 = _tab_ve_from_pT->cp_from_p_T(
p,
T);
199 Real cp2 = _tab_ve_from_pT->cp_from_v_e(
v, e);
200 REL_TEST(cp1, cp2, 0.001);
203 Real cv1 = _tab_ve_from_pT->cv_from_p_T(
p,
T);
204 Real cv2 = _tab_ve_from_pT->cv_from_v_e(
v, e);
205 REL_TEST(cv1, cv2, 0.001);
208 Real mu1 = _tab_ve_from_pT->mu_from_p_T(
p,
T);
209 Real mu2 = _tab_ve_from_pT->mu_from_v_e(
v, e);
210 REL_TEST(mu1, mu2, 0.001);
213 Real k1 = _tab_ve_from_pT->k_from_p_T(
p,
T);
214 Real k2 = _tab_ve_from_pT->k_from_v_e(
v, e);
215 REL_TEST(k1, k2, 0.001);
218 Real h1 = _tab_ve_from_pT->h_from_p_T(
p,
T);
219 Real h2 = _tab_ve_from_pT->h_from_v_e(
v, e);
220 REL_TEST(h1, h2, 0.001);
223 Real s1 = _tab_ve_from_pT->s_from_p_T(
p,
T);
224 Real s2 = _tab_ve_from_pT->s_from_v_e(
v, e);
225 REL_TEST(s1, s2, 0.001);
228 REL_TEST(_tab_ve_from_pT->g_from_v_e(
v, e), h1 -
T * s1, 0.001);
231 Real s3, ds_dv, ds_de;
232 _tab_ve_from_pT->s_from_v_e(
v, e, s3, ds_dv, ds_de);
233 REL_TEST(s3, s2, REL_TOL_CONSISTENCY);
234 REL_TEST(ds_de, 1.0 /
T, 0.01);
235 REL_TEST(ds_dv,
p /
T, 0.01);
240 Real s = _tab_ve_from_pT->s_from_p_T(
p,
T);
243 Real rho1 = _tab_ve_from_pT->rho_from_p_T(
p,
T);
244 Real rho2 = _tab_ve_from_pT->rho_from_p_s(
p, s);
245 REL_TEST(rho1, rho2, 0.001);
248 Real Ts = _tab_ve_from_pT->T_from_p_s(
p, s);
249 REL_TEST(
T, Ts, 0.001);
254 Real
rho = _tab_ve_from_pT->rho_from_p_T(
p,
T);
257 Real e1 = _tab_ve_from_pT->e_from_p_T(
p,
T);
258 Real e2 = _tab_ve_from_pT->e_from_p_rho(
p,
rho);
259 REL_TEST(e1, e2, REL_TOL_CONSISTENCY);
266 Real h = _tab_ve_from_pT->h_from_p_T(
p,
T);
267 Real Ts = _tab_ve_from_pT->T_from_p_h(
p, h);
268 REL_TEST(
T, Ts, 1e-4);
272 REL_TEST(
T, Ts, 1e-4);
277 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
278 Real
v = _tab_ve_from_pT->v_from_p_T(
p,
T);
287 _tab_ve_from_pT->cp_from_v_e(
v, e, cp1, d1, d2);
288 Real cp2 = _tab_ve_from_pT->cp_from_v_e(
v, e);
289 REL_TEST(cp1, cp2, 0.001);
293 _tab_ve_from_pT->cv_from_v_e(
v, e, cv1, d1, d2);
294 Real cv2 = _tab_ve_from_pT->cv_from_v_e(
v, e);
295 REL_TEST(cv1, cv2, 0.001);
299 _tab_ve_from_pT->mu_from_v_e(
v, e, mu1, d1, d2);
300 Real mu2 = _tab_ve_from_pT->mu_from_v_e(
v, e);
301 REL_TEST(mu1, mu2, 0.001);
305 _tab_ve_from_pT->k_from_v_e(
v, e, k1, d1, d2);
306 Real k2 = _tab_ve_from_pT->k_from_v_e(
v, e);
307 REL_TEST(k1, k2, 0.001);
312 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
313 Real
v = _tab_ve_from_pT->v_from_p_T(
p,
T);
319 _tab_ve_from_pT->p_from_v_e(
v, e, p1, deriv1, deriv2);
320 Real p2 = _tab_ve_from_pT->p_from_v_e(
v, e);
321 REL_TEST(p1, p2, 0.001);
325 _tab_ve_from_pT->T_from_v_e(
v, e, T1, deriv1, deriv2);
326 Real T2 = _tab_ve_from_pT->T_from_v_e(
v, e);
327 REL_TEST(T1, T2, 0.001);
334 _tab_ve_from_pT->cp_from_v_e(
v, e, cp1, deriv1, deriv2);
335 Real cp_0 = _tab_ve_from_pT->cp_from_v_e(
v, e);
336 Real cp_1 = _tab_ve_from_pT->cp_from_v_e(
v * (1 + pert), e);
337 Real cp_2 = _tab_ve_from_pT->cp_from_v_e(
v, e * (1 + pert));
338 REL_TEST(deriv1, (cp_1 - cp_0) / (
v * pert), 0.001);
339 REL_TEST(deriv2, (cp_2 - cp_0) / (e * pert), 0.001);
343 _tab_ve_from_pT->cv_from_v_e(
v, e, cv1, deriv1, deriv2);
344 Real cv_0 = _tab_ve_from_pT->cv_from_v_e(
v, e);
345 Real cv_1 = _tab_ve_from_pT->cv_from_v_e(
v * (1 + pert), e);
346 Real cv_2 = _tab_ve_from_pT->cv_from_v_e(
v, e * (1 + pert));
347 REL_TEST(deriv1, (cv_1 - cv_0) / (
v * pert), 0.001);
348 REL_TEST(deriv2, (cv_2 - cv_0) / (e * pert), 0.001);
352 _tab_ve_from_pT->mu_from_v_e(
v, e, mu1, deriv1, deriv2);
353 Real mu_0 = _tab_ve_from_pT->mu_from_v_e(
v, e);
354 Real mu_1 = _tab_ve_from_pT->mu_from_v_e(
v * (1 + pert), e);
355 Real mu_2 = _tab_ve_from_pT->mu_from_v_e(
v, e * (1 + pert));
356 REL_TEST(deriv1, (mu_1 - mu_0) / (
v * pert), 0.001);
357 REL_TEST(deriv2, (mu_2 - mu_0) / (e * pert), 0.001);
361 _tab_ve_from_pT->k_from_v_e(
v, e, k1, deriv1, deriv2);
362 Real k_0 = _tab_ve_from_pT->k_from_v_e(
v, e);
363 Real k_1 = _tab_ve_from_pT->k_from_v_e(
v * (1 + pert), e);
364 Real k_2 = _tab_ve_from_pT->k_from_v_e(
v, e * (1 + pert));
365 REL_TEST(deriv1, (k_1 - k_0) / (
v * pert), 0.001);
366 REL_TEST(deriv2, (k_2 - k_0) / (e * pert), 0.001);
371 Real h = _tab_ve_from_pT->h_from_p_T(
p,
T);
372 Real
v = _tab_ve_from_pT->v_from_p_T(
p,
T);
373 Real e_gold = _tab_ve_from_pT->e_from_p_T(
p,
T);
374 Real e = _tab_ve_from_pT->e_from_v_h(
v, h);
375 REL_TEST(e_gold, e, 0.001);
377 Real e2, de_dv, de_dh;
378 _tab_ve_from_pT->e_from_v_h(
v, h, e2, de_dv, de_dh);
379 REL_TEST(e_gold, e2, 0.001);
380 Real e_0 = _tab_ve_from_pT->e_from_v_h(
v, h);
381 Real e_1 = _tab_ve_from_pT->e_from_v_h(
v * (1 + pert), h);
382 Real e_2 = _tab_ve_from_pT->e_from_v_h(
v, h * (1 + pert));
383 REL_TEST(de_dv, (e_1 - e_0) / (
v * pert), 0.001);
384 REL_TEST(de_dh, (e_2 - e_0) / (h * pert), 0.001);
389 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
390 Real
v = _tab_ve_from_pT->v_from_p_T(
p,
T);
402 ADReal p_ad = _tab_ve_from_pT->p_from_v_e(v_ad, e_ad);
404 Real pp, dp_dv, dp_de;
405 _tab_ve_from_pT->p_from_v_e(
v, e, pp, dp_dv, dp_de);
406 REL_TEST(p_ad.derivatives()[0], dp_dv, 0.0001);
407 REL_TEST(p_ad.derivatives()[1], dp_de, 0.0001);
409 ADReal ad_pp, ad_dp_dv, ad_dp_de;
410 _tab_ve_from_pT->p_from_v_e(v_ad, e_ad, ad_pp, ad_dp_dv, ad_dp_de);
411 REL_TEST(p_ad.derivatives()[0], ad_dp_dv.value(), 0.0001);
412 REL_TEST(p_ad.derivatives()[1], ad_dp_de.value(), 0.0001);
417 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
418 Real
v = _tab_ve_from_pT->v_from_p_T(
p,
T);
430 ADReal T_ad = _tab_ve_from_pT->T_from_v_e(v_ad, e_ad);
432 Real TT, dT_dv, dT_de;
433 _tab_ve_from_pT->T_from_v_e(
v, e, TT, dT_dv, dT_de);
434 REL_TEST(T_ad.derivatives()[0], dT_dv, 0.0001);
435 REL_TEST(T_ad.derivatives()[1], dT_de, 0.0001);
437 ADReal ad_TT, ad_dT_dv, ad_dT_de;
438 _tab_ve_from_pT->T_from_v_e(v_ad, e_ad, ad_TT, ad_dT_dv, ad_dT_de);
439 REL_TEST(T_ad.derivatives()[0], ad_dT_dv.value(), 0.0001);
440 REL_TEST(T_ad.derivatives()[1], ad_dT_de.value(), 0.0001);
448 Real h = _tab_ve_from_pT->h_from_p_T(
p,
T);
460 ADReal T_ad = _tab_ve_from_pT->T_from_p_h(p_ad, h_ad);
462 Real TT_1 = _tab_ve_from_pT->T_from_p_h(
p * (1 + pert), h);
463 Real TT_2 = _tab_ve_from_pT->T_from_p_h(
p, h * (1 + pert));
464 Real dT_dp = (TT_1 -
T) /
p / pert;
465 Real dT_dh = (TT_2 -
T) / h / pert;
466 REL_TEST(T_ad.derivatives()[0], dT_dp, 0.0001);
467 REL_TEST(T_ad.derivatives()[1], dT_dh, 0.0001);
483 ADReal rho_ad = _tab_ve_from_pT->rho_from_p_T(p_ad, T_ad);
485 Real
rho, drho_dp, drho_dT;
486 _tab_ve_from_pT->rho_from_p_T(
p,
T,
rho, drho_dp, drho_dT);
487 REL_TEST(rho_ad.derivatives()[0], drho_dp, 0.0001);
488 REL_TEST(rho_ad.derivatives()[1], drho_dT, 0.0001);
490 ADReal ad_rho, ad_drho_dp, ad_drho_dT;
491 _tab_ve_from_pT->rho_from_p_T(p_ad, T_ad, ad_rho, ad_drho_dp, ad_drho_dT);
492 REL_TEST(rho_ad.derivatives()[0], ad_drho_dp.value(), 0.0001);
493 REL_TEST(rho_ad.derivatives()[1], ad_drho_dT.value(), 0.0001);
509 ADReal e_ad = _tab_ve_from_pT->e_from_p_T(p_ad, T_ad);
511 Real e, de_dp, de_dT;
512 _tab_ve_from_pT->e_from_p_T(
p,
T, e, de_dp, de_dT);
513 REL_TEST(e_ad.derivatives()[0], de_dp, 0.0001);
514 REL_TEST(e_ad.derivatives()[1], de_dT, 0.0001);
530 ADReal v_ad = _tab_ve_from_pT->v_from_p_T(p_ad, T_ad);
532 Real
v, dv_dp, dv_dT;
533 _tab_ve_from_pT->v_from_p_T(
p,
T,
v, dv_dp, dv_dT);
534 REL_TEST(v_ad.derivatives()[0], dv_dp, 0.0001);
535 REL_TEST(v_ad.derivatives()[1], dv_dT, 0.0001);
551 Real e = _idg_fp->e_from_p_T(
p,
T);
552 Real
v = _idg_fp->v_from_p_T(
p,
T);
557 Real cp1 = _idg_fp->cp_from_v_e(
v, e);
558 Real cp2 = _tab_ve_from_fp->cp_from_v_e(
v, e);
559 REL_TEST(cp1, cp2, 0.001);
562 Real cv1 = _idg_fp->cv_from_v_e(
v, e);
563 Real cv2 = _tab_ve_from_fp->cv_from_v_e(
v, e);
564 REL_TEST(cv1, cv2, 0.001);
567 Real c1 = _idg_fp->c_from_v_e(
v, e);
568 Real c2 = _tab_ve_from_fp->c_from_v_e(
v, e);
569 REL_TEST(c1, c2, 0.001);
572 Real mu1 = _idg_fp->mu_from_v_e(
v, e);
573 Real mu2 = _tab_ve_from_fp->mu_from_v_e(
v, e);
574 REL_TEST(mu1, mu2, 0.001);
577 Real k1 = _idg_fp->k_from_v_e(
v, e);
578 Real k2 = _tab_ve_from_fp->k_from_v_e(
v, e);
579 REL_TEST(k1, k2, 0.001);
588 _tab_ve_from_fp->p_from_v_e(
v, e, p1, d1, d2);
589 Real p2 = _tab_ve_from_fp->p_from_v_e(
v, e);
590 REL_TEST(p1, p2, 0.001);
594 _tab_ve_from_fp->T_from_v_e(
v, e, T1, d1, d2);
595 Real T2 = _tab_ve_from_fp->T_from_v_e(
v, e);
596 REL_TEST(T1, T2, 0.001);
600 _tab_ve_from_fp->cp_from_v_e(
v, e, cp1, d1, d2);
601 Real cp2 = _tab_ve_from_fp->cp_from_v_e(
v, e);
602 REL_TEST(cp1, cp2, 0.001);
606 _tab_ve_from_fp->cv_from_v_e(
v, e, cv1, d1, d2);
607 Real cv2 = _tab_ve_from_fp->cv_from_v_e(
v, e);
608 REL_TEST(cv1, cv2, 0.001);
612 _tab_ve_from_fp->c_from_v_e(
v, e, c1, d1, d2);
613 Real c2 = _tab_ve_from_fp->c_from_v_e(
v, e);
614 REL_TEST(c1, c2, 0.001);
618 _tab_ve_from_fp->mu_from_v_e(
v, e, mu1, d1, d2);
619 Real mu2 = _tab_ve_from_fp->mu_from_v_e(
v, e);
620 REL_TEST(mu1, mu2, 0.001);
624 _tab_ve_from_fp->k_from_v_e(
v, e, k1, d1, d2);
625 Real k2 = _tab_ve_from_fp->k_from_v_e(
v, e);
626 REL_TEST(k1, k2, 0.001);
638 _tab_ve_from_fp->cp_from_v_e(
v, e, cp1, deriv1, deriv2);
639 Real cp_0 = _tab_ve_from_fp->cp_from_v_e(
v, e);
640 Real cp_1 = _tab_ve_from_fp->cp_from_v_e(
v * (1 + pert), e);
641 Real cp_2 = _tab_ve_from_fp->cp_from_v_e(
v, e * (1 + pert));
642 REL_TEST(cp1, cp_0, 0.001);
643 REL_TEST(deriv1, (cp_1 - cp_0) / (
v * pert), 0.001);
644 REL_TEST(deriv2, (cp_2 - cp_0) / (e * pert), 0.001);
648 _tab_ve_from_fp->cv_from_v_e(
v, e, cv1, deriv1, deriv2);
649 Real cv_0 = _tab_ve_from_fp->cv_from_v_e(
v, e);
650 Real cv_1 = _tab_ve_from_fp->cv_from_v_e(
v * (1 + pert), e);
651 Real cv_2 = _tab_ve_from_fp->cv_from_v_e(
v, e * (1 + pert));
652 REL_TEST(cv1, cv_0, 0.001);
653 REL_TEST(deriv1, (cv_1 - cv_0) / (
v * pert), 0.001);
654 REL_TEST(deriv2, (cv_2 - cv_0) / (e * pert), 0.001);
658 _tab_ve_from_fp->mu_from_v_e(
v, e, mu1, deriv1, deriv2);
659 Real mu_0 = _tab_ve_from_fp->mu_from_v_e(
v, e);
660 Real mu_1 = _tab_ve_from_fp->mu_from_v_e(
v * (1 + pert), e);
661 Real mu_2 = _tab_ve_from_fp->mu_from_v_e(
v, e * (1 + pert));
662 REL_TEST(mu1, mu_0, 0.001);
663 REL_TEST(deriv1, (mu_1 - mu_0) / (
v * pert), 0.001);
664 REL_TEST(deriv2, (mu_2 - mu_0) / (e * pert), 0.001);
668 _tab_ve_from_fp->k_from_v_e(
v, e, k1, deriv1, deriv2);
669 Real k_0 = _tab_ve_from_fp->k_from_v_e(
v, e);
670 Real k_1 = _tab_ve_from_fp->k_from_v_e(
v * (1 + pert), e);
671 Real k_2 = _tab_ve_from_fp->k_from_v_e(
v, e * (1 + pert));
672 REL_TEST(k1, k_0, 0.001);
673 REL_TEST(deriv1, (k_1 - k_0) / (
v * pert), 0.001);
674 REL_TEST(deriv2, (k_2 - k_0) / (e * pert), 0.001);
678 _tab_ve_from_fp->s_from_v_e(
v, e, s1, deriv1, deriv2);
679 Real s_0 = _tab_ve_from_fp->s_from_v_e(
v, e);
680 Real s_1 = _tab_ve_from_fp->s_from_v_e(
v * (1 + pert), e);
681 Real s_2 = _tab_ve_from_fp->s_from_v_e(
v, e * (1 + pert));
682 REL_TEST(s1, s_0, 0.001);
683 REL_TEST(deriv1, (s_1 - s_0) / (
v * pert), 0.001);
684 REL_TEST(deriv2, (s_2 - s_0) / (e * pert), 0.001);
690 Real h = _idg_fp->h_from_p_T(
p,
T);
691 Real
v = _idg_fp->v_from_p_T(
p,
T);
692 Real e_gold = _idg_fp->e_from_p_T(
p,
T);
693 Real e0 = _tab_ve_from_fp->e_from_v_h(
v, h);
694 REL_TEST(e_gold, e0, 0.001);
696 Real e2, de_dv, de_dh;
697 _tab_ve_from_fp->e_from_v_h(
v, h, e2, de_dv, de_dh);
698 REL_TEST(e_gold, e2, 0.001);
699 Real e_0 = _tab_ve_from_fp->e_from_v_h(
v, h);
700 Real e_1 = _tab_ve_from_fp->e_from_v_h(
v * (1 + pert), h);
701 Real e_2 = _tab_ve_from_fp->e_from_v_h(
v, h * (1 + pert));
702 REL_TEST(de_dv, (e_1 - e_0) / (
v * pert), 0.001);
703 REL_TEST(de_dh, (e_2 - e_0) / (h * pert), 0.001);
710 Real
p = _tab_ve_from_fp->p_from_v_e(
v, e);
711 Real
T = _tab_ve_from_fp->T_from_v_e(
v, e);
712 REL_TEST(1. /
v, _tab_ve_from_fp->rho_from_p_T(
p,
T), 1e-6);
715 REL_TEST(e, _tab_ve_from_fp->e_from_p_T(
p,
T), 1e-6);
718 Real h = _tab_ve_from_fp->h_from_v_e(
v, e);
719 REL_TEST(h, _tab_ve_from_fp->h_from_p_T(
p,
T), 1e-6);
722 Real s = _tab_ve_from_fp->s_from_v_e(
v, e);
723 REL_TEST(s, _tab_ve_from_fp->s_from_p_T(
p,
T), 1e-6);
729 Real
p = _tab_ve_from_fp->p_from_v_e(
v, e);
730 Real
T = _tab_ve_from_fp->T_from_v_e(
v, e);
731 REL_TEST(
T, _tab_ve_from_fp->T_from_p_rho(
p, 1. /
v), 1e-6);
734 REL_TEST(e, _tab_ve_from_fp->e_from_p_rho(
p, 1. /
v), 1e-6);
740 Real
p = _tab_ve_from_fp->p_from_v_e(
v, e);
741 Real
T = _tab_ve_from_fp->T_from_v_e(
v, e);
742 Real h = _tab_ve_from_fp->h_from_v_e(
v, e);
743 REL_TEST(
T, _tab_ve_from_fp->T_from_p_h(
p, h), 1e-6);
746 Real s = _tab_ve_from_fp->s_from_v_e(
v, e);
747 REL_TEST(s, _tab_ve_from_fp->s_from_h_p(h,
p), 1e-6);
753 Real
p = _tab_ve_from_fp->p_from_v_e(
v, e);
754 Real
T = _tab_ve_from_fp->T_from_v_e(
v, e);
755 Real s = _tab_ve_from_fp->s_from_v_e(
v, e);
757 REL_TEST(
T, _tab_ve_from_fp->T_from_p_s(
p, s), 1e-6);
774 ADReal p_ad = _tab_ve_from_fp->p_from_v_e(v_ad, e_ad);
776 Real pp, dp_dv, dp_de;
777 _tab_ve_from_fp->p_from_v_e(
v, e, pp, dp_dv, dp_de);
778 REL_TEST(p_ad.derivatives()[0], dp_dv, 0.0001);
779 REL_TEST(p_ad.derivatives()[1], dp_de, 0.0001);
795 ADReal T_ad = _tab_ve_from_fp->T_from_v_e(v_ad, e_ad);
797 Real TT, dT_dv, dT_de;
798 _tab_ve_from_fp->T_from_v_e(
v, e, TT, dT_dv, dT_de);
799 REL_TEST(T_ad.derivatives()[0], dT_dv, 0.0001);
800 REL_TEST(T_ad.derivatives()[1], dT_de, 0.0001);
817 ADReal e_ad = _tab_ve_from_fp->e_from_p_rho(p_ad, rho_ad);
819 Real e, de_dp, de_drho;
820 _tab_ve_from_fp->e_from_p_rho(
p,
rho, e, de_dp, de_drho);
821 REL_TEST(e_ad.derivatives()[0], de_dp, 0.0001);
822 REL_TEST(e_ad.derivatives()[1], de_drho, 0.0001);
839 ADReal T_ad = _tab_ve_from_fp->T_from_p_rho(p_ad, rho_ad);
841 Real
T, dT_dp, dT_drho;
842 _tab_ve_from_fp->T_from_p_rho(
p,
rho,
T, dT_dp, dT_drho);
843 REL_TEST(T_ad.derivatives()[0], dT_dp, 0.0001);
844 REL_TEST(T_ad.derivatives()[1], dT_drho, 0.0001);
846 REL_TEST(T_ad.value(), _tab_ve_from_fp->T_from_p_rho(
p,
rho), REL_TOL_CONSISTENCY);
862 ADReal e_ad = _tab_ve_from_fp->e_from_p_T(p_ad, T_ad);
864 Real e, de_dp, de_dT;
865 _tab_ve_from_fp->e_from_p_T(
p,
T, e, de_dp, de_dT);
866 REL_TEST(e_ad.derivatives()[0], de_dp, 0.0001);
867 REL_TEST(e_ad.derivatives()[1], de_dT, 0.0001);
881 Real
p = _tab_ve_from_fp->p_from_v_e(
v, e);
882 Real
T = _tab_ve_from_fp->p_from_v_e(
v, e);
885 ADReal rho_ad = _tab_ve_from_fp->rho_from_p_T(p_ad, T_ad);
887 Real
rho, drho_dp, drho_dT;
888 _tab_ve_from_fp->rho_from_p_T(
p,
T,
rho, drho_dp, drho_dT);
889 REL_TEST(rho_ad.derivatives()[0], drho_dp, 0.0001);
890 REL_TEST(rho_ad.derivatives()[1], drho_dT, 0.0001);
904 const Real
p = 1.5e6;
905 const Real
T = 452.0;
912 const Real
tol = REL_TOL_DERIVATIVE;
914 const Real
rho = _tab_ve_from_pT->rho_from_p_T(
p,
T);
915 const Real
v = 1. /
rho;
916 const Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
917 const Real s = _tab_ve_from_pT->s_from_p_T(
p,
T);
919 DERIV_TEST(_tab_ve_from_pT->rho_from_p_T,
p,
T,
tol);
920 DERIV_TEST(_tab_ve_from_pT->e_from_p_T,
p,
T,
tol);
921 DERIV_TEST(_tab_ve_from_pT->v_from_p_T,
p,
T,
tol);
922 DERIV_TEST(_tab_ve_from_pT->h_from_p_T,
p,
T,
tol);
923 DERIV_TEST(_tab_ve_from_pT->k_from_p_T,
p,
T,
tol);
924 DERIV_TEST(_tab_ve_from_pT->cp_from_p_T,
p,
T,
tol);
925 DERIV_TEST(_tab_ve_from_pT->cv_from_p_T,
p,
T,
tol);
926 DERIV_TEST(_tab_ve_from_pT->mu_from_p_T,
p,
T,
tol);
928 DERIV_TEST(_tab_ve_from_pT->p_from_v_e,
v, e,
tol);
929 DERIV_TEST(_tab_ve_from_pT->mu_from_v_e,
v, e,
tol);
930 DERIV_TEST(_tab_ve_from_pT->k_from_v_e,
v, e,
tol);
931 DERIV_TEST(_tab_ve_from_pT->T_from_v_e,
v, e,
tol);
932 DERIV_TEST(_tab_ve_from_pT->cp_from_v_e,
v, e,
tol);
933 DERIV_TEST(_tab_ve_from_pT->cv_from_v_e,
v, e,
tol);
935 DERIV_TEST(_tab_ve_from_pT->T_from_p_rho,
p,
rho,
tol);
936 DERIV_TEST(_tab_ve_from_pT->e_from_p_rho,
p,
rho,
tol);
938 DERIV_TEST(_tab_ve_from_pT->T_from_p_s,
p, s,
tol);
939 DERIV_TEST(_tab_ve_from_pT->rho_from_p_s,
p, s,
tol);
946 Real T0, dT_dp, dT_ds;
947 _tab_pT_from_fp->T_from_p_s(
p, s0, T0, dT_dp, dT_ds);
948 REL_TEST(dT_ds, T0 / _tab_pT_from_fp->cp_from_p_T(
p, T0), 1e-3);
957 const Real
tol = REL_TOL_DERIVATIVE;
959 const Real
rho = _tab_ve_from_fp->rho_from_p_T(
p,
T);
960 const Real
v = 1. /
rho;
961 const Real e = _tab_ve_from_fp->e_from_p_T(
p,
T);
962 const Real h = e +
p *
v;
964 DERIV_TEST(_tab_ve_from_fp->p_from_v_e,
v, e,
tol);
965 DERIV_TEST(_tab_ve_from_fp->mu_from_v_e,
v, e,
tol);
966 DERIV_TEST(_tab_ve_from_fp->k_from_v_e,
v, e,
tol);
967 DERIV_TEST(_tab_ve_from_fp->T_from_v_e,
v, e,
tol);
968 DERIV_TEST(_tab_ve_from_fp->cp_from_v_e,
v, e,
tol);
969 DERIV_TEST(_tab_ve_from_fp->cv_from_v_e,
v, e,
tol);
973 DERIV_TEST(_tab_ve_from_fp->e_from_v_h,
v, h, 100 *
tol);
1003 const Real
tol = REL_TOL_SAVED_VALUE;
1007 ABS_TEST(_tab_pT_from_fp->v_from_p_T(
p,
T), 1. / _co2_fp->rho_from_p_T(
p,
T),
tol);
1008 ABS_TEST(_tab_pT_from_fp->rho_from_p_T(
p,
T), _co2_fp->rho_from_p_T(
p,
T),
tol);
1009 ABS_TEST(_tab_pT_from_fp->h_from_p_T(
p,
T), _co2_fp->h_from_p_T(
p,
T),
tol);
1010 ABS_TEST(_tab_pT_from_fp->e_from_p_T(
p,
T), _co2_fp->e_from_p_T(
p,
T),
tol);
1011 ABS_TEST(_tab_pT_from_fp->mu_from_p_T(
p,
T), _co2_fp->mu_from_p_T(
p,
T),
tol);
1012 ABS_TEST(_tab_pT_from_fp->k_from_p_T(
p,
T), _co2_fp->k_from_p_T(
p,
T),
tol);
1013 ABS_TEST(_tab_pT_from_fp->cp_from_p_T(
p,
T), _co2_fp->cp_from_p_T(
p,
T),
tol);
1014 ABS_TEST(_tab_pT_from_fp->cv_from_p_T(
p,
T), _co2_fp->cv_from_p_T(
p,
T),
tol);
1015 ABS_TEST(_tab_pT_from_fp->s_from_p_T(
p,
T), _co2_fp->s_from_p_T(
p,
T),
tol);
1019 ABS_TEST(_tab_pT_from_fp->henryCoefficients()[0], _co2_fp->henryCoefficients()[0],
tol);
1020 ABS_TEST(_tab_pT_from_fp->henryCoefficients()[1], _co2_fp->henryCoefficients()[1],
tol);
1021 ABS_TEST(_tab_pT_from_fp->henryCoefficients()[2], _co2_fp->henryCoefficients()[2],
tol);
1022 ABS_TEST(_tab_pT_from_fp->triplePointPressure(), _co2_fp->triplePointPressure(),
tol);
1023 ABS_TEST(_tab_pT_from_fp->triplePointTemperature(), _co2_fp->triplePointTemperature(),
tol);
1024 ABS_TEST(_tab_pT_from_fp->criticalPressure(), _co2_fp->criticalPressure(),
tol);
1025 ABS_TEST(_tab_pT_from_fp->criticalTemperature(), _co2_fp->criticalTemperature(),
tol);
1026 ABS_TEST(_tab_pT_from_fp->criticalDensity(), _co2_fp->criticalDensity(),
tol);
1030 ABS_TEST(_tab_pT_from_fp->vaporPressure(
T), _co2_fp->vaporPressure(
T),
tol);
1046 ADReal p_ad(1.5e6, dpdx);
1047 ADReal T_ad(450.0, dTdx);
1049 ABS_TEST(_tab_pT_from_fp_idg->v_from_p_T(p_ad, T_ad).value(),
1050 _idg_fp->v_from_p_T(p_ad, T_ad).value(),
1052 ABS_TEST(_tab_pT_from_fp_idg->rho_from_p_T(p_ad, T_ad).value(),
1053 _idg_fp->rho_from_p_T(p_ad, T_ad).value(),
1055 ABS_TEST(_tab_pT_from_fp_idg->e_from_p_T(p_ad, T_ad).value(),
1056 _idg_fp->e_from_p_T(p_ad, T_ad).value(),
1058 ABS_TEST(_tab_pT_from_fp_idg->cp_from_p_T(p_ad, T_ad).value(),
1059 _idg_fp->cp_from_p_T(p_ad, T_ad).value(),
1062 ABS_TEST(_tab_pT_from_fp_idg->v_from_p_T(p_ad, T_ad).derivatives()[0],
1063 _idg_fp->v_from_p_T(p_ad, T_ad).derivatives()[0],
1065 ABS_TEST(_tab_pT_from_fp_idg->rho_from_p_T(p_ad, T_ad).derivatives()[0],
1066 _idg_fp->rho_from_p_T(p_ad, T_ad).derivatives()[0],
1068 ABS_TEST(_tab_pT_from_fp_idg->e_from_p_T(p_ad, T_ad).derivatives()[0],
1069 _idg_fp->e_from_p_T(p_ad, T_ad).derivatives()[0],
1071 ABS_TEST(_tab_pT_from_fp_idg->cp_from_p_T(p_ad, T_ad).derivatives()[0],
1072 _idg_fp->cp_from_p_T(p_ad, T_ad).derivatives()[0],
1074 ABS_TEST(_tab_pT_from_fp_idg->v_from_p_T(p_ad, T_ad).derivatives()[1],
1075 _idg_fp->v_from_p_T(p_ad, T_ad).derivatives()[1],
1077 ABS_TEST(_tab_pT_from_fp_idg->rho_from_p_T(p_ad, T_ad).derivatives()[1],
1078 _idg_fp->rho_from_p_T(p_ad, T_ad).derivatives()[1],
1080 ABS_TEST(_tab_pT_from_fp_idg->e_from_p_T(p_ad, T_ad).derivatives()[1],
1081 _idg_fp->e_from_p_T(p_ad, T_ad).derivatives()[1],
1083 ABS_TEST(_tab_pT_from_fp_idg->cp_from_p_T(p_ad, T_ad).derivatives()[1],
1084 _idg_fp->cp_from_p_T(p_ad, T_ad).derivatives()[1],
1094 Real
v = 1. / _idg_fp->rho_from_p_T(
p,
T);
1095 Real e = _idg_fp->e_from_p_T(
p,
T);
1096 const Real
tol = REL_TOL_CONSISTENCY;
1104 ABS_TEST(_tab_ve_from_fp->T_from_v_e(
v, e), _idg_fp->T_from_v_e(
v, e),
tol);
1105 ABS_TEST(_tab_ve_from_fp->p_from_v_e(
v, e), _idg_fp->p_from_v_e(
v, e), 3 *
tol);
1106 ABS_TEST(_tab_ve_from_fp->h_from_v_e(
v, e), _idg_fp->h_from_v_e(
v, e),
tol);
1107 ABS_TEST(_tab_ve_from_fp->mu_from_v_e(
v, e), _idg_fp->mu_from_v_e(
v, e),
tol);
1108 ABS_TEST(_tab_ve_from_fp->k_from_v_e(
v, e), _idg_fp->k_from_v_e(
v, e),
tol);
1109 ABS_TEST(_tab_ve_from_fp->cp_from_v_e(
v, e), _idg_fp->cp_from_v_e(
v, e),
tol);
1110 ABS_TEST(_tab_ve_from_fp->cv_from_v_e(
v, e), _idg_fp->cv_from_v_e(
v, e),
tol);
1111 ABS_TEST(_tab_ve_from_fp->s_from_v_e(
v, e), _idg_fp->s_from_v_e(
v, e), 30 *
tol);
1116 Real deriv1, deriv2;
1119 _tab_ve_from_fp->T_from_v_e(
v, e, T1, deriv1, deriv2);
1120 Real T_0 = _tab_ve_from_fp->T_from_v_e(
v, e);
1121 Real T_1 = _tab_ve_from_fp->T_from_v_e(
v * (1 + pert), e);
1122 Real T_2 = _tab_ve_from_fp->T_from_v_e(
v, e * (1 + pert));
1123 REL_TEST(deriv1, (T_1 - T_0) / (
v * pert), 0.001);
1124 REL_TEST(deriv2, (T_2 - T_0) / (e * pert), 0.001);
1128 _tab_ve_from_fp->p_from_v_e(
v, e, p1, deriv1, deriv2);
1129 Real p_0 = _tab_ve_from_fp->p_from_v_e(
v, e);
1130 Real p_1 = _tab_ve_from_fp->p_from_v_e(
v * (1 + pert), e);
1131 Real p_2 = _tab_ve_from_fp->p_from_v_e(
v, e * (1 + pert));
1132 REL_TEST(deriv1, (p_1 - p_0) / (
v * pert), 0.001);
1133 REL_TEST(deriv2, (p_2 - p_0) / (e * pert), 0.001);