269 EXPECT_EQ(_fp->subregion3(50.0e6, 630.0), (
unsigned int)0);
270 EXPECT_EQ(_fp->subregion3(80.0e6, 670.0), (
unsigned int)0);
271 EXPECT_EQ(_fp->subregion3(50.0e6, 710.0), (
unsigned int)1);
272 EXPECT_EQ(_fp->subregion3(80.0e6, 750.0), (
unsigned int)1);
273 EXPECT_EQ(_fp->subregion3(20.0e6, 630.0), (
unsigned int)2);
274 EXPECT_EQ(_fp->subregion3(30.0e6, 650.0), (
unsigned int)2);
275 EXPECT_EQ(_fp->subregion3(26.0e6, 656.0), (
unsigned int)3);
276 EXPECT_EQ(_fp->subregion3(30.0e6, 670.0), (
unsigned int)3);
277 EXPECT_EQ(_fp->subregion3(26.0e6, 661.0), (
unsigned int)4);
278 EXPECT_EQ(_fp->subregion3(30.0e6, 675.0), (
unsigned int)4);
279 EXPECT_EQ(_fp->subregion3(26.0e6, 671.0), (
unsigned int)5);
280 EXPECT_EQ(_fp->subregion3(30.0e6, 690.0), (
unsigned int)5);
281 EXPECT_EQ(_fp->subregion3(23.6e6, 649.0), (
unsigned int)6);
282 EXPECT_EQ(_fp->subregion3(24.0e6, 650.0), (
unsigned int)6);
283 EXPECT_EQ(_fp->subregion3(23.6e6, 652.0), (
unsigned int)7);
284 EXPECT_EQ(_fp->subregion3(24.0e6, 654.0), (
unsigned int)7);
285 EXPECT_EQ(_fp->subregion3(23.6e6, 653.0), (
unsigned int)8);
286 EXPECT_EQ(_fp->subregion3(24.0e6, 655.0), (
unsigned int)8);
287 EXPECT_EQ(_fp->subregion3(23.5e6, 655.0), (
unsigned int)9);
288 EXPECT_EQ(_fp->subregion3(24.0e6, 660.0), (
unsigned int)9);
289 EXPECT_EQ(_fp->subregion3(23.0e6, 660.0), (
unsigned int)10);
290 EXPECT_EQ(_fp->subregion3(24.0e6, 670.0), (
unsigned int)10);
291 EXPECT_EQ(_fp->subregion3(22.6e6, 646.0), (
unsigned int)11);
292 EXPECT_EQ(_fp->subregion3(23.0e6, 646.0), (
unsigned int)11);
293 EXPECT_EQ(_fp->subregion3(22.6e6, 648.6), (
unsigned int)12);
294 EXPECT_EQ(_fp->subregion3(22.8e6, 649.3), (
unsigned int)12);
295 EXPECT_EQ(_fp->subregion3(22.6e6, 649.0), (
unsigned int)13);
296 EXPECT_EQ(_fp->subregion3(22.8e6, 649.7), (
unsigned int)13);
297 EXPECT_EQ(_fp->subregion3(22.6e6, 649.1), (
unsigned int)14);
298 EXPECT_EQ(_fp->subregion3(22.8e6, 649.9), (
unsigned int)14);
299 EXPECT_EQ(_fp->subregion3(22.6e6, 649.4), (
unsigned int)15);
300 EXPECT_EQ(_fp->subregion3(22.8e6, 650.2), (
unsigned int)15);
301 EXPECT_EQ(_fp->subregion3(21.1e6, 640.0), (
unsigned int)16);
302 EXPECT_EQ(_fp->subregion3(21.8e6, 643.0), (
unsigned int)16);
303 EXPECT_EQ(_fp->subregion3(21.1e6, 644.0), (
unsigned int)17);
304 EXPECT_EQ(_fp->subregion3(21.8e6, 648.0), (
unsigned int)17);
305 EXPECT_EQ(_fp->subregion3(19.1e6, 635.0), (
unsigned int)18);
306 EXPECT_EQ(_fp->subregion3(20.0e6, 638.0), (
unsigned int)18);
307 EXPECT_EQ(_fp->subregion3(17.0e6, 626.0), (
unsigned int)19);
308 EXPECT_EQ(_fp->subregion3(20.0e6, 640.0), (
unsigned int)19);
309 EXPECT_EQ(_fp->subregion3(21.5e6, 644.6), (
unsigned int)20);
310 EXPECT_EQ(_fp->subregion3(22.0e6, 646.1), (
unsigned int)20);
311 EXPECT_EQ(_fp->subregion3(22.5e6, 648.6), (
unsigned int)21);
312 EXPECT_EQ(_fp->subregion3(22.3e6, 647.9), (
unsigned int)21);
313 EXPECT_EQ(_fp->subregion3(22.15e6, 647.5), (
unsigned int)22);
314 EXPECT_EQ(_fp->subregion3(22.3e6, 648.1), (
unsigned int)22);
315 EXPECT_EQ(_fp->subregion3(22.11e6, 648.0), (
unsigned int)23);
316 EXPECT_EQ(_fp->subregion3(22.3e6, 649.0), (
unsigned int)23);
317 EXPECT_EQ(_fp->subregion3(22.0e6, 646.84), (
unsigned int)24);
318 EXPECT_EQ(_fp->subregion3(22.064e6, 647.05), (
unsigned int)24);
319 EXPECT_EQ(_fp->subregion3(22.0e6, 646.89), (
unsigned int)25);
320 EXPECT_EQ(_fp->subregion3(22.064e6, 647.15), (
unsigned int)25);
332 const Real
tol = 1.0e-8;
334 REL_TEST(_fp->densityRegion3(50.0e6, 630.0), 1.0 / 0.001470853100,
tol);
335 REL_TEST(_fp->densityRegion3(80.0e6, 670.0), 1.0 / 0.001503831359,
tol);
336 REL_TEST(_fp->densityRegion3(50.0e6, 710.0), 1.0 / 0.002204728587,
tol);
337 REL_TEST(_fp->densityRegion3(80.0e6, 750.0), 1.0 / 0.001973692940,
tol);
338 REL_TEST(_fp->densityRegion3(20.0e6, 630.0), 1.0 / 0.001761696406,
tol);
339 REL_TEST(_fp->densityRegion3(30.0e6, 650.0), 1.0 / 0.001819560617,
tol);
340 REL_TEST(_fp->densityRegion3(26.0e6, 656.0), 1.0 / 0.002245587720,
tol);
341 REL_TEST(_fp->densityRegion3(30.0e6, 670.0), 1.0 / 0.002506897702,
tol);
342 REL_TEST(_fp->densityRegion3(26.0e6, 661.0), 1.0 / 0.002970225962,
tol);
343 REL_TEST(_fp->densityRegion3(30.0e6, 675.0), 1.0 / 0.003004627086,
tol);
344 REL_TEST(_fp->densityRegion3(26.0e6, 671.0), 1.0 / 0.005019029401,
tol);
345 REL_TEST(_fp->densityRegion3(30.0e6, 690.0), 1.0 / 0.004656470142,
tol);
346 REL_TEST(_fp->densityRegion3(23.6e6, 649.0), 1.0 / 0.002163198378,
tol);
347 REL_TEST(_fp->densityRegion3(24.0e6, 650.0), 1.0 / 0.002166044161,
tol);
348 REL_TEST(_fp->densityRegion3(23.6e6, 652.0), 1.0 / 0.002651081407,
tol);
349 REL_TEST(_fp->densityRegion3(24.0e6, 654.0), 1.0 / 0.002967802335,
tol);
350 REL_TEST(_fp->densityRegion3(23.6e6, 653.0), 1.0 / 0.003273916816,
tol);
351 REL_TEST(_fp->densityRegion3(24.0e6, 655.0), 1.0 / 0.003550329864,
tol);
352 REL_TEST(_fp->densityRegion3(23.5e6, 655.0), 1.0 / 0.004545001142,
tol);
353 REL_TEST(_fp->densityRegion3(24.0e6, 660.0), 1.0 / 0.005100267704,
tol);
354 REL_TEST(_fp->densityRegion3(23.0e6, 660.0), 1.0 / 0.006109525997,
tol);
355 REL_TEST(_fp->densityRegion3(24.0e6, 670.0), 1.0 / 0.006427325645,
tol);
356 REL_TEST(_fp->densityRegion3(22.6e6, 646.0), 1.0 / 0.002117860851,
tol);
357 REL_TEST(_fp->densityRegion3(23.0e6, 646.0), 1.0 / 0.002062374674,
tol);
358 REL_TEST(_fp->densityRegion3(22.6e6, 648.6), 1.0 / 0.002533063780,
tol);
359 REL_TEST(_fp->densityRegion3(22.8e6, 649.3), 1.0 / 0.002572971781,
tol);
360 REL_TEST(_fp->densityRegion3(22.6e6, 649.0), 1.0 / 0.002923432711,
tol);
361 REL_TEST(_fp->densityRegion3(22.8e6, 649.7), 1.0 / 0.002913311494,
tol);
362 REL_TEST(_fp->densityRegion3(22.6e6, 649.1), 1.0 / 0.003131208996,
tol);
363 REL_TEST(_fp->densityRegion3(22.8e6, 649.9), 1.0 / 0.003221160278,
tol);
364 REL_TEST(_fp->densityRegion3(22.6e6, 649.4), 1.0 / 0.003715596186,
tol);
365 REL_TEST(_fp->densityRegion3(22.8e6, 650.2), 1.0 / 0.003664754790,
tol);
366 REL_TEST(_fp->densityRegion3(21.1e6, 640.0), 1.0 / 0.001970999272,
tol);
367 REL_TEST(_fp->densityRegion3(21.8e6, 643.0), 1.0 / 0.002043919161,
tol);
368 REL_TEST(_fp->densityRegion3(21.1e6, 644.0), 1.0 / 0.005251009921,
tol);
369 REL_TEST(_fp->densityRegion3(21.8e6, 648.0), 1.0 / 0.005256844741,
tol);
370 REL_TEST(_fp->densityRegion3(19.1e6, 635.0), 1.0 / 0.001932829079,
tol);
371 REL_TEST(_fp->densityRegion3(20.0e6, 638.0), 1.0 / 0.001985387227,
tol);
372 REL_TEST(_fp->densityRegion3(17.0e6, 626.0), 1.0 / 0.008483262001,
tol);
373 REL_TEST(_fp->densityRegion3(20.0e6, 640.0), 1.0 / 0.006227528101,
tol);
374 REL_TEST(_fp->densityRegion3(21.5e6, 644.6), 1.0 / 0.002268366647,
tol);
375 REL_TEST(_fp->densityRegion3(22.0e6, 646.1), 1.0 / 0.002296350553,
tol);
376 REL_TEST(_fp->densityRegion3(22.5e6, 648.6), 1.0 / 0.002832373260,
tol);
377 REL_TEST(_fp->densityRegion3(22.3e6, 647.9), 1.0 / 0.002811424405,
tol);
378 REL_TEST(_fp->densityRegion3(22.15e6, 647.5), 1.0 / 0.003694032281,
tol);
379 REL_TEST(_fp->densityRegion3(22.3e6, 648.1), 1.0 / 0.003622226305,
tol);
380 REL_TEST(_fp->densityRegion3(22.11e6, 648.0), 1.0 / 0.004528072649,
tol);
381 REL_TEST(_fp->densityRegion3(22.3e6, 649.0), 1.0 / 0.004556905799,
tol);
382 REL_TEST(_fp->densityRegion3(22.0e6, 646.84), 1.0 / 0.002698354719,
tol);
383 REL_TEST(_fp->densityRegion3(22.064e6, 647.05), 1.0 / 0.002717655648,
tol);
384 REL_TEST(_fp->densityRegion3(22.0e6, 646.89), 1.0 / 0.003798732962,
tol);
385 REL_TEST(_fp->densityRegion3(22.064e6, 647.15), 1.0 / 0.003701940010,
tol);
405 Real p0, p1, p2, T0, T1, T2;
407 const Real
tol = 1.0e-8;
408 const Real tol2 = 1.0e-12;
418 REL_TEST(_fp->rho_from_p_T(p0, T0), 1.0 / 0.00100215168,
tol);
419 REL_TEST(_fp->rho_from_p_T(p1, T1), 1.0 / 0.000971180894,
tol);
420 REL_TEST(_fp->rho_from_p_T(p2, T2), 1.0 / 0.00120241800,
tol);
421 REL_TEST(_fp->h_from_p_T(p0, T0), 115.331273e3,
tol);
422 REL_TEST(_fp->h_from_p_T(p1, T1), 184.142828e3,
tol);
423 REL_TEST(_fp->h_from_p_T(p2, T2), 975.542239e3,
tol);
424 REL_TEST(_fp->e_from_p_T(p0, T0), 112.324818e3,
tol);
425 REL_TEST(_fp->e_from_p_T(p1, T1), 106.448356e3,
tol);
426 REL_TEST(_fp->e_from_p_T(p2, T2), 971.934985e3,
tol);
427 REL_TEST(_fp->s_from_p_T(p0, T0), 0.392294792e3,
tol);
428 REL_TEST(_fp->s_from_p_T(p1, T1), 0.368563852e3,
tol);
429 REL_TEST(_fp->s_from_p_T(p2, T2), 2.58041912e3,
tol);
430 REL_TEST(_fp->cp_from_p_T(p0, T0), 4.17301218e3,
tol);
431 REL_TEST(_fp->cp_from_p_T(p1, T1), 4.01008987e3,
tol);
432 REL_TEST(_fp->cp_from_p_T(p2, T2), 4.65580682e3,
tol);
433 REL_TEST(_fp->c_from_p_T(p0, T0), 1507.73921,
tol);
434 REL_TEST(_fp->c_from_p_T(p1, T1), 1634.69054,
tol);
435 REL_TEST(_fp->c_from_p_T(p2, T2), 1240.71337,
tol);
438 REL_TEST(_fp->cv_from_p_T(p0, T0), 4.1207e3, REL_TOL_EXTERNAL_VALUE);
442 h0 = _fp->h_from_p_T(p0, T0);
443 h1 = _fp->h_from_p_T(p1, T1);
444 h2 = _fp->h_from_p_T(p2, T2);
445 REL_TEST(_fp->s_from_h_p(h0, p0), 0.392294792e3, 1e-3);
446 REL_TEST(_fp->s_from_h_p(h1, p1), 0.368563852e3, 1e-3);
447 REL_TEST(_fp->s_from_h_p(h2, p2), 2.58041912e3, 1e-4);
457 REL_TEST(_fp->rho_from_p_T(p0, T0), 1.0 / 39.4913866,
tol);
458 REL_TEST(_fp->rho_from_p_T(p1, T1), 1.0 / 92.3015898,
tol);
459 REL_TEST(_fp->rho_from_p_T(p2, T2), 1.0 / 0.00542946619,
tol);
460 REL_TEST(_fp->h_from_p_T(p0, T0), 2549.91145e3,
tol);
461 REL_TEST(_fp->h_from_p_T(p1, T1), 3335.68375e3,
tol);
462 REL_TEST(_fp->h_from_p_T(p2, T2), 2631.49474e3,
tol);
463 REL_TEST(_fp->e_from_p_T(p0, T0), 2411.6916e3,
tol);
464 REL_TEST(_fp->e_from_p_T(p1, T1), 3012.62819e3,
tol);
465 REL_TEST(_fp->e_from_p_T(p2, T2), 2468.61076e3,
tol);
466 REL_TEST(_fp->s_from_p_T(p0, T0), 8.52238967e3,
tol);
467 REL_TEST(_fp->s_from_p_T(p1, T1), 10.1749996e3,
tol);
468 REL_TEST(_fp->s_from_p_T(p2, T2), 5.17540298e3,
tol);
469 REL_TEST(_fp->cp_from_p_T(p0, T0), 1.91300162e3,
tol);
470 REL_TEST(_fp->cp_from_p_T(p1, T1), 2.08141274e3,
tol);
471 REL_TEST(_fp->cp_from_p_T(p2, T2), 10.3505092e3,
tol);
472 REL_TEST(_fp->c_from_p_T(p0, T0), 427.920172,
tol);
473 REL_TEST(_fp->c_from_p_T(p1, T1), 644.289068,
tol);
474 REL_TEST(_fp->c_from_p_T(p2, T2), 480.386523,
tol);
477 REL_TEST(_fp->cv_from_p_T(p0, T0), 1.4415e3, REL_TOL_EXTERNAL_VALUE);
480 h0 = _fp->h_from_p_T(p0, T0);
481 h1 = _fp->h_from_p_T(p1, T1);
482 h2 = _fp->h_from_p_T(p2, T2);
483 REL_TEST(_fp->s_from_h_p(h0, p0), 8.52238967e3, 1e-5);
484 REL_TEST(_fp->s_from_h_p(h1, p1), 10.1749996e3, 1e-6);
485 REL_TEST(_fp->s_from_h_p(h2, p2), 5.17540298e3, 1e-4);
496 REL_TEST(_fp->rho_from_p_T(p0, T0), 500.0, 1.0e-5);
497 REL_TEST(_fp->rho_from_p_T(p1, T1), 200.0, 1.0e-5);
498 REL_TEST(_fp->rho_from_p_T(p2, T2), 500.0, 1.0e-5);
499 REL_TEST(_fp->h_from_p_T(p0, T0), 1863.43019e3, 1.0e-5);
500 REL_TEST(_fp->h_from_p_T(p1, T1), 2375.12401e3, 1.0e-5);
501 REL_TEST(_fp->h_from_p_T(p2, T2), 2258.68845e3, 1.0e-5);
502 REL_TEST(_fp->e_from_p_T(p0, T0), 1812.26279e3, 1.0e-5);
503 REL_TEST(_fp->e_from_p_T(p1, T1), 2263.65868e3, 1.0e-5);
504 REL_TEST(_fp->e_from_p_T(p2, T2), 2102.06932e3, 1.0e-5);
505 REL_TEST(_fp->s_from_p_T(p0, T0), 4.05427273e3, 1.0e-5);
506 REL_TEST(_fp->s_from_p_T(p1, T1), 4.85438792e3, 1.0e-5);
507 REL_TEST(_fp->s_from_p_T(p2, T2), 4.46971906e3, 1.0e-5);
508 REL_TEST(_fp->cp_from_p_T(p0, T0), 13.8935717e3, 1.0e-4);
509 REL_TEST(_fp->cp_from_p_T(p1, T1), 44.6579342e3, 1.0e-5);
510 REL_TEST(_fp->cp_from_p_T(p2, T2), 6.34165359e3, 1.0e-5);
511 REL_TEST(_fp->c_from_p_T(p0, T0), 502.005554, 1.0e-5);
512 REL_TEST(_fp->c_from_p_T(p1, T1), 383.444594, 1.0e-5);
513 REL_TEST(_fp->c_from_p_T(p2, T2), 760.696041, 1.0e-5);
516 REL_TEST(_fp->cv_from_p_T(p0, T0), 3.1910e3, REL_TOL_EXTERNAL_VALUE);
519 h0 = _fp->h_from_p_T(p0, T0);
520 h1 = _fp->h_from_p_T(p1, T1);
521 h2 = _fp->h_from_p_T(p2, T2);
522 REL_TEST(_fp->s_from_h_p(h0, p0), 4.05427273e3, 1e-4);
523 REL_TEST(_fp->s_from_h_p(h1, p1), 4.85438792e3, 2e-4);
524 REL_TEST(_fp->s_from_h_p(h2, p2), 4.46971906e3, 2e-5);
534 REL_TEST(_fp->rho_from_p_T(p0, T0), 1.0 / 1.38455090,
tol);
535 REL_TEST(_fp->rho_from_p_T(p1, T1), 1.0 / 0.0230761299,
tol);
536 REL_TEST(_fp->rho_from_p_T(p2, T2), 1.0 / 0.0311385219,
tol);
537 REL_TEST(_fp->h_from_p_T(p0, T0), 5219.76855e3,
tol);
538 REL_TEST(_fp->h_from_p_T(p1, T1), 5167.23514e3,
tol);
539 REL_TEST(_fp->h_from_p_T(p2, T2), 6571.22604e3,
tol);
540 REL_TEST(_fp->e_from_p_T(p0, T0), 4527.4931e3,
tol);
541 REL_TEST(_fp->e_from_p_T(p1, T1), 4474.95124e3,
tol);
542 REL_TEST(_fp->e_from_p_T(p2, T2), 5637.07038e3,
tol);
543 REL_TEST(_fp->s_from_p_T(p0, T0), 9.65408875e3,
tol);
544 REL_TEST(_fp->s_from_p_T(p1, T1), 7.72970133e3,
tol);
545 REL_TEST(_fp->s_from_p_T(p2, T2), 8.53640523e3,
tol);
546 REL_TEST(_fp->cp_from_p_T(p0, T0), 2.61609445e3,
tol);
547 REL_TEST(_fp->cp_from_p_T(p1, T1), 2.72724317e3,
tol);
548 REL_TEST(_fp->cp_from_p_T(p2, T2), 2.88569882e3,
tol);
549 REL_TEST(_fp->c_from_p_T(p0, T0), 917.06869,
tol);
550 REL_TEST(_fp->c_from_p_T(p1, T1), 928.548002,
tol);
551 REL_TEST(_fp->c_from_p_T(p2, T2), 1067.36948,
tol);
554 REL_TEST(_fp->cv_from_p_T(p0, T0), 2.1534e3, REL_TOL_EXTERNAL_VALUE);
560 ABS_TEST(_fp->mu_from_rho_T(998.0, 298.15), 889.735100e-6, tol2);
561 ABS_TEST(_fp->mu_from_rho_T(1200.0, 298.15), 1437.649467e-6, tol2);
562 ABS_TEST(_fp->mu_from_rho_T(1000.0, 373.15), 307.883622e-6, tol2);
563 ABS_TEST(_fp->mu_from_rho_T(1.0, 433.15), 14.538324e-6, tol2);
564 ABS_TEST(_fp->mu_from_rho_T(1000.0, 433.15), 217.685358e-6, tol2);
565 ABS_TEST(_fp->mu_from_rho_T(1.0, 873.15), 32.619287e-6, tol2);
566 ABS_TEST(_fp->mu_from_rho_T(100.0, 873.15), 35.802262e-6, tol2);
567 ABS_TEST(_fp->mu_from_rho_T(600.0, 873.15), 77.430195e-6, tol2);
568 ABS_TEST(_fp->mu_from_rho_T(1.0, 1173.15), 44.217245e-6, tol2);
569 ABS_TEST(_fp->mu_from_rho_T(100.0, 1173.15), 47.640433e-6, tol2);
570 ABS_TEST(_fp->mu_from_rho_T(400.0, 1173.15), 64.154608e-6, tol2);
571 REL_TEST(_fp->mu_from_p_T(1e6, 298.15), 889.898581797e-6, REL_TOL_EXTERNAL_VALUE);
572 REL_TEST(_fp->mu_from_p_T(2e6, 298.15), 889.763899645e-6, REL_TOL_EXTERNAL_VALUE);
573 REL_TEST(_fp->mu_from_p_T(1e6, 373.15), 281.825180491e-6, REL_TOL_EXTERNAL_VALUE);
574 REL_TEST(_fp->mu_from_p_T(2e6, 373.15), 282.09550632e-6, REL_TOL_EXTERNAL_VALUE);
575 REL_TEST(_fp->mu_from_p_T(1e6, 433.15), 170.526801634e-6, REL_TOL_EXTERNAL_VALUE);
576 REL_TEST(_fp->mu_from_p_T(2e6, 433.15), 170.780193827e-6, REL_TOL_EXTERNAL_VALUE);
577 REL_TEST(_fp->mu_from_p_T(1e6, 873.15), 3.2641885983e-5, REL_TOL_EXTERNAL_VALUE);
578 REL_TEST(_fp->mu_from_p_T(2e6, 873.15), 3.26820969808e-5, REL_TOL_EXTERNAL_VALUE);
579 REL_TEST(_fp->mu_from_p_T(1e6, 1173.15), 4.42374919686e-5, REL_TOL_EXTERNAL_VALUE);
580 REL_TEST(_fp->mu_from_p_T(2e6, 1173.15), 4.42823959629e-5, REL_TOL_EXTERNAL_VALUE);
583 REL_TEST(_fp->k_from_p_T(1.0e6, 323.15), 0.641, 1.0e-4);
584 REL_TEST(_fp->k_from_p_T(20.0e6, 623.15), 0.4541, 1.0e-4);
585 REL_TEST(_fp->k_from_p_T(50.0e6, 773.15), 0.2055, 1.0e-4);
587 ABS_TEST(_fp->k_from_p_T(1.0e6, 323.15), 0.640972, 5e-7);
588 ABS_TEST(_fp->k_from_p_T(20.0e6, 623.15), 0.454131, 7e-7);
589 ABS_TEST(_fp->k_from_p_T(50.0e6, 773.15), 0.205485, 5e-7);
593 REL_TEST(_fp->T_from_p_h(3.0e6, 500.0e3), 0.391798509e3,
tol);
594 REL_TEST(_fp->T_from_p_h(80.0e6, 500.0e3), 0.378108626e3,
tol);
595 REL_TEST(_fp->T_from_p_h(80.0e6, 1500.0e3), 0.611041229e3,
tol);
596 REL_TEST(_fp->T_from_p_h((
ADReal)80.0e6, (
ADReal)1500.0e3).value(), 0.611041229e3,
tol);
599 REL_TEST(_fp->T_from_p_h(1.0e3, 3000.0e3), 0.534433241e3,
tol);
600 REL_TEST(_fp->T_from_p_h(3.0e6, 3000.0e3), 0.575373370e3,
tol);
601 REL_TEST(_fp->T_from_p_h(3.0e6, 4000.0e3), 0.101077577e4,
tol);
604 REL_TEST(_fp->T_from_p_h(5.0e6, 3500.0e3), 0.801299102e3,
tol);
605 REL_TEST(_fp->T_from_p_h(5.0e6, 4000.0e3), 0.101531583e4,
tol);
606 REL_TEST(_fp->T_from_p_h(25.0e6, 3500.0e3), 0.875279054e3,
tol);
609 REL_TEST(_fp->T_from_p_h(40.0e6, 2700.0e3), 0.743056411e3,
tol);
610 REL_TEST(_fp->T_from_p_h(60.0e6, 2700.0e3), 0.791137067e3,
tol);
611 REL_TEST(_fp->T_from_p_h(60.0e6, 3200.0e3), 0.882756860e3,
tol);
614 REL_TEST(_fp->T_from_p_h(20.0e6, 1700.0e3), 0.6293083892e3,
tol);
615 REL_TEST(_fp->T_from_p_h(50.0e6, 2000.0e3), 0.6905718338e3,
tol);
616 REL_TEST(_fp->T_from_p_h(100.0e6, 2100.0e3), 0.7336163014e3,
tol);
619 REL_TEST(_fp->T_from_p_h(20.0e6, 2500.0e3), 0.6418418053e3,
tol);
620 REL_TEST(_fp->T_from_p_h(50.0e6, 2400.0e3), 0.7351848618e3,
tol);
621 REL_TEST(_fp->T_from_p_h(100.0e6, 2700.0e3), 0.8420460876e3,
tol);
815 auto run_tests = [
this](
const auto & example)
817 typedef typename std::decay<
decltype(example)>::type TestType;
818 const TestType pressure = 1.01e5;
819 const TestType temperature = 298.15;
821 const auto rho = _fp->rho_from_p_T(pressure, temperature);
822 const auto v = 1 /
rho;
823 auto e = _fp->e_from_p_T(pressure, temperature);
825 auto [p_test, T_test] = _fp->p_T_from_v_e(
v, e);
826 REL_TEST(pressure, p_test, REL_TOL_CONSISTENCY);
827 REL_TEST(temperature, T_test, REL_TOL_CONSISTENCY);
829 decltype(p_test) rho_test;
830 std::tie(rho_test, T_test) = _fp->rho_T_from_v_e(
v, e);
831 REL_TEST(
rho, rho_test, REL_TOL_CONSISTENCY);
832 REL_TEST(temperature, T_test, REL_TOL_CONSISTENCY);
834 REL_TEST(_fp->k_from_p_T(pressure, temperature), _fp->k_from_v_e(
v, e), REL_TOL_CONSISTENCY);
835 REL_TEST(_fp->e_from_p_rho(pressure,
rho), e, REL_TOL_CONSISTENCY);
837 constexpr Real perturbation_factor = 1 + 1e-8;
838 TestType de_dp, de_drho, de_dT;
839 _fp->e_from_p_rho(pressure,
rho, e, de_dp, de_drho);
841 (_fp->e_from_p_rho(perturbation_factor * pressure,
rho) - e) / (1e-8 * pressure);
842 REL_TEST(de_dp, de_dp_diff, 1e-2);
843 auto de_drho_diff = (_fp->e_from_p_rho(pressure, perturbation_factor *
rho) - e) / (1e-8 *
rho);
844 REL_TEST(de_drho, de_drho_diff, 1e-2);
846 _fp->e_from_p_T(pressure, temperature, e, de_dp, de_dT);
848 (_fp->e_from_p_T(perturbation_factor * pressure, temperature) - e) / (1e-8 * pressure);
849 REL_TEST(de_dp, de_dp_diff, 1e-2);
851 (_fp->e_from_p_T(pressure, perturbation_factor * temperature) - e) / (1e-8 * temperature);
852 REL_TEST(de_dT, de_dT_diff, 1e-2);
854 auto h = _fp->h_from_p_T(pressure, temperature);
855 std::tie(p_test, T_test) = _fp->p_T_from_v_h(
v, h);
856 REL_TEST(pressure, p_test, REL_TOL_CONSISTENCY);
857 REL_TEST(temperature, T_test, REL_TOL_CONSISTENCY);
859 REL_TEST(_fp->e_from_v_h(
v, h), e, REL_TOL_CONSISTENCY);
860 REL_TEST(_fp->T_from_v_e(
v, e), temperature, REL_TOL_CONSISTENCY);
861 REL_TEST(_fp->c_from_v_e(
v, e), _fp->c_from_p_T(pressure, temperature), REL_TOL_CONSISTENCY);
862 REL_TEST(_fp->cp_from_v_e(
v, e), _fp->cp_from_p_T(pressure, temperature), REL_TOL_CONSISTENCY);
863 REL_TEST(_fp->cv_from_v_e(
v, e), _fp->cv_from_p_T(pressure, temperature), REL_TOL_CONSISTENCY);
864 REL_TEST(_fp->mu_from_v_e(
v, e), _fp->mu_from_p_T(pressure, temperature), REL_TOL_CONSISTENCY);
865 REL_TEST(_fp->k_from_v_e(
v, e), _fp->k_from_p_T(pressure, temperature), REL_TOL_CONSISTENCY);
870 auto s = _fp->s_from_p_T(pressure, temperature);
871 bool conversion_succeeded =
false;
872 _fp->p_T_from_h_s(h, s, p0, T0, p_test, T_test, conversion_succeeded);
873 EXPECT_TRUE(conversion_succeeded);
874 REL_TEST(pressure, p_test, REL_TOL_CONSISTENCY);
875 REL_TEST(temperature, T_test, REL_TOL_CONSISTENCY);