470 static std::unordered_map<std::string, std::pair<std::vector<double>, std::vector<double>>> dict = {
471 {
"methane", {{19.597538587, -83.959667892, 3.000880, 0.763150, 0.00460, 8.744320, -4.469210000}, {4.306474465, 0.936220902, 5.577233895, 5.722644361}}},
472 {
"nitrogen", {{11.083437707, -22.202102428, 2.500310, 0.137320, -0.14660, 0.900660, 0}, {5.251822620, -5.393067706, 13.788988208, 0}}},
473 {
"carbondioxide", {{11.925182741, -16.118762264, 2.500020, 2.044520, -1.060440, 2.033660, 0.013930000}, {3.022758166, -2.844425476, 1.589964364, 1.121596090}}},
474 {
"ethane", {{24.675465518, -77.425313760, 3.002630, 4.339390, 1.237220, 13.19740, -6.019890000}, {1.831882406, 0.731306621, 3.378007481, 3.508721939}}},
475 {
"propane", {{31.602934734, -84.463284382, 3.029390, 6.605690, 3.1970, 19.19210, -8.372670000}, {1.297521801, 0.543210978, 2.583146083, 2.777773271}}},
476 {
"n-butane", {{20.884168790, -91.638478026, 3.339440, 9.448930, 6.894060, 24.46180, 14.782400000}, {1.101487798, 0.431957660, 4.502440459, 2.124516319}}},
477 {
"isobutane", {{20.413751434, -94.467620036, 3.067140, 8.975750, 5.251560, 25.14230, 16.138800000 }, {1.074673199, 0.485556021, 4.671261865, 2.191583480}}},
478 {
"n-pentane", {{14.536635738, -89.919548319, 3.0, 8.950430, 21.8360, 33.40320, 0}, {0.380391739, 1.789520971, 3.777411113, 0}}},
479 {
"isopentane", {{15.449937973, -101.298172792, 3.0, 11.76180, 20.11010, 33.16880, 0}, {0.635392636, 1.977271641, 4.169371131, 0}}},
480 {
"n-hexane", {{14.345993081,-96.165722367,3.0,11.69770,26.81420,38.61640,0}, {0.359036667, 1.691951873, 3.596924107, 0}}},
481 {
"n-heptane", {{15.063809621, -97.345252349, 3.0, 13.72660, 30.47070, 43.55610, 0}, {0.314348398, 1.548136560, 3.259326458, 0}}},
482 {
"n-octane", {{15.864709639, -97.370667555, 3.0, 15.68650, 33.80290, 48.17310, 0}, {0.279143540, 1.431644769, 2.973845992,0}}},
483 {
"hydrogen", {{13.796474934, -175.864487294, 1.479060, 0.958060, 0.454440, 1.560390, -1.375600000}, {6.891654113, 9.847634830, 49.765290750, 50.367279301}}},
484 {
"oxygen", {{10.001874708,-14.996095135,2.501460,1.075580,1.013340,0,0}, {14.461722565, 7.223325463, 0, 0}}},
485 {
"carbonmonoxide", {{10.814500335, -19.843695435, 2.500550, 1.028650, 0.004930, 0, 0}, {11.675075301, 5.305158133, 0, 0}}},
486 {
"water", {{8.203553050, -11.996306443, 3.003920, 0.010590, 0.987630, 3.069040, 0}, {0.415386589, 1.763895929, 3.874803739,0}}},
487 {
"helium", {{13.628441975,-143.470759602,1.5,0,0,0,0}, {0,0,0,0}}},
488 {
"argon", {{8.316662546, -4.946502600,1.50,0,0,0,0}, {0,0,0,0}}}
491 if (dict.find(fluid) != dict.end()){
492 auto [n, theta] = dict[fluid];
494 throw std::invalid_argument(fluid +
" does not have 7 n coefficients in ideal gas");
496 if (theta.size() != 4){
497 throw std::invalid_argument(fluid +
" does not have 4 theta coefficients in ideal gas");
501 c.
n0.insert(c.
n0.begin(), 0.0);
507 throw std::invalid_argument(
"Not able to get ideal-gas coefficients for " + fluid);
514 static std::map<std::string, std::vector<double>> n_dict_mne = {
515 {
"methane", {0.57335704239162,-0.16760687523730e1,0.23405291834916,-0.21947376343441,0.16369201404128e-1,0.15004406389280e-1,0.98990489492918e-1,0.58382770929055,-0.74786867560390,0.30033302857974,0.20985543806568,-0.18590151133061e-1,-0.15782558339049,0.12716735220791,-0.32019743894346e-1,-0.68049729364536e-1,0.24291412853736e-1,0.51440451639444e-2,-0.19084949733532e-1,0.55229677241291e-2,-0.44197392976085e-2,0.40061416708429e-1,-0.33752085907575e-1,-0.25127658213357e-2}},
516 {
"nitrogen", { 0.59889711801201,-0.16941557480731e1,0.24579736191718,-0.23722456755175,0.17954918715141e-1,0.14592875720215e-1,0.10008065936206,0.73157115385532,-0.88372272336366,0.31887660246708,0.20766491728799,-0.19379315454158e-1,-0.16936641554983,0.13546846041701,-0.33066712095307e-1,-0.60690817018557e-1,0.12797548292871e-1,0.58743664107299e-2,-0.18451951971969e-1,0.47226622042472e-2,-0.52024079680599e-2,0.43563505956635e-1,-0.36251690750939e-1,-0.28974026866543e-2}},
517 {
"ethane", { 0.63596780450714,-0.17377981785459e1,0.28914060926272,-0.33714276845694,0.22405964699561e-1,0.15715424886913e-1,0.11450634253745,0.10612049379745e1,-0.12855224439423e1,0.39414630777652,0.31390924682041,-0.21592277117247e-1,-0.21723666564905,-0.28999574439489,0.42321173025732,0.46434100259260e-1,-0.13138398329741,0.11492850364368e-1,-0.33387688429909e-1,0.15183171583644e-1,-0.47610805647657e-2,0.46917166277885e-1,-0.39401755804649e-1,-0.32569956247611e-2}}
520 static std::map<std::string, std::vector<double>> n_dict_main = {
521 {
"propane", {0.10403973107358e1,-0.28318404081403e1,0.84393809606294,-0.76559591850023e-1,0.94697373057280e-1,0.24796475497006e-3,0.27743760422870,-0.43846000648377e-1,-0.26991064784350,-0.69313413089860e-1,-0.29632145981653e-1,0.14040126751380e-1}},
522 {
"n-butane", { 0.10626277411455e1,-0.28620951828350e1,0.88738233403777,-0.12570581155345,0.10286308708106,0.25358040602654e-3,0.32325200233982,-0.37950761057432e-1,-0.32534802014452,-0.79050969051011e-1,-0.20636720547775e-1,0.57053809334750e-2}},
523 {
"isobutane", {0.10429331589100e1,-0.28184272548892e1,0.86176232397850,-0.10613619452487,0.98615749302134e-1,0.23948208682322e-3,0.30330004856950,-0.41598156135099e-1,-0.29991937470058,-0.80369342764109e-1,-0.29761373251151e-1,0.13059630303140e-1}},
524 {
"n-pentane", {0.10968643098001e1,-0.29988888298061e1,0.99516886799212,-0.16170708558539,0.11334460072775,0.26760595150748e-3,0.40979881986931,-0.40876423083075e-1,-0.38169482469447,-0.10931956843993,-0.32073223327990e-1,0.16877016216975e-1}},
525 {
"isopentane", {0.11017531966644e1,-0.30082368531980e1,0.99411904271336,-0.14008636562629,0.11193995351286,0.29548042541230e-3,0.36370108598133,-0.48236083488293e-1,-0.35100280270615,-0.10185043812047,-0.35242601785454e-1,0.19756797599888e-1}},
526 {
"n-hexane", {0.10553238013661e1,-0.26120615890629e1,0.76613882967260,-0.29770320622459,0.11879907733358,0.27922861062617e-3,0.46347589844105,0.11433196980297e-1,-0.48256968738131,-0.93750558924659e-1,-0.67273247155994e-2,-0.51141583585428e-2}},
527 {
"n-heptane", {0.10543747645262e1,-0.26500681506144e1,0.81730047827543,-0.30451391253428,0.12253868710800,0.27266472743928e-3,0.49865825681670,-0.71432815084176e-3,-0.54236895525450,-0.13801821610756,-0.61595287380011e-2,0.48602510393022e-3}},
528 {
"n-octane", {0.10722544875633e1,-0.24632951172003e1,0.65386674054928,-0.36324974085628,0.12713269626764,0.30713572777930e-3,0.52656856987540,0.19362862857653e-1,-0.58939426849155,-0.14069963991934,-0.78966330500036e-2,0.33036597968109e-2}},
529 {
"oxygen", { 0.88878286369701,-0.24879433312148e1,0.59750190775886,0.96501817061881e-2,0.71970428712770e-1,0.22337443000195e-3,0.18558686391474,-0.38129368035760e-1,-0.15352245383006,-0.26726814910919e-1,-0.25675298677127e-1,0.95714302123668e-2}},
530 {
"carbonmonoxide", {0.92310041400851,-0.24885845205800e1,0.58095213783396,0.28859164394654e-1,0.70256257276544e-1,0.21687043269488e-3,0.13758331015182,-0.51501116343466e-1,-0.14865357483379,-0.38857100886810e-1,-0.29100433948943e-1,0.14155684466279e-1}},
531 {
"argon", {0.85095714803969,-0.24003222943480e1,0.54127841476466,0.16919770692538e-1,0.68825965019035e-1,0.21428032815338e-3,0.17429895321992,-0.33654495604194e-1,-0.13526799857691,-0.16387350791552e-1,-0.24987666851475e-1,0.88769204815709e-2}}
534 if (n_dict_main.find(fluid) != n_dict_main.end()){
536 pc.
n = n_dict_main[fluid];
537 pc.
t = {0.250,1.125,1.500,1.375,0.250,0.875,0.625,1.750,3.625,3.625,14.500,12.000};
538 pc.
d = {1,1,1,2,3,7,2,5,1,4,3,4};
539 pc.
c = {0,0,0,0,0,0,1,1,1,1,1,1};
540 pc.
l = {0,0,0,0,0,0,1,1,2,2,3,3};
543 else if (n_dict_mne.find(fluid) != n_dict_mne.end()){
545 pc.
n = n_dict_mne.at(fluid);
546 pc.
t = {0.125,1.125,0.375,1.125,0.625,1.500,0.625,2.625,2.750,2.125,2.000,1.750,4.500,4.750,5.000,4.000,4.500,7.500,14.000,11.500,26.000,28.000,30.000,16.000};
547 pc.
d = {1,1,2,2,4,4,1,1,1,2,3,6,2,3,3,4,4,2,3,4,5,6,6,7};
548 pc.
c = {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
549 pc.
l = {0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,3,3,3,6,6,6,6};
552 else if (fluid ==
"carbondioxide"){
554 pc.
n = {0.52646564804653,-0.14995725042592e1, 0.27329786733782, 0.12949500022786, 0.15404088341841,-0.58186950946814,-0.18022494838296,-0.95389904072812e-1,-0.80486819317679e-2,-0.35547751273090e-1,-0.28079014882405,-0.82435890081677e-1, 0.10832427979006e-1,-0.67073993161097e-2,-0.46827907600524e-2,-0.28359911832177e-1, 0.19500174744098e-1,-0.21609137507166, 0.43772794926972,-0.22130790113593, 0.15190189957331e-1,-0.15380948953300e-1};
555 pc.
t = {0.000,1.250,1.625,0.375,0.375,1.375,1.125,1.375,0.125,1.625,3.750,3.500,7.500,8.000,6.000,16.000,11.000,24.000,26.000,28.000,24.000,26.000};
556 pc.
d = {1,1,2,3,3,3,4,5,6,6,1,4,1,1,3,3,4,5,5,5,5,5};
557 pc.
c = {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
558 pc.
l = {0,0,0,0,1,1,1,1,1,1,2,2,3,3,3,3,3,5,5,5,6,6};
561 else if (fluid ==
"hydrogen"){
563 pc.
n = {0.53579928451252e1,-0.62050252530595e1, 0.13830241327086,-0.71397954896129e-1, 0.15474053959733e-1,-0.14976806405771,-0.26368723988451e-1, 0.56681303156066e-1,-0.60063958030436e-1,-0.45043942027132, 0.42478840244500,-0.21997640827139e-1,-0.10499521374530e-1,-0.28955902866816e-2};
564 pc.
t = {0.500,0.625,0.375,0.625,1.125,2.625,0.000,0.250,1.375,4.000,4.250,5.000,8.000,8.000};
565 pc.
d = {1,1,2,2,4,1,5,5,5,1,1,2,5,1};
566 pc.
c = {0,0,0,0,0,1,1,1,1,1,1,1,1,1};
567 pc.
l = {0,0,0,0,0,1,1,1,1,2,2,3,3,5};
570 else if (fluid ==
"water"){
572 pc.
n = {0.82728408749586,-0.18602220416584e1,-0.11199009613744e1,0.15635753976056,0.87375844859025,-0.36674403715731,0.53987893432436e-1,0.10957690214499e1,0.53213037828563e-1,0.13050533930825e-1,-0.41079520434476,0.14637443344120,-0.55726838623719e-1,-0.11201774143800e-1,-0.66062758068099e-2,0.46918522004538e-2};
573 pc.
t = {0.500,1.250,1.875,0.125,1.500,1.000,0.750,1.500,0.625,2.625,5.000,4.000,4.500,3.000,4.000,6.000};
574 pc.
d = {1,1,1,2,2,3,4,1,5,5,1,2,4,4,1,1};
575 pc.
c = {0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1};
576 pc.
l = {0,0,0,0,0,0,0,1,1,1,2,2,2,3,5,5};
579 else if (fluid ==
"helium"){
581 pc.
n = {-0.45579024006737,0.12516390754925e1,-0.15438231650621e1,0.20467489707221e-1,-0.34476212380781,-0.20858459512787e-1,0.16227414711778e-1,-0.57471818200892e-1,0.19462416430715e-1,-0.33295680123020e-1,-0.10863577372367e-1,-0.22173365245954e-1};
582 pc.
t = {0.000,0.125,0.750,1.000,0.750,2.625,0.125,1.250,2.000,1.000,4.500,5.000};
583 pc.
d = {1,1,1,4,1,3,5,5,5,2,1,2};
584 pc.
c = {0,0,0,0,1,1,1,1,1,1,1,1};
585 pc.
l = {0,0,0,0,1,1,1,1,1,2,3,3};
589 throw std::invalid_argument(
"unable to load pure coefficients for " + fluid);
598 static std::unordered_map<std::pair<std::string, std::string>,
BetasGammas, boost::hash<std::pair<std::string, std::string>>> BIP_data = {
599 {{
"methane",
"nitrogen"}, {0.998721377,1.013950311,0.998098830,0.979273013}},
600 {{
"methane",
"carbondioxide"}, {0.999518072,1.002806594,1.022624490,0.975665369}},
601 {{
"methane",
"ethane"}, {0.997547866,1.006617867,0.996336508,1.049707697}},
602 {{
"methane",
"propane"}, {1.004827070,1.038470657,0.989680305,1.098655531}},
603 {{
"methane",
"n-butane"}, {0.979105972,1.045375122,0.994174910,1.171607691}},
604 {{
"methane",
"isobutane"}, {1.011240388,1.054319053,0.980315756,1.161117729}},
605 {{
"methane",
"n-pentane"}, {0.948330120,1.124508039,0.992127525,1.249173968}},
606 {{
"methane",
"isopentane"}, {1.000000000,1.343685343,1.000000000,1.188899743}},
607 {{
"methane",
"n-hexane"}, {0.958015294,1.052643846,0.981844797,1.330570181}},
608 {{
"methane",
"n-heptane"}, {0.962050831,1.156655935,0.977431529,1.379850328}},
609 {{
"methane",
"n-octane"}, {0.994740603,1.116549372,0.957473785,1.449245409}},
610 {{
"methane",
"hydrogen"}, {1.000000000,1.018702573,1.000000000,1.352643115}},
611 {{
"methane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,0.950000000}},
612 {{
"methane",
"carbonmonoxide"}, {0.997340772,1.006102927,0.987411732,0.987473033}},
613 {{
"methane",
"water"}, {1.012783169,1.585018334,1.063333913,0.775810513}},
614 {{
"methane",
"helium"}, {1.000000000,0.881405683,1.000000000,3.159776855}},
615 {{
"methane",
"argon"}, {1.034630259,1.014678542,0.990954281,0.989843388}},
616 {{
"nitrogen",
"carbondioxide"}, {0.977794634,1.047578256,1.005894529,1.107654104}},
617 {{
"nitrogen",
"ethane"}, {0.978880168,1.042352891,1.007671428,1.098650964}},
618 {{
"nitrogen",
"propane"}, {0.974424681,1.081025408,1.002677329,1.201264026}},
619 {{
"nitrogen",
"n-butane"}, {0.996082610,1.146949309,0.994515234,1.304886838}},
620 {{
"nitrogen",
"isobutane"}, {0.986415830,1.100576129,0.992868130,1.284462634}},
621 {{
"nitrogen",
"n-pentane"}, {1.000000000,1.078877166,1.000000000,1.419029041}},
622 {{
"nitrogen",
"isopentane"}, {1.000000000,1.154135439,1.000000000,1.381770770}},
623 {{
"nitrogen",
"n-hexane"}, {1.000000000,1.195952177,1.000000000,1.472607971}},
624 {{
"nitrogen",
"n-heptane"}, {1.000000000,1.404554090,1.000000000,1.520975334}},
625 {{
"nitrogen",
"n-octane"}, {1.000000000,1.186067025,1.000000000,1.733280051}},
626 {{
"nitrogen",
"hydrogen"}, {0.972532065,0.970115357,0.946134337,1.175696583}},
627 {{
"nitrogen",
"oxygen"}, {0.999521770,0.997082328,0.997190589,0.995157044}},
628 {{
"nitrogen",
"carbonmonoxide"}, {1.000000000,1.008690943,1.000000000,0.993425388}},
629 {{
"nitrogen",
"water"}, {1.000000000,1.094749685,1.000000000,0.968808467}},
630 {{
"nitrogen",
"helium"}, {0.969501055,0.932629867,0.692868765,1.471831580}},
631 {{
"nitrogen",
"argon"}, {1.004166412,1.002212182,0.999069843,0.990034831}},
632 {{
"carbondioxide",
"ethane"}, {1.002525718,1.032876701,1.013871147,0.900949530}},
633 {{
"carbondioxide",
"propane"}, {0.996898004,1.047596298,1.033620538,0.908772477}},
634 {{
"carbondioxide",
"n-butane"}, {1.174760923,1.222437324,1.018171004,0.911498231}},
635 {{
"carbondioxide",
"isobutane"}, {1.076551882,1.081909003,1.023339824,0.929982936}},
636 {{
"carbondioxide",
"n-pentane"}, {1.024311498,1.068406078,1.027000795,0.979217302}},
637 {{
"carbondioxide",
"isopentane"}, {1.060793104,1.116793198,1.019180957,0.961218039}},
638 {{
"carbondioxide",
"n-hexane"}, {1.000000000,0.851343711,1.000000000,1.038675574}},
639 {{
"carbondioxide",
"n-heptane"}, {1.205469976,1.164585914,1.011806317,1.046169823}},
640 {{
"carbondioxide",
"n-octane"}, {1.026169373,1.104043935,1.029690780,1.074455386}},
641 {{
"carbondioxide",
"hydrogen"}, {0.904142159,1.152792550,0.942320195,1.782924792}},
642 {{
"carbondioxide",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
643 {{
"carbondioxide",
"carbonmonoxide"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
644 {{
"carbondioxide",
"water"}, {0.949055959,1.542328793,0.997372205,0.775453996}},
645 {{
"carbondioxide",
"helium"}, {0.846647561,0.864141549,0.768377630,3.207456948}},
646 {{
"carbondioxide",
"argon"}, {1.008392428,1.029205465,0.996512863,1.050971635}},
647 {{
"ethane",
"propane"}, {0.997607277,1.003034720,0.996199694,1.014730190}},
648 {{
"ethane",
"n-butane"}, {0.999157205,1.006179146,0.999130554,1.034832749}},
649 {{
"ethane",
"isobutane"}, {1.000000000,1.006616886,1.000000000,1.033283811}},
650 {{
"ethane",
"n-pentane"}, {0.993851009,1.026085655,0.998688946,1.066665676}},
651 {{
"ethane",
"isopentane"} , {1.000000000,1.045439246,1.000000000,1.021150247}},
652 {{
"ethane",
"n-hexane"}, {1.000000000,1.169701102,1.000000000,1.092177796}},
653 {{
"ethane",
"n-heptane"}, {1.000000000,1.057666085,1.000000000,1.134532014}},
654 {{
"ethane",
"n-octane"}, {1.007469726,1.071917985,0.984068272,1.168636194}},
655 {{
"ethane",
"hydrogen"}, {0.925367171,1.106072040,0.932969831,1.902008495}},
656 {{
"ethane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
657 {{
"ethane",
"carbonmonoxide"}, {1.000000000,1.201417898,1.000000000,1.069224728}},
658 {{
"ethane",
"water"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
659 {{
"ethane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
660 {{
"ethane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
661 {{
"propane",
"n-butane"}, {0.999795868,1.003264179,1.000310289,1.007392782}},
662 {{
"propane",
"isobutane"}, {0.999243146,1.001156119,0.998012298,1.005250774}},
663 {{
"propane",
"n-pentane"}, {1.044919431,1.019921513,0.996484021,1.008344412}},
664 {{
"propane",
"isopentane"}, {1.040459289,0.999432118,0.994364425,1.003269500}},
665 {{
"propane",
"n-hexane"}, {1.000000000,1.057872566,1.000000000,1.025657518}},
666 {{
"propane",
"n-heptane"}, {1.000000000,1.079648053,1.000000000,1.050044169}},
667 {{
"propane",
"n-octane"}, {1.000000000,1.102764612,1.000000000,1.063694129}},
668 {{
"propane",
"hydrogen"}, {1.000000000,1.074006110,1.000000000,2.308215191}},
669 {{
"propane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
670 {{
"propane",
"carbonmonoxide"}, {1.000000000,1.108143673,1.000000000,1.197564208}},
671 {{
"propane",
"water"}, {1.000000000,1.011759763,1.000000000,0.600340961}},
672 {{
"propane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
673 {{
"propane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
674 {{
"n-butane",
"isobutane"}, {1.000880464,1.000414440,1.000077547,1.001432824}},
675 {{
"n-butane",
"n-pentane"}, {1.000000000,1.018159650,1.000000000,1.002143640}},
676 {{
"n-butane",
"isopentane"}, {1.000000000,1.002728262,1.000000000,1.000792201}},
677 {{
"n-butane",
"n-hexane"}, {1.000000000,1.034995284,1.000000000,1.009157060}},
678 {{
"n-butane",
"n-heptane"}, {1.000000000,1.019174227,1.000000000,1.021283378}},
679 {{
"n-butane",
"n-octane"}, {1.000000000,1.046905515,1.000000000,1.033180106}},
680 {{
"n-butane",
"hydrogen"}, {1.000000000,1.232939523,1.000000000,2.509259945}},
681 {{
"n-butane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
682 {{
"n-butane",
"carbonmonoxide"}, {1.000000000,1.084740904,1.000000000,1.174055065}},
683 {{
"n-butane",
"water"}, {1.000000000,1.223638763,1.000000000,0.615512682}},
684 {{
"n-butane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
685 {{
"n-butane",
"argon"}, {1.000000000,1.214638734,1.000000000,1.245039498}},
686 {{
"isobutane",
"n-pentane"}, {1.000000000,1.002779804,1.000000000,1.002495889}},
687 {{
"isobutane",
"isopentane"}, {1.000000000,1.002284197,1.000000000,1.001835788}},
688 {{
"isobutane",
"n-hexane"}, {1.000000000,1.010493989,1.000000000,1.006018054}},
689 {{
"isobutane",
"n-heptane"}, {1.000000000,1.021668316,1.000000000,1.009885760}},
690 {{
"isobutane",
"n-octane"}, {1.000000000,1.032807063,1.000000000,1.013945424}},
691 {{
"isobutane",
"hydrogen"}, {1.000000000,1.147595688,1.000000000,1.895305393}},
692 {{
"isobutane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
693 {{
"isobutane",
"carbonmonoxide"}, {1.000000000,1.087272232,1.000000000,1.161523504}},
694 {{
"isobutane",
"water"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
695 {{
"isobutane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
696 {{
"isobutane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
697 {{
"n-pentane",
"isopentane"}, {1.000000000,1.000024352,1.000000000,1.000050537}},
698 {{
"n-pentane",
"n-hexane"}, {1.000000000,1.002480637,1.000000000,1.000761237}},
699 {{
"n-pentane",
"n-heptane"}, {1.000000000,1.008972412,1.000000000,1.002441051}},
700 {{
"n-pentane",
"n-octane"}, {1.000000000,1.069223964,1.000000000,1.016422347}},
701 {{
"n-pentane",
"hydrogen"}, {1.000000000,1.188334783,1.000000000,2.013859174}},
702 {{
"n-pentane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
703 {{
"n-pentane",
"carbonmonoxide"}, {1.000000000,1.119954454,1.000000000,1.206195595}},
704 {{
"n-pentane",
"water"}, {1.000000000,0.956677310,1.000000000,0.447666011}},
705 {{
"n-pentane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
706 {{
"n-pentane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
707 {{
"isopentane",
"n-hexane"}, {1.000000000,1.002996055,1.000000000,1.001204174}},
708 {{
"isopentane",
"n-heptane"}, {1.000000000,1.009928531,1.000000000,1.003194615}},
709 {{
"isopentane",
"n-octane"}, {1.000000000,1.017880981,1.000000000,1.005647480}},
710 {{
"isopentane",
"hydrogen"}, {1.000000000,1.184339122,1.000000000,1.996386669}},
711 {{
"isopentane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
712 {{
"isopentane",
"carbonmonoxide"}, {1.000000000,1.116693501,1.000000000,1.199475627}},
713 {{
"isopentane",
"water"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
714 {{
"isopentane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
715 {{
"isopentane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
716 {{
"n-hexane",
"n-heptane"}, {1.000000000,1.001508227,1.000000000,0.999762786}},
717 {{
"n-hexane",
"n-octane"}, {1.000000000,1.006268954,1.000000000,1.001633952}},
718 {{
"n-hexane",
"hydrogen"}, {1.000000000,1.243461678,1.000000000,3.021197546}},
719 {{
"n-hexane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
720 {{
"n-hexane",
"carbonmonoxide"}, {1.000000000,1.155145836,1.000000000,1.233435828}},
721 {{
"n-hexane",
"water"}, {1.000000000,1.170217596,1.000000000,0.569681333}},
722 {{
"n-hexane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
723 {{
"n-hexane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
724 {{
"n-heptane",
"n-octane"}, {1.000000000,1.006767176,1.000000000,0.998793111}},
725 {{
"n-heptane",
"hydrogen"}, {1.000000000,1.159131722,1.000000000,3.169143057}},
726 {{
"n-heptane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
727 {{
"n-heptane",
"carbonmonoxide"}, {1.000000000,1.190354273,1.000000000,1.256295219}},
728 {{
"n-heptane",
"water"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
729 {{
"n-heptane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
730 {{
"n-heptane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
731 {{
"n-octane",
"hydrogen"}, {1.000000000,1.305249405,1.000000000,2.191555216}},
732 {{
"n-octane",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
733 {{
"n-octane",
"carbonmonoxide"}, {1.000000000,1.219206702,1.000000000,1.276744779}},
734 {{
"n-octane",
"water"}, {1.000000000,0.599484191,1.000000000,0.662072469}},
735 {{
"n-octane",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
736 {{
"n-octane",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
737 {{
"hydrogen",
"oxygen"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
738 {{
"hydrogen",
"carbonmonoxide"}, {1.000000000,1.121416201,1.000000000,1.377504607}},
739 {{
"hydrogen",
"water"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
740 {{
"hydrogen",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
741 {{
"hydrogen",
"argon"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
742 {{
"oxygen",
"carbonmonoxide"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
743 {{
"oxygen",
"water"}, {1.000000000,1.143174289,1.000000000,0.964767932}},
744 {{
"oxygen",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
745 {{
"oxygen",
"argon"}, {0.999746847,0.993907223,1.000023103,0.990430423}},
746 {{
"carbonmonoxide",
"water"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
747 {{
"carbonmonoxide",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
748 {{
"carbonmonoxide",
"argon"}, {1.000000000,1.159720623,1.000000000,0.954215746}},
749 {{
"water",
"helium"}, {1.000000000,1.000000000,1.000000000,1.000000000}},
750 {{
"water",
"argon"}, {1.000000000,1.038993495,1.000000000,1.070941866}},
751 {{
"helium",
"argon"}, {1.00000000,1.00000000,1.00000000,1.00000000}}
753 auto pair_normal = std::make_pair(fluid1, fluid2);
754 if (BIP_data.find(pair_normal) != BIP_data.end()){
755 return BIP_data[pair_normal];
757 auto pair_backwards = std::make_pair(fluid2, fluid1);
758 if (BIP_data.find(pair_backwards) != BIP_data.end()){
759 auto bg = BIP_data.at(pair_backwards);
761 bg.betaT = 1/bg.betaT;
762 bg.betaV = 1/bg.betaV;
765 throw std::invalid_argument(
"Unable to obtain BIP for the pair {" + fluid1 +
"," + fluid2 +
"}");
807 std::pair<std::string, std::string> sortedpair = std::minmax(fluid1, fluid2);
808 auto sortpair = [](
const std::string &n1,
const std::string& n2) ->std::pair<std::string, std::string> {
return std::minmax(n1, n2); };
811 const std::set<std::pair<std::string, std::string>> generalized = {
812 sortpair(
"methane",
"n-butane"), sortpair(
"methane",
"isobutane"), sortpair(
"ethane",
"propane"),
813 sortpair(
"ethane",
"n-butane"), sortpair(
"ethane",
"isobutane"), sortpair(
"propane",
"n-butane"),
814 sortpair(
"propane",
"isobutane"), sortpair(
"n-butane",
"isobutane")
818 if (sortedpair == sortpair(
"methane",
"nitrogen")){
819 dc.
n = {-0.98038985517335e-2,0.42487270143005e-3,-0.34800214576142e-1 ,-0.13333813013896 ,-0.11993694974627e-1 ,0.69243379775168e-1 ,-0.31022508148249 ,0.24495491753226 ,0.22369816716981};
820 dc.
d = {1,4,1,2,2,2,2,2,3};
821 dc.
t = {0.000,1.850,7.850,5.400,0.000,0.750,2.800,4.450,4.250};
822 dc.
eta = {0,0,1.000,1.000,0.250,0.000,0.000,0.000,0.000};
823 dc.
epsilon = {0,0,0.5,0.5,0.5,0.5,0.5,0.5,0.5};
824 dc.
beta = {0,0,1.0,1.0,2.5,3.0,3.0,3.0,3.0};
825 dc.
gamma = {0,0,0.500,0.500,0.500,0.500,0.500,0.500,0.500};
828 if (sortedpair == sortpair(
"methane",
"carbondioxide")){
829 dc.
n = {-0.10859387354942,0.80228576727389e-1,-0.93303985115717e-2,0.40989274005848e-1,-0.24338019772494,0.23855347281124};
830 dc.
d = {1,2,3,1,2,3};
831 dc.
t = {2.600,1.950,0.000,3.950,7.950,8.000};
832 dc.
eta = {0,0,0,1.000,0.500,0.000};
833 dc.
epsilon = {0,0,0,0.5,0.5,0.5};
834 dc.
beta = {0,0,0,1.0,2.0,3.0};
835 dc.
gamma = {0,0,0,0.500,0.500,0.500};
838 if (sortedpair == sortpair(
"ethane",
"methane")){
839 dc.
n = {-0.80926050298746e-3,-0.75381925080059e-3,-0.41618768891219e-1,-0.23452173681569,0.14003840584586,0.63281744807738e-1,-0.34660425848809e-1,-0.23918747334251,0.19855255066891e-2,0.61777746171555e1,-0.69575358271105e1,0.10630185306388e1};
840 dc.
t = {0.650,1.550,3.100,5.900,7.050,3.350,1.200,5.800,2.700,0.450,0.550,1.950};
841 dc.
d = {3,4,1,2,2,2,2,2,2,3,3,3};
842 dc.
eta = {0,0,1.000,1.000,1.000,0.875,0.750,0.500,0.000,0.000,0.000,0.000};
843 dc.
epsilon = {0,0,0.500,0.500,0.500,0.500,0.500,0.500,0.500,0.500,0.500,0.500};
844 dc.
beta = {0,0,1.000,1.000,1.000,1.250,1.500,2.000,3.000,3.000,3.000,3.000};
845 dc.
gamma = {0,0,0.500,0.500,0.500,0.500,0.500,0.500,0.500,0.500,0.500,0.500};
848 if (sortedpair == sortpair(
"propane",
"methane")){
849 dc.
n = {0.13746429958576e-1,-0.74425012129552e-2,-0.45516600213685e-2,-0.54546603350237e-2, 0.23682016824471e-2, 0.18007763721438,-0.44773942932486, 0.19327374888200e-1,-0.30632197804624};
850 dc.
t = {1.850,3.950,0.000,1.850,3.850,5.250,3.850,0.200,6.500};
851 dc.
d = {3,3,4,4,4,1,1,1,2};
852 dc.
eta = {0,0,0,0,0,0.250,0.250,0.000,0.000};
853 dc.
epsilon = {0,0,0,0,0,0.500,0.500,0.500,0.500};
854 dc.
beta = {0,0,0,0,0,0.750,1.000,2.000,3.000};
855 dc.
gamma = {0,0,0,0,0,0.500,0.500,0.500,0.500};
858 if (sortedpair == sortpair(
"nitrogen",
"carbondioxide")){
859 dc.
n = {0.28661625028399,-0.10919833861247,-0.11374032082270e1,0.76580544237358,0.42638000926819e-2,0.17673538204534};
860 dc.
t = {1.850,1.400,3.200,2.500,8.000,3.750};
861 dc.
d = {2,3,1,1,1,2};
862 dc.
eta = {0,0,0.250,0.250,0.000,0.000};
863 dc.
epsilon = {0,0,0.500,0.500,0.500,0.500};
864 dc.
beta = {0,0,0.750,1.000,2.000,3.000};
865 dc.
gamma = {0,0,0.500,0.500,0.500,0.500};
868 if (sortedpair == sortpair(
"nitrogen",
"ethane")){
869 dc.
n = {-0.47376518126608,0.48961193461001,-0.57011062090535e-2,-0.19966820041320,-0.69411103101723,0.69226192739021};
870 dc.
d = {2,2,3,1,2,2};
871 dc.
t = {0.000,0.050,0.000,3.650,4.900,4.450};
872 dc.
eta = {0,0,0,1.000,1.000,0.875};
873 dc.
epsilon = {0,0,0,0.500, 0.500, 0.500};
874 dc.
beta = {0,0,0,1.000,1.000,1.250};
875 dc.
gamma = {0,0,0,0.500,0.500,0.500};
878 if (sortedpair == sortpair(
"methane",
"hydrogen")){
879 dc.
n = {-0.25157134971934,-0.62203841111983e-2,0.88850315184396e-1,-0.35592212573239e-1};
880 dc.
t = {2.000,-1.000,1.750,1.400};
885 dc.
gamma = {0,0,0,0};
888 if (generalized.find(sortedpair) != generalized.end()){
889 dc.
n = {0.25574776844118e1,-0.79846357136353e1,0.47859131465806e1,-0.73265392369587,0.13805471345312e1,0.28349603476365,-0.49087385940425,-0.10291888921447,0.11836314681968,0.55527385721943e-4};
890 dc.
d = {1,1,1,2,2,3,3,4,4,4};
891 dc.
t = {1.000,1.550,1.700,0.250,1.350,0.000,1.250,0.000,0.700,5.400};
892 dc.
eta = {0,0,0,0,0,0,0,0,0,0};
893 dc.
epsilon = {0,0,0,0,0,0,0,0,0,0};
894 dc.
beta = {0,0,0,0,0,0,0,0,0,0};
895 dc.
gamma = {0,0,0,0,0,0,0,0,0,0};
899 throw std::invalid_argument(
"could not get departure coeffs for {" + fluid1 +
"," + fluid2 +
"}");