The following routine must be called once before any other routine.
This function sets up all the necessary parameters for the AGA8 equation of state in its "DETAIL" version. It initializes:
The function also performs necessary precalculations of constants used in the equation of state calculations to optimize performance.
This implementation corresponds to the reference equations for natural gas mixtures as published in the DETAIL formulation.
807{
808
809
810
814 double d0;
815
817
818
840
841
843 for (
int i = 1; i <=
NTerms; ++i)
844 {
851 sn[i] = 0;
853 wn[i] = 0;
854 }
855
856 for (
int i = 1; i <=
MaxFlds; ++i)
857 {
858 Ei[i] = 0;
861 Ki[i] = 0;
863 Si[i] = 0;
864 Wi[i] = 0;
866 for (
int j = 1; j <=
MaxFlds; ++j)
867 {
868 Eij[i][j] = 1;
869 Gij[i][j] = 1;
870 Kij[i][j] = 1;
871 Uij[i][j] = 1;
872 }
873 }
874
875
887 an[12] = -0.78665925;
888 an[13] = 0.00000000229129;
891 an[16] = -0.04408159;
892 an[17] = -0.003433888;
896 an[21] = -0.001600573;
899 an[24] = -0.06689957;
902 an[27] = -0.002860589;
903 an[28] = -0.008098836;
905 an[30] = 0.007224479;
908 an[33] = -0.07931491;
910 an[35] = -5.99905E-17;
913 an[38] = -0.007022847;
920 an[45] = -0.005399808;
923 an[48] = 0.003733797;
925 an[50] = 0.002168144;
927 an[52] = 0.000205518;
928 an[53] = 0.009776195;
929 an[54] = -0.02048708;
931 an[56] = 0.006862415;
932 an[57] = -0.001226752;
933 an[58] = 0.002850908;
934
935
994
995
996
1035
1036
1095
1096
1121 sn[8] = 1;
1122 sn[9] = 1;
1123 wn[10] = 1;
1124 wn[11] = 1;
1125 wn[12] = 1;
1126
1127
1128 Ei[1] = 151.3183;
1129 Ei[2] = 99.73778;
1130 Ei[3] = 241.9606;
1131 Ei[4] = 244.1667;
1132 Ei[5] = 298.1183;
1133 Ei[6] = 324.0689;
1134 Ei[7] = 337.6389;
1135 Ei[8] = 365.5999;
1136 Ei[9] = 370.6823;
1137 Ei[10] = 402.636293;
1138 Ei[11] = 427.72263;
1139 Ei[12] = 450.325022;
1140 Ei[13] = 470.840891;
1141 Ei[14] = 489.558373;
1142 Ei[15] = 26.95794;
1143 Ei[16] = 122.7667;
1144 Ei[17] = 105.5348;
1145 Ei[18] = 514.0156;
1146 Ei[19] = 296.355;
1147 Ei[20] = 2.610111;
1148 Ei[21] = 119.6299;
1149
1150
1151 Ki[1] = 0.4619255;
1152 Ki[2] = 0.4479153;
1153 Ki[3] = 0.4557489;
1154 Ki[4] = 0.5279209;
1155 Ki[5] = 0.583749;
1156 Ki[6] = 0.6406937;
1157 Ki[7] = 0.6341423;
1158 Ki[8] = 0.6738577;
1159 Ki[9] = 0.6798307;
1160 Ki[10] = 0.7175118;
1161 Ki[11] = 0.7525189;
1162 Ki[12] = 0.784955;
1163 Ki[13] = 0.8152731;
1164 Ki[14] = 0.8437826;
1165 Ki[15] = 0.3514916;
1166 Ki[16] = 0.4186954;
1167 Ki[17] = 0.4533894;
1168 Ki[18] = 0.3825868;
1169 Ki[19] = 0.4618263;
1170 Ki[20] = 0.3589888;
1171 Ki[21] = 0.4216551;
1172
1173
1192
1193
1198 Si[18] = 1.5822;
1199 Si[19] = 0.39;
1200 Wi[18] = 1;
1201
1202
1203 Eij[1][2] = 0.97164;
1204 Eij[1][3] = 0.960644;
1205 Eij[1][5] = 0.994635;
1206 Eij[1][6] = 1.01953;
1207 Eij[1][7] = 0.989844;
1208 Eij[1][8] = 1.00235;
1209 Eij[1][9] = 0.999268;
1210 Eij[1][10] = 1.107274;
1211 Eij[1][11] = 0.88088;
1212 Eij[1][12] = 0.880973;
1213 Eij[1][13] = 0.881067;
1214 Eij[1][14] = 0.881161;
1215 Eij[1][15] = 1.17052;
1216 Eij[1][17] = 0.990126;
1217 Eij[1][18] = 0.708218;
1218 Eij[1][19] = 0.931484;
1219 Eij[2][3] = 1.02274;
1220 Eij[2][4] = 0.97012;
1221 Eij[2][5] = 0.945939;
1222 Eij[2][6] = 0.946914;
1223 Eij[2][7] = 0.973384;
1224 Eij[2][8] = 0.95934;
1225 Eij[2][9] = 0.94552;
1226 Eij[2][15] = 1.08632;
1227 Eij[2][16] = 1.021;
1228 Eij[2][17] = 1.00571;
1229 Eij[2][18] = 0.746954;
1230 Eij[2][19] = 0.902271;
1231 Eij[3][4] = 0.925053;
1232 Eij[3][5] = 0.960237;
1233 Eij[3][6] = 0.906849;
1234 Eij[3][7] = 0.897362;
1235 Eij[3][8] = 0.726255;
1236 Eij[3][9] = 0.859764;
1237 Eij[3][10] = 0.855134;
1238 Eij[3][11] = 0.831229;
1239 Eij[3][12] = 0.80831;
1240 Eij[3][13] = 0.786323;
1241 Eij[3][14] = 0.765171;
1242 Eij[3][15] = 1.28179;
1243 Eij[3][17] = 1.5;
1244 Eij[3][18] = 0.849408;
1245 Eij[3][19] = 0.955052;
1246 Eij[4][5] = 1.02256;
1247 Eij[4][7] = 1.01306;
1248 Eij[4][9] = 1.00532;
1249 Eij[4][15] = 1.16446;
1250 Eij[4][18] = 0.693168;
1251 Eij[4][19] = 0.946871;
1252 Eij[5][7] = 1.0049;
1253 Eij[5][15] = 1.034787;
1254 Eij[6][15] = 1.3;
1255 Eij[7][15] = 1.3;
1256 Eij[10][19] = 1.008692;
1257 Eij[11][19] = 1.010126;
1258 Eij[12][19] = 1.011501;
1259 Eij[13][19] = 1.012821;
1260 Eij[14][19] = 1.014089;
1261 Eij[15][17] = 1.1;
1262
1263
1264 Uij[1][2] = 0.886106;
1265 Uij[1][3] = 0.963827;
1266 Uij[1][5] = 0.990877;
1267 Uij[1][7] = 0.992291;
1268 Uij[1][9] = 1.00367;
1269 Uij[1][10] = 1.302576;
1270 Uij[1][11] = 1.191904;
1271 Uij[1][12] = 1.205769;
1272 Uij[1][13] = 1.219634;
1273 Uij[1][14] = 1.233498;
1274 Uij[1][15] = 1.15639;
1275 Uij[1][19] = 0.736833;
1276 Uij[2][3] = 0.835058;
1277 Uij[2][4] = 0.816431;
1278 Uij[2][5] = 0.915502;
1279 Uij[2][7] = 0.993556;
1280 Uij[2][15] = 0.408838;
1281 Uij[2][19] = 0.993476;
1282 Uij[3][4] = 0.96987;
1283 Uij[3][10] = 1.066638;
1284 Uij[3][11] = 1.077634;
1285 Uij[3][12] = 1.088178;
1286 Uij[3][13] = 1.098291;
1287 Uij[3][14] = 1.108021;
1288 Uij[3][17] = 0.9;
1289 Uij[3][19] = 1.04529;
1290 Uij[4][5] = 1.065173;
1291 Uij[4][6] = 1.25;
1292 Uij[4][7] = 1.25;
1293 Uij[4][8] = 1.25;
1294 Uij[4][9] = 1.25;
1295 Uij[4][15] = 1.61666;
1296 Uij[4][19] = 0.971926;
1297 Uij[10][19] = 1.028973;
1298 Uij[11][19] = 1.033754;
1299 Uij[12][19] = 1.038338;
1300 Uij[13][19] = 1.042735;
1301 Uij[14][19] = 1.046966;
1302
1303
1304 Kij[1][2] = 1.00363;
1305 Kij[1][3] = 0.995933;
1306 Kij[1][5] = 1.007619;
1307 Kij[1][7] = 0.997596;
1308 Kij[1][9] = 1.002529;
1309 Kij[1][10] = 0.982962;
1310 Kij[1][11] = 0.983565;
1311 Kij[1][12] = 0.982707;
1312 Kij[1][13] = 0.981849;
1313 Kij[1][14] = 0.980991;
1314 Kij[1][15] = 1.02326;
1315 Kij[1][19] = 1.00008;
1316 Kij[2][3] = 0.982361;
1317 Kij[2][4] = 1.00796;
1318 Kij[2][15] = 1.03227;
1319 Kij[2][19] = 0.942596;
1320 Kij[3][4] = 1.00851;
1321 Kij[3][10] = 0.910183;
1322 Kij[3][11] = 0.895362;
1323 Kij[3][12] = 0.881152;
1324 Kij[3][13] = 0.86752;
1325 Kij[3][14] = 0.854406;
1326 Kij[3][19] = 1.00779;
1327 Kij[4][5] = 0.986893;
1328 Kij[4][15] = 1.02034;
1329 Kij[4][19] = 0.999969;
1330 Kij[10][19] = 0.96813;
1331 Kij[11][19] = 0.96287;
1332 Kij[12][19] = 0.957828;
1333 Kij[13][19] = 0.952441;
1334 Kij[14][19] = 0.948338;
1335
1336
1337 Gij[1][3] = 0.807653;
1338 Gij[1][15] = 1.95731;
1339 Gij[2][3] = 0.982746;
1340 Gij[3][4] = 0.370296;
1341 Gij[3][18] = 1.67309;
1342
1343
1344 n0i[1][3] = 4.00088;
1345 n0i[1][4] = 0.76315;
1347 n0i[1][6] = 8.74432;
1348 n0i[1][7] = -4.46921;
1349 n0i[1][1] = 29.83843397;
1350 n0i[1][2] = -15999.69151;
1351 n0i[2][3] = 3.50031;
1352 n0i[2][4] = 0.13732;
1353 n0i[2][5] = -0.1466;
1354 n0i[2][6] = 0.90066;
1356 n0i[2][1] = 17.56770785;
1357 n0i[2][2] = -2801.729072;
1358 n0i[3][3] = 3.50002;
1359 n0i[3][4] = 2.04452;
1360 n0i[3][5] = -1.06044;
1361 n0i[3][6] = 2.03366;
1362 n0i[3][7] = 0.01393;
1363 n0i[3][1] = 20.65844696;
1364 n0i[3][2] = -4902.171516;
1365 n0i[4][3] = 4.00263;
1366 n0i[4][4] = 4.33939;
1367 n0i[4][5] = 1.23722;
1368 n0i[4][6] = 13.1974;
1369 n0i[4][7] = -6.01989;
1370 n0i[4][1] = 36.73005938;
1371 n0i[4][2] = -23639.65301;
1372 n0i[5][3] = 4.02939;
1373 n0i[5][4] = 6.60569;
1375 n0i[5][6] = 19.1921;
1376 n0i[5][7] = -8.37267;
1377 n0i[5][1] = 44.70909619;
1378 n0i[5][2] = -31236.63551;
1379 n0i[6][3] = 4.06714;
1380 n0i[6][4] = 8.97575;
1381 n0i[6][5] = 5.25156;
1382 n0i[6][6] = 25.1423;
1383 n0i[6][7] = 16.1388;
1384 n0i[6][1] = 34.30180349;
1385 n0i[6][2] = -38525.50276;
1386 n0i[7][3] = 4.33944;
1387 n0i[7][4] = 9.44893;
1388 n0i[7][5] = 6.89406;
1389 n0i[7][6] = 24.4618;
1390 n0i[7][7] = 14.7824;
1391 n0i[7][1] = 36.53237783;
1392 n0i[7][2] = -38957.80933;
1394 n0i[8][4] = 11.7618;
1395 n0i[8][5] = 20.1101;
1396 n0i[8][6] = 33.1688;
1398 n0i[8][1] = 43.17218626;
1399 n0i[8][2] = -51198.30946;
1401 n0i[9][4] = 8.95043;
1403 n0i[9][6] = 33.4032;
1405 n0i[9][1] = 42.67837089;
1406 n0i[9][2] = -45215.83;
1408 n0i[10][4] = 11.6977;
1409 n0i[10][5] = 26.8142;
1410 n0i[10][6] = 38.6164;
1412 n0i[10][1] = 46.99717188;
1413 n0i[10][2] = -52746.83318;
1415 n0i[11][4] = 13.7266;
1416 n0i[11][5] = 30.4707;
1417 n0i[11][6] = 43.5561;
1419 n0i[11][1] = 52.07631631;
1420 n0i[11][2] = -57104.81056;
1422 n0i[12][4] = 15.6865;
1423 n0i[12][5] = 33.8029;
1424 n0i[12][6] = 48.1731;
1426 n0i[12][1] = 57.25830934;
1427 n0i[12][2] = -60546.76385;
1429 n0i[13][4] = 18.0241;
1430 n0i[13][5] = 38.1235;
1431 n0i[13][6] = 53.3415;
1433 n0i[13][1] = 62.09646901;
1434 n0i[13][2] = -66600.12837;
1436 n0i[14][4] = 21.0069;
1437 n0i[14][5] = 43.4931;
1438 n0i[14][6] = 58.3657;
1440 n0i[14][1] = 65.93909154;
1441 n0i[14][2] = -74131.45483;
1442 n0i[15][3] = 2.47906;
1443 n0i[15][4] = 0.95806;
1444 n0i[15][5] = 0.45444;
1445 n0i[15][6] = 1.56039;
1446 n0i[15][7] = -1.3756;
1447 n0i[15][1] = 13.07520288;
1448 n0i[15][2] = -5836.943696;
1449 n0i[16][3] = 3.50146;
1450 n0i[16][4] = 1.07558;
1451 n0i[16][5] = 1.01334;
1454 n0i[16][1] = 16.8017173;
1455 n0i[16][2] = -2318.32269;
1456 n0i[17][3] = 3.50055;
1457 n0i[17][4] = 1.02865;
1458 n0i[17][5] = 0.00493;
1461 n0i[17][1] = 17.45786899;
1462 n0i[17][2] = -2635.244116;
1463 n0i[18][3] = 4.00392;
1464 n0i[18][4] = 0.01059;
1465 n0i[18][5] = 0.98763;
1466 n0i[18][6] = 3.06904;
1468 n0i[18][1] = 21.57882705;
1469 n0i[18][2] = -7766.733078;
1471 n0i[19][4] = 3.11942;
1472 n0i[19][5] = 1.00243;
1475 n0i[19][1] = 21.5830944;
1476 n0i[19][2] = -6069.035869;
1482 n0i[20][1] = 10.04639507;
1483 n0i[20][2] = -745.375;
1489 n0i[21][1] = 10.04639507;
1490 n0i[21][2] = -745.375;
1491 th0i[1][4] = 820.659;
1492 th0i[1][5] = 178.41;
1493 th0i[1][6] = 1062.82;
1494 th0i[1][7] = 1090.53;
1495 th0i[2][4] = 662.738;
1496 th0i[2][5] = 680.562;
1497 th0i[2][6] = 1740.06;
1499 th0i[3][4] = 919.306;
1500 th0i[3][5] = 865.07;
1501 th0i[3][6] = 483.553;
1502 th0i[3][7] = 341.109;
1503 th0i[4][4] = 559.314;
1504 th0i[4][5] = 223.284;
1505 th0i[4][6] = 1031.38;
1506 th0i[4][7] = 1071.29;
1507 th0i[5][4] = 479.856;
1508 th0i[5][5] = 200.893;
1509 th0i[5][6] = 955.312;
1510 th0i[5][7] = 1027.29;
1511 th0i[6][4] = 438.27;
1512 th0i[6][5] = 198.018;
1513 th0i[6][6] = 1905.02;
1514 th0i[6][7] = 893.765;
1515 th0i[7][4] = 468.27;
1516 th0i[7][5] = 183.636;
1517 th0i[7][6] = 1914.1;
1518 th0i[7][7] = 903.185;
1519 th0i[8][4] = 292.503;
1520 th0i[8][5] = 910.237;
1521 th0i[8][6] = 1919.37;
1523 th0i[9][4] = 178.67;
1524 th0i[9][5] = 840.538;
1525 th0i[9][6] = 1774.25;
1527 th0i[10][4] = 182.326;
1528 th0i[10][5] = 859.207;
1529 th0i[10][6] = 1826.59;
1531 th0i[11][4] = 169.789;
1532 th0i[11][5] = 836.195;
1533 th0i[11][6] = 1760.46;
1535 th0i[12][4] = 158.922;
1536 th0i[12][5] = 815.064;
1537 th0i[12][6] = 1693.07;
1539 th0i[13][4] = 156.854;
1540 th0i[13][5] = 814.882;
1541 th0i[13][6] = 1693.79;
1543 th0i[14][4] = 164.947;
1544 th0i[14][5] = 836.264;
1545 th0i[14][6] = 1750.24;
1547 th0i[15][4] = 228.734;
1548 th0i[15][5] = 326.843;
1549 th0i[15][6] = 1651.71;
1550 th0i[15][7] = 1671.69;
1551 th0i[16][4] = 2235.71;
1552 th0i[16][5] = 1116.69;
1555 th0i[17][4] = 1550.45;
1556 th0i[17][5] = 704.525;
1559 th0i[18][4] = 268.795;
1560 th0i[18][5] = 1141.41;
1561 th0i[18][6] = 2507.37;
1563 th0i[19][4] = 1833.63;
1564 th0i[19][5] = 847.181;
1575
1576
1577 for (
int i = 1; i <=
MaxFlds; ++i)
1578 {
1579 Ki25[i] = pow(Ki[i], 2.5);
1580 Ei25[i] = pow(Ei[i], 2.5);
1581 }
1582 for (
int i = 1; i <=
MaxFlds; ++i)
1583 {
1584 for (
int j = i; j <=
MaxFlds; ++j)
1585 {
1586 for (int n = 1; n <= 18; ++n)
1587 {
1588 Bsnij = 1;
1590 {
1591 Bsnij = Gij[i][j] * (
Gi[i] +
Gi[j]) / 2;
1592 }
1594 {
1595 Bsnij = Bsnij *
Qi[i] *
Qi[j];
1596 }
1598 {
1599 Bsnij = Bsnij *
Fi[i] *
Fi[j];
1600 }
1601 if (sn[n] == 1)
1602 {
1603 Bsnij = Bsnij * Si[i] * Si[j];
1604 }
1605 if (wn[n] == 1)
1606 {
1607 Bsnij = Bsnij * Wi[i] * Wi[j];
1608 }
1609 Bsnij2[i][j][n] =
an[n] * pow(Eij[i][j] * sqrt(Ei[i] * Ei[j]),
un[n]) * pow(Ki[i] * Ki[j], 1.5) * Bsnij;
1610 }
1611 Kij5[i][j] = (pow(Kij[i][j], 5) - 1) *
Ki25[i] *
Ki25[j];
1612 Uij5[i][j] = (pow(Uij[i][j], 5) - 1) *
Ei25[i] *
Ei25[j];
1613 Gij5[i][j] = (Gij[i][j] - 1) * (
Gi[i] +
Gi[j]) / 2;
1614 }
1615 }
1616
1617 d0 = 101.325 /
RDetail / 298.15;
1618 for (
int i = 1; i <=
MaxFlds; ++i)
1619 {
1620 n0i[i][3] =
n0i[i][3] - 1;
1621 n0i[i][1] =
n0i[i][1] - log(d0);
1622 }
1623 return;
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639}
static double Qi[MaxFlds+1]
static double Ki25[MaxFlds+1]
static double an[NTerms+1]
static double Uij5[MaxFlds+1][MaxFlds+1]
static double th0i[MaxFlds+1][7+1]
static double Bsnij2[MaxFlds+1][MaxFlds+1][18+1]
static double Gi[MaxFlds+1]
static double Kij5[MaxFlds+1][MaxFlds+1]
static double Ei25[MaxFlds+1]
static double xold[MaxFlds+1]
static double Fi[MaxFlds+1]
static double un[NTerms+1]
static double Gij5[MaxFlds+1][MaxFlds+1]
static double n0i[MaxFlds+1][7+1]