467 lines
6.9 KiB
Dart
467 lines
6.9 KiB
Dart
// ========== Juza's equation for 1/H ==========
|
|
import 'dart:math';
|
|
|
|
double HJuza(double _S_diamRatio, double _K) {
|
|
// LowerS, UpperS, Ke, Kex, Kep, K3, K2, K1, K0
|
|
|
|
// 0.82 - 0.999
|
|
List<List<double>> Coefficient8 = [
|
|
[
|
|
0.82,
|
|
0.83,
|
|
1791452.8,
|
|
533.85850,
|
|
170.55837,
|
|
-81676.15812,
|
|
202187.89690,
|
|
-166836.27680,
|
|
45888.22973,
|
|
],
|
|
[
|
|
0.83,
|
|
0.84,
|
|
189.07578,
|
|
272.52455,
|
|
72.730022,
|
|
-19963.60152,
|
|
50019.79936,
|
|
-41775.38186,
|
|
11629.85610,
|
|
],
|
|
[
|
|
0.84,
|
|
0.85,
|
|
7.1549709,
|
|
165.45945,
|
|
35.285687,
|
|
-6944.66848,
|
|
17609.43832,
|
|
-14883.84379,
|
|
4193.34232,
|
|
],
|
|
[
|
|
0.85,
|
|
0.87,
|
|
1.1496269,
|
|
95.066407,
|
|
12.600013,
|
|
-2158.91585,
|
|
5571.60176,
|
|
-4792.82331,
|
|
1374.26272,
|
|
],
|
|
[
|
|
0.87,
|
|
0.895,
|
|
0.47873040,
|
|
50.357240,
|
|
0.089787883,
|
|
-567.76534,
|
|
1503.51828,
|
|
-1327.11835,
|
|
390.45562,
|
|
],
|
|
[
|
|
0.895,
|
|
0.93,
|
|
0.35255000,
|
|
25.498893,
|
|
-5.4176608,
|
|
-165.99710,
|
|
454.58851,
|
|
-414.93772,
|
|
126.23908,
|
|
],
|
|
[
|
|
0.93,
|
|
0.97,
|
|
0.32002037,
|
|
6.8474560,
|
|
-8.0901766,
|
|
-102.84970,
|
|
293.25377,
|
|
-278.69176,
|
|
88.27639,
|
|
],
|
|
[
|
|
0.97,
|
|
0.99,
|
|
0.30845061,
|
|
-32.343947,
|
|
-10.455428,
|
|
-475.69091,
|
|
1398.86173,
|
|
-1371.17931,
|
|
448.00538,
|
|
],
|
|
[
|
|
0.99,
|
|
0.999,
|
|
0.30110729,
|
|
-333.50440,
|
|
-15.711260,
|
|
-11334.69334,
|
|
33822.93507,
|
|
-33642.61426,
|
|
11154.37157,
|
|
],
|
|
];
|
|
|
|
// 0.635 - 0.997
|
|
List<List<double>> Coefficient9 = [
|
|
[
|
|
0.635,
|
|
0.645,
|
|
58249804,
|
|
119.64583,
|
|
89.483167,
|
|
-28072.11478,
|
|
53918.28040,
|
|
-34519.94034,
|
|
7366.77050,
|
|
],
|
|
[
|
|
0.645,
|
|
0.66,
|
|
5100.2910,
|
|
70.920100,
|
|
46.811007,
|
|
-9051.10879,
|
|
17726.62108,
|
|
-15572.21470,
|
|
2518.10214,
|
|
],
|
|
[
|
|
0.66,
|
|
0.685,
|
|
19.518159,
|
|
38.509198,
|
|
19.951285,
|
|
-2338.00251,
|
|
4719.64936,
|
|
-3175.58038,
|
|
712.17229,
|
|
],
|
|
[
|
|
0.685,
|
|
0.72,
|
|
1.3823760,
|
|
20.055606,
|
|
5.9746092,
|
|
-522.67397,
|
|
1102.26575,
|
|
-774.75596,
|
|
181.49582,
|
|
],
|
|
[
|
|
0.72,
|
|
0.77,
|
|
0.49074291,
|
|
10.484929,
|
|
-0.31885445,
|
|
-111.99730,
|
|
250.54286,
|
|
-186.78287,
|
|
46.40581,
|
|
],
|
|
[
|
|
0.77,
|
|
0.84,
|
|
0.34607161,
|
|
5.4063548,
|
|
-2.9788620,
|
|
-24.21100,
|
|
58.53312,
|
|
-47.15244,
|
|
12.65668,
|
|
],
|
|
[
|
|
0.84,
|
|
0.93,
|
|
0.31342828,
|
|
2.1140055,
|
|
-4.1151543,
|
|
-9.16969,
|
|
24.37544,
|
|
-21.58758,
|
|
6.36954,
|
|
],
|
|
[
|
|
0.93,
|
|
0.98,
|
|
0.30397966,
|
|
-3.6334200,
|
|
-4.9395699,
|
|
-29.80626,
|
|
85.43510,
|
|
-81.61766,
|
|
25.98669,
|
|
],
|
|
[
|
|
0.98,
|
|
0.997,
|
|
0.30007321,
|
|
-34.095653,
|
|
-6.1531194,
|
|
-434.11439,
|
|
1287.65238,
|
|
-1273.10762,
|
|
419.56923,
|
|
],
|
|
];
|
|
|
|
// 0.17 - 0.983
|
|
List<List<double>> Coefficient10 = [
|
|
[
|
|
0.17,
|
|
0.30,
|
|
0.31081678,
|
|
-0.086278355,
|
|
-2.7023254,
|
|
-13.95071,
|
|
10.30398,
|
|
-2.49619,
|
|
0.19805,
|
|
],
|
|
[
|
|
0.30,
|
|
0.45,
|
|
0.30636442,
|
|
-0.094871613,
|
|
-2.7246428,
|
|
0.38766,
|
|
-0.44128,
|
|
0.16613,
|
|
-0.02068,
|
|
],
|
|
[
|
|
0.45,
|
|
0.68,
|
|
0.31156188,
|
|
-0.063734909,
|
|
-2.6789763,
|
|
0.41537,
|
|
-0.71168,
|
|
0.40321,
|
|
-0.07551,
|
|
],
|
|
[
|
|
0.68,
|
|
0.90,
|
|
0.31195754,
|
|
-0.092720991,
|
|
-2.6863859,
|
|
-0.44813,
|
|
1.06637,
|
|
-0.84260,
|
|
0.22106,
|
|
],
|
|
[
|
|
0.90,
|
|
0.983,
|
|
0.30712046,
|
|
-1.5619311,
|
|
-2.9809169,
|
|
-5.74538,
|
|
16.23781,
|
|
-15.29128,
|
|
4.79808,
|
|
],
|
|
];
|
|
|
|
// 0.06 - 0.953
|
|
List<List<double>> Coefficient11 = [
|
|
[
|
|
0.06,
|
|
0.08,
|
|
1.6030433,
|
|
0.043380701,
|
|
-0.15208454,
|
|
-1341.32950,
|
|
282.27311,
|
|
-19.71010,
|
|
0.45664,
|
|
],
|
|
[
|
|
0.08,
|
|
0.13,
|
|
0.85491410,
|
|
-0.056761738,
|
|
-0.65372414,
|
|
-160.97221,
|
|
50.59168,
|
|
-5.23625,
|
|
0.17842,
|
|
],
|
|
[
|
|
0.13,
|
|
0.20,
|
|
0.57401485,
|
|
-0.15265815,
|
|
-1.0443069,
|
|
-42.79943,
|
|
21.22139,
|
|
-3.47357,
|
|
0.18765,
|
|
],
|
|
[
|
|
0.20,
|
|
0.30,
|
|
0.41622542,
|
|
-0.27871823,
|
|
-1.4464670,
|
|
-14.08741,
|
|
10.58863,
|
|
-2.63159,
|
|
0.21621,
|
|
],
|
|
[
|
|
0.30,
|
|
0.44,
|
|
0.33587066,
|
|
-0.42674255,
|
|
-1.8022482,
|
|
-3.22540,
|
|
3.58964,
|
|
-1.32194,
|
|
0.16106,
|
|
],
|
|
[
|
|
0.44,
|
|
0.75,
|
|
0.31504207,
|
|
-0.51197565,
|
|
-1.9499037,
|
|
0.07609,
|
|
-0.13681,
|
|
0.08090,
|
|
-0.01572,
|
|
],
|
|
[
|
|
0.75,
|
|
0.953,
|
|
0.31658938,
|
|
-0.49808609,
|
|
-1.9290368,
|
|
-0.24018,
|
|
0.61450,
|
|
-0.52258,
|
|
0.14771,
|
|
],
|
|
];
|
|
|
|
// 0.10 - 0.902
|
|
List<List<double>> Coefficient12 = [
|
|
[
|
|
0.10,
|
|
0.12,
|
|
103.56308,
|
|
1.2019976,
|
|
4.4869062,
|
|
-6625.95443,
|
|
2292.46751,
|
|
-264.28560,
|
|
10.15218,
|
|
],
|
|
[
|
|
0.12,
|
|
0.14,
|
|
2.1585254,
|
|
0.34129627,
|
|
0.83653215,
|
|
-742.15388,
|
|
289.52312,
|
|
-37.59979,
|
|
1.62555,
|
|
],
|
|
[
|
|
0.14,
|
|
0.19,
|
|
0.65654048,
|
|
0.031877859,
|
|
-0.37693028,
|
|
-66.92134,
|
|
33.18430,
|
|
-5.45788,
|
|
0.29773,
|
|
],
|
|
[
|
|
0.19,
|
|
0.27,
|
|
0.45076908,
|
|
-0.10378254,
|
|
-0.82836350,
|
|
-10.66154,
|
|
7.36263,
|
|
-1.68453,
|
|
0.12768,
|
|
],
|
|
[
|
|
0.27,
|
|
0.40,
|
|
0.37085833,
|
|
-0.21965481,
|
|
-1.1287016,
|
|
-2.87493,
|
|
2.88810,
|
|
-0.95966,
|
|
0.10546,
|
|
],
|
|
[
|
|
0.40,
|
|
0.55,
|
|
0.33605594,
|
|
-0.33317467,
|
|
-1.3397591,
|
|
-0.70394,
|
|
1.00402,
|
|
-0.47492,
|
|
0.07450,
|
|
],
|
|
[
|
|
0.55,
|
|
0.902,
|
|
0.32790337,
|
|
-0.39597877,
|
|
-1.4180887,
|
|
0.00490,
|
|
-0.01070,
|
|
0.00769,
|
|
-0.00182,
|
|
],
|
|
];
|
|
|
|
List<List<double>> Coeff = [];
|
|
if (_K == 0.8) {
|
|
Coeff = Coefficient8;
|
|
}
|
|
if (_K == 0.9) {
|
|
Coeff = Coefficient9;
|
|
}
|
|
if (_K == 1.0) {
|
|
Coeff = Coefficient10;
|
|
}
|
|
if (_K == 1.1) {
|
|
Coeff = Coefficient11;
|
|
}
|
|
if (_K == 1.2) {
|
|
Coeff = Coefficient12;
|
|
}
|
|
|
|
// Juza 1996/1997 Equation: 8
|
|
for (var Entry_k in Coeff) {
|
|
if (Entry_k[0] <= _S_diamRatio && _S_diamRatio <= Entry_k[1]) {
|
|
double HInv =
|
|
Entry_k[2] *
|
|
pow(_S_diamRatio, (Entry_k[3] * log(_S_diamRatio) + Entry_k[4])) +
|
|
Entry_k[5] * pow(_S_diamRatio, 3.0) +
|
|
Entry_k[6] * pow(_S_diamRatio, 2.0) +
|
|
Entry_k[7] * _S_diamRatio +
|
|
Entry_k[8];
|
|
return HInv;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|