From e892083300c522575d90158cb2d371b2ca90af58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=96=E5=BE=B7=E4=BA=91?= Date: Fri, 31 Oct 2025 22:12:55 +0800 Subject: [PATCH] NGTOOLS dll --- Detail.c | 1137 ++++++++++++++++++++++++++++++++++++++++++++++++ Detail.h | 120 +++++ Detail.o | Bin 0 -> 74108 bytes FlowCal.c | 501 +++++++++++++++++++++ FlowCal.h | 87 ++++ FlowCal.o | Bin 0 -> 46535 bytes Makefile.win | 42 ++ NGCal.c | 87 ++++ NGCal.h | 80 ++++ NGCal.o | Bin 0 -> 34513 bytes NGTools.dev | 152 +++++++ NGTools.dll | Bin 0 -> 1263650 bytes NGTools.layout | 43 ++ Therm.c | 413 ++++++++++++++++++ Therm.h | 60 +++ Therm.o | Bin 0 -> 45973 bytes dll.h | 17 + dllmain.c | 185 ++++++++ dllmain.o | Bin 0 -> 881364 bytes libNGTools.a | Bin 0 -> 3198 bytes libNGTools.def | 5 + 21 files changed, 2929 insertions(+) create mode 100644 Detail.c create mode 100644 Detail.h create mode 100644 Detail.o create mode 100644 FlowCal.c create mode 100644 FlowCal.h create mode 100644 FlowCal.o create mode 100644 Makefile.win create mode 100644 NGCal.c create mode 100644 NGCal.h create mode 100644 NGCal.o create mode 100644 NGTools.dev create mode 100644 NGTools.dll create mode 100644 NGTools.layout create mode 100644 Therm.c create mode 100644 Therm.h create mode 100644 Therm.o create mode 100644 dll.h create mode 100644 dllmain.c create mode 100644 dllmain.o create mode 100644 libNGTools.a create mode 100644 libNGTools.def diff --git a/Detail.c b/Detail.c new file mode 100644 index 0000000..8822498 --- /dev/null +++ b/Detail.c @@ -0,0 +1,1137 @@ +#include "NGCal.h" +#include "Detail.h" +#include +#include +#include +#define NUMBEROFCOMPONENTS 21 +int i=0; +int j=0; +int k=0; +Detail *Detail_Construct(void) { + Detail *pDetail = (Detail *) malloc(sizeof(Detail)); + if (!pDetail) { + return NULL; + } + memset(pDetail, 0, sizeof(Detail)); + pDetail->iNCC = 0; + for (i = 0; i < NUMBEROFCOMPONENTS; i++) { + pDetail->aiCID[i] = -1; + } + pDetail->dOldMixID = 0.0; + pDetail->dOldPb = 0.0; + pDetail->dOldTb = 0.0; + pDetail->dOldPf = 0.0; + pDetail->dOldTf = 0.0; + for ( i = 0; i < NUMBEROFCOMPONENTS; i++) { + pDetail->dXi[i] = 0.0; + } + if (Detail_table(pDetail) != 0) { + free(pDetail); + return NULL; + } + return pDetail; +} + +void Detail_Destroy(Detail *pDetail) { + if (pDetail) { + free(pDetail); + } +} + +int Detail_compositionchange(Detail *pDetail, const NGParSTRUCT *ptNGPar) { + double dMixID = 0.0; + for ( i = 0; i < NUMBEROFCOMPONENTS; i++) + dMixID += ((i + 2) * ptNGPar->adMixture[i]); + if (dMixID != pDetail->dOldMixID) { + pDetail->dOldMixID = dMixID; + return 1; + } + return 0; +} + +void Detail_Run(Detail *pDetail, NGParSTRUCT *ptNGPar) { + const int bCompChange = Detail_compositionchange(pDetail, ptNGPar); + ptNGPar->bForceUpdate = ptNGPar->bForceUpdate || bCompChange; + if (ptNGPar->bForceUpdate) { + pDetail->iNCC = 0; + for ( i = 0; i < NUMBEROFCOMPONENTS; i++) { + if (ptNGPar->adMixture[i] > 0.0) { + pDetail->aiCID[pDetail->iNCC] = i; + pDetail->dXi[pDetail->iNCC] = ptNGPar->adMixture[i]; + pDetail->iNCC++; + } + } + Detail_paramdl(pDetail); + Detail_chardl(pDetail, ptNGPar); + } + if (fabs(ptNGPar->dPb - pDetail->dOldPb) > P_CHG_TOL || + fabs(ptNGPar->dTb - pDetail->dOldTb) > T_CHG_TOL || + ptNGPar->bForceUpdate) { + pDetail->dP = ptNGPar->dPb * 1.0e-6; + pDetail->dT = ptNGPar->dTb; + Detail_temp(pDetail); + Detail_ddetail(pDetail, ptNGPar); + ptNGPar->dDb = pDetail->dRho; + ptNGPar->dZb = Detail_zdetail(pDetail, pDetail->dRho); + pDetail->dRhoTP = (pDetail->dP * ptNGPar->dMrx) / (ptNGPar->dZb * RGASKJ * pDetail->dT); + Detail_relativedensity(pDetail, ptNGPar); + ptNGPar->dRhob = pDetail->dRhoTP; + pDetail->dOldTb = ptNGPar->dTb; + pDetail->dOldPb = ptNGPar->dPb; + ptNGPar->bForceUpdate = 1; + } + pDetail->dP = ptNGPar->dPf * 1.0e-6; + pDetail->dT = ptNGPar->dTf; + if ((fabs(ptNGPar->dTf - pDetail->dOldTf) > T_CHG_TOL) || (ptNGPar->bForceUpdate)) { + Detail_temp(pDetail); + ptNGPar->bForceUpdate = 1; + } + if ((fabs(ptNGPar->dPf - pDetail->dOldPf) > P_CHG_TOL) || (ptNGPar->bForceUpdate)) { + Detail_ddetail(pDetail, ptNGPar); + ptNGPar->dDf = pDetail->dRho; + ptNGPar->dZf = Detail_zdetail(pDetail, pDetail->dRho); + pDetail->dRhoTP = (pDetail->dP * ptNGPar->dMrx) / (ptNGPar->dZf * RGASKJ * pDetail->dT); + ptNGPar->dRhof = pDetail->dRhoTP; + pDetail->dOldTf = ptNGPar->dTf; + pDetail->dOldPf = ptNGPar->dPf; + } + if ((ptNGPar->dZb > 0.0) && (ptNGPar->dZf > 0.0)) { + ptNGPar->dFpv = sqrt(ptNGPar->dZb / ptNGPar->dZf); + } else { + ptNGPar->lStatus = GENERAL_CALCULATION_FAILURE; + ptNGPar->bForceUpdate = 0; + } +} + +int Detail_table(Detail *pDetail) { + if (!pDetail) { + return -1; + } + double adAn[58]; + double adUn[58]; + adAn[0] = 0.153832600; + adAn[1] = 1.341953000; + adAn[2] = -2.998583000; + adAn[3] = -0.048312280; + adAn[4] = 0.375796500; + adAn[5] = -1.589575000; + adAn[6] = -0.053588470; + adAn[7] = 0.886594630; + adAn[8] = -0.710237040; + adAn[9] = -1.471722000; + adAn[10] = 1.321850350; + adAn[11] = -0.786659250; + adAn[12] = 2.29129E-09; + adAn[13] = 0.157672400; + adAn[14] = -0.436386400; + adAn[15] = -0.044081590; + adAn[16] = -0.003433888; + adAn[17] = 0.032059050; + adAn[18] = 0.024873550; + adAn[19] = 0.073322790; + adAn[20] = -0.001600573; + adAn[21] = 0.642470600; + adAn[22] = -0.416260100; + adAn[23] = -0.066899570; + adAn[24] = 0.279179500; + adAn[25] = -0.696605100; + adAn[26] = -0.002860589; + adAn[27] = -0.008098836; + adAn[28] = 3.150547000; + adAn[29] = 0.007224479; + adAn[30] = -0.705752900; + adAn[31] = 0.534979200; + adAn[32] = -0.079314910; + adAn[33] = -1.418465000; + adAn[34] = -5.99905E-17; + adAn[35] = 0.105840200; + adAn[36] = 0.034317290; + adAn[37] = -0.007022847; + adAn[38] = 0.024955870; + adAn[39] = 0.042968180; + adAn[40] = 0.746545300; + adAn[41] = -0.291961300; + adAn[42] = 7.294616000; + adAn[43] = -9.936757000; + adAn[44] = -0.005399808; + adAn[45] = -0.243256700; + adAn[46] = 0.049870160; + adAn[47] = 0.003733797; + adAn[48] = 1.874951000; + adAn[49] = 0.002168144; + adAn[50] = -0.658716400; + adAn[51] = 0.000205518; + adAn[52] = 0.009776195; + adAn[53] = -0.020487080; + adAn[54] = 0.015573220; + adAn[55] = 0.006862415; + adAn[56] = -0.001226752; + adAn[57] = 0.002850908; + + adUn[0] = 0.0; + adUn[1] = 0.5; + adUn[2] = 1.0; + adUn[3] = 3.5; + adUn[4] = -0.5; + adUn[5] = 4.5; + adUn[6] = 0.5; + adUn[7] = 7.5; + adUn[8] = 9.5; + adUn[9] = 6.0; + adUn[10] = 12.0; + adUn[11] = 12.5; + adUn[12] = -6.0; + adUn[13] = 2.0; + adUn[14] = 3.0; + adUn[15] = 2.0; + adUn[16] = 2.0; + adUn[17] = 11.0; + adUn[18] = -0.5; + adUn[19] = 0.5; + adUn[20] = 0.0; + adUn[21] = 4.0; + adUn[22] = 6.0; + adUn[23] = 21.0; + adUn[24] = 23.0; + adUn[25] = 22.0; + adUn[26] = -1.0; + adUn[27] = -0.5; + adUn[28] = 7.0; + adUn[29] = -1.0; + adUn[30] = 6.0; + adUn[31] = 4.0; + adUn[32] = 1.0; + adUn[33] = 9.0; + adUn[34] = -13.0; + adUn[35] = 21.0; + adUn[36] = 8.0; + adUn[37] = -0.5; + adUn[38] = 0.0; + adUn[39] = 2.0; + adUn[40] = 7.0; + adUn[41] = 9.0; + adUn[42] = 22.0; + adUn[43] = 23.0; + adUn[44] = 1.0; + adUn[45] = 9.0; + adUn[46] = 3.0; + adUn[47] = 8.0; + adUn[48] = 23.0; + adUn[49] = 1.5; + adUn[50] = 5.0; + adUn[51] = -0.5; + adUn[52] = 4.0; + adUn[53] = 7.0; + adUn[54] = 3.0; + adUn[55] = 0.0; + adUn[56] = 1.0; + adUn[57] = 0.0; + memcpy(pDetail->adAn, adAn, sizeof(adAn)); + memcpy(pDetail->adUn, adUn, sizeof(adUn)); + for ( j = 0; j < NUMBEROFCOMPONENTS; j++) { + for ( k = j; k < NUMBEROFCOMPONENTS; k++) { + pDetail->adTable6Eij[j][k] = 1.0; + pDetail->adTable6Uij[j][k] = 1.0; + pDetail->adTable6Kij[j][k] = 1.0; + pDetail->adTable6Gij[j][k] = 1.0; + } + } + pDetail->adTable6Eij[0][1] = 0.971640; + pDetail->adTable6Eij[0][2] = 0.960644; + pDetail->adTable6Eij[0][4] = 0.994635; + pDetail->adTable6Eij[0][5] = 0.708218; + pDetail->adTable6Eij[0][6] = 0.931484; + pDetail->adTable6Eij[0][7] = 1.170520; + pDetail->adTable6Eij[0][8] = 0.990126; + pDetail->adTable6Eij[0][10] = 1.019530; + pDetail->adTable6Eij[0][11] = 0.989844; + pDetail->adTable6Eij[0][12] = 1.002350; + pDetail->adTable6Eij[0][13] = 0.999268; + pDetail->adTable6Eij[0][14] = 1.107274; + pDetail->adTable6Eij[0][15] = 0.880880; + pDetail->adTable6Eij[0][16] = 0.880973; + pDetail->adTable6Eij[0][17] = 0.881067; + pDetail->adTable6Eij[0][18] = 0.881161; + pDetail->adTable6Eij[1][2] = 1.022740; + pDetail->adTable6Eij[1][3] = 0.970120; + pDetail->adTable6Eij[1][4] = 0.945939; + pDetail->adTable6Eij[1][5] = 0.746954; + pDetail->adTable6Eij[1][6] = 0.902271; + pDetail->adTable6Eij[1][7] = 1.086320; + pDetail->adTable6Eij[1][8] = 1.005710; + pDetail->adTable6Eij[1][9] = 1.021000; + pDetail->adTable6Eij[1][10] = 0.946914; + pDetail->adTable6Eij[1][11] = 0.973384; + pDetail->adTable6Eij[1][12] = 0.959340; + pDetail->adTable6Eij[1][13] = 0.945520; + pDetail->adTable6Eij[2][3] = 0.925053; + pDetail->adTable6Eij[2][4] = 0.960237; + pDetail->adTable6Eij[2][5] = 0.849408; + pDetail->adTable6Eij[2][6] = 0.955052; + pDetail->adTable6Eij[2][7] = 1.281790; + pDetail->adTable6Eij[2][8] = 1.500000; + pDetail->adTable6Eij[2][10] = 0.906849; + pDetail->adTable6Eij[2][11] = 0.897362; + pDetail->adTable6Eij[2][12] = 0.726255; + pDetail->adTable6Eij[2][13] = 0.859764; + pDetail->adTable6Eij[2][14] = 0.855134; + pDetail->adTable6Eij[2][15] = 0.831229; + pDetail->adTable6Eij[2][16] = 0.808310; + pDetail->adTable6Eij[2][17] = 0.786323; + pDetail->adTable6Eij[2][18] = 0.765171; + pDetail->adTable6Eij[3][4] = 1.022560; + pDetail->adTable6Eij[3][5] = 0.693168; + pDetail->adTable6Eij[3][6] = 0.946871; + pDetail->adTable6Eij[3][7] = 1.164460; + pDetail->adTable6Eij[3][11] = 1.013060; + pDetail->adTable6Eij[3][13] = 1.005320; + pDetail->adTable6Eij[4][7] = 1.034787; + pDetail->adTable6Eij[4][11] = 1.004900; + pDetail->adTable6Eij[6][14] = 1.008692; + pDetail->adTable6Eij[6][15] = 1.010126; + pDetail->adTable6Eij[6][16] = 1.011501; + pDetail->adTable6Eij[6][17] = 1.012821; + pDetail->adTable6Eij[6][18] = 1.014089; + pDetail->adTable6Eij[7][8] = 1.100000; + pDetail->adTable6Eij[7][10] = 1.300000; + pDetail->adTable6Eij[7][11] = 1.300000; + pDetail->adTable6Uij[0][1] = 0.886106; + pDetail->adTable6Uij[0][2] = 0.963827; + pDetail->adTable6Uij[0][4] = 0.990877; + pDetail->adTable6Uij[0][6] = 0.736833; + pDetail->adTable6Uij[0][7] = 1.156390; + pDetail->adTable6Uij[0][11] = 0.992291; + pDetail->adTable6Uij[0][13] = 1.003670; + pDetail->adTable6Uij[0][14] = 1.302576; + pDetail->adTable6Uij[0][15] = 1.191904; + pDetail->adTable6Uij[0][16] = 1.205769; + pDetail->adTable6Uij[0][17] = 1.219634; + pDetail->adTable6Uij[0][18] = 1.233498; + pDetail->adTable6Uij[1][2] = 0.835058; + pDetail->adTable6Uij[1][3] = 0.816431; + pDetail->adTable6Uij[1][4] = 0.915502; + pDetail->adTable6Uij[1][6] = 0.993476; + pDetail->adTable6Uij[1][7] = 0.408838; + pDetail->adTable6Uij[1][11] = 0.993556; + pDetail->adTable6Uij[2][3] = 0.969870; + pDetail->adTable6Uij[2][6] = 1.045290; + pDetail->adTable6Uij[2][8] = 0.900000; + pDetail->adTable6Uij[2][14] = 1.066638; + pDetail->adTable6Uij[2][15] = 1.077634; + pDetail->adTable6Uij[2][16] = 1.088178; + pDetail->adTable6Uij[2][17] = 1.098291; + pDetail->adTable6Uij[2][18] = 1.108021; + pDetail->adTable6Uij[3][4] = 1.065173; + pDetail->adTable6Uij[3][6] = 0.971926; + pDetail->adTable6Uij[3][7] = 1.616660; + pDetail->adTable6Uij[3][10] = 1.250000; + pDetail->adTable6Uij[3][11] = 1.250000; + pDetail->adTable6Uij[3][12] = 1.250000; + pDetail->adTable6Uij[3][13] = 1.250000; + pDetail->adTable6Uij[6][14] = 1.028973; + pDetail->adTable6Uij[6][15] = 1.033754; + pDetail->adTable6Uij[6][16] = 1.038338; + pDetail->adTable6Uij[6][17] = 1.042735; + pDetail->adTable6Uij[6][18] = 1.046966; + pDetail->adTable6Kij[0][1] = 1.003630; + pDetail->adTable6Kij[0][2] = 0.995933; + pDetail->adTable6Kij[0][4] = 1.007619; + pDetail->adTable6Kij[0][6] = 1.000080; + pDetail->adTable6Kij[0][7] = 1.023260; + pDetail->adTable6Kij[0][11] = 0.997596; + pDetail->adTable6Kij[0][13] = 1.002529; + pDetail->adTable6Kij[0][14] = 0.982962; + pDetail->adTable6Kij[0][15] = 0.983565; + pDetail->adTable6Kij[0][16] = 0.982707; + pDetail->adTable6Kij[0][17] = 0.981849; + pDetail->adTable6Kij[0][18] = 0.980991; + pDetail->adTable6Kij[1][2] = 0.982361; + pDetail->adTable6Kij[1][3] = 1.007960; + pDetail->adTable6Kij[1][6] = 0.942596; + pDetail->adTable6Kij[1][7] = 1.032270; + pDetail->adTable6Kij[2][3] = 1.008510; + pDetail->adTable6Kij[2][6] = 1.007790; + pDetail->adTable6Kij[2][14] = 0.910183; + pDetail->adTable6Kij[2][15] = 0.895362; + pDetail->adTable6Kij[2][16] = 0.881152; + pDetail->adTable6Kij[2][17] = 0.867520; + pDetail->adTable6Kij[2][18] = 0.854406; + pDetail->adTable6Kij[3][4] = 0.986893; + pDetail->adTable6Kij[3][6] = 0.999969; + pDetail->adTable6Kij[3][7] = 1.020340; + pDetail->adTable6Kij[6][14] = 0.968130; + pDetail->adTable6Kij[6][15] = 0.962870; + pDetail->adTable6Kij[6][16] = 0.957828; + pDetail->adTable6Kij[6][17] = 0.952441; + pDetail->adTable6Kij[6][18] = 0.948338; + pDetail->adTable6Gij[0][2] = 0.807653; + pDetail->adTable6Gij[0][7] = 1.957310; + pDetail->adTable6Gij[1][2] = 0.982746; + pDetail->adTable6Gij[2][3] = 0.370296; + pDetail->adTable6Gij[2][5] = 1.673090; + + + + return 0; +} + +void Detail_paramdl(Detail *pDetail) { + for ( j = 0; j < NUMBEROFCOMPONENTS; j++) { + pDetail->adTable5Qi[j] = 0.0; + pDetail->adTable5Fi[j] = 0.0; + pDetail->adTable5Si[j] = 0.0; + pDetail->adTable5Wi[j] = 0.0; + } + pDetail->adTable5Qi[2] = 0.690000; + pDetail->adTable5Qi[5] = 1.067750; + pDetail->adTable5Qi[6] = 0.633276; + pDetail->adTable5Fi[7] = 1.0000; + pDetail->adTable5Si[5] = 1.5822; + pDetail->adTable5Si[6] = 0.3900; + pDetail->adTable5Wi[5] = 1.0000; + for (j = pDetail->iNCC - 1; j >= 0; j--) { + const double adTable5Ki[21] = { + 0.4619255, 0.4479153, 0.4557489, 0.5279209, 0.5837490, 0.3825868, 0.4618263, 0.3514916, 0.4533894, 0.4186954, + 0.6406937, 0.6341423, 0.6738577, 0.6798307, 0.7175118, 0.7525189, 0.7849550, 0.8152731, 0.8437826, 0.3589888, + 0.4216551 + }; + const double adTable5Mri[21] = { + 16.0430, 28.0135, 44.0100, 30.0700, 44.0970, 18.0153, 34.0820, 2.0159, 28.0100, 31.9988, 58.1230, 58.1230, + 72.1500, 72.1500, 86.1770, 100.2040, 114.2310, 128.2580, 142.2850, 4.0026, 39.9480 + }; + pDetail->dMri[j] = adTable5Mri[pDetail->aiCID[j]]; + pDetail->dKi[j] = adTable5Ki[pDetail->aiCID[j]]; + } + for ( j = 0; j < pDetail->iNCC; j++) { + const double adTable5Gi[21] = { + 0.000000, 0.027815, 0.189065, 0.079300, 0.141239, 0.332500, 0.088500, 0.034369, 0.038953, 0.021000, 0.256692, + 0.281835, 0.332267, 0.366911, 0.289731, 0.337542, 0.383381, 0.427354, 0.469659, 0.000000, 0.000000 + }; + const double adTable5Ei[21] = { + 151.318300, 99.737780, 241.960600, 244.166700, 298.118300, 514.015600, 296.355000, 26.957940, 105.534800, + 122.766700, 324.068900, 337.638900, 365.599900, 370.682300, 402.636293, 427.722630, 450.325022, 470.840891, + 489.558373, 2.610111, 119.629900 + }; + pDetail->dGi[j] = adTable5Gi[pDetail->aiCID[j]]; + pDetail->dEi[j] = adTable5Ei[pDetail->aiCID[j]]; + } + for ( j = 0; j < pDetail->iNCC; j++) { + pDetail->dQi[j] = pDetail->adTable5Qi[pDetail->aiCID[j]]; + pDetail->dFi[j] = 0.0; + if (pDetail->aiCID[j] == 7) pDetail->dFi[j] = pDetail->adTable5Fi[7]; + pDetail->dSi[j] = pDetail->adTable5Si[pDetail->aiCID[j]]; + pDetail->dWi[j] = pDetail->adTable5Wi[pDetail->aiCID[j]]; + } + for ( j = 0; j < pDetail->iNCC; j++) { + for ( k = j; k < pDetail->iNCC; k++) { + pDetail->dUij[j][k] = pDetail->adTable6Uij[pDetail->aiCID[j]][pDetail->aiCID[k]]; + pDetail->dKij[j][k] = pDetail->adTable6Kij[pDetail->aiCID[j]][pDetail->aiCID[k]]; + pDetail->dEij[j][k] = pDetail->adTable6Eij[pDetail->aiCID[j]][pDetail->aiCID[k]]; + pDetail->dGij[j][k] = pDetail->adTable6Gij[pDetail->aiCID[j]][pDetail->aiCID[k]]; + } + } +} + +void Detail_dhvMol(Detail *pDetail, NGParSTRUCT *ptNGPar) { + const double adTableHhvMol[4][NUMBEROFCOMPONENTS] = { + { //0 + 892.97, 0, 0, 1564.34, 2224.01, 45.074, 562.94, 286.63, 282.8, 0, 2874.2, 2883.82, 3535.98, 3542.89, + 4203.23, 4862.87, 5522.4, 6182.91, 6842.69, 0, 0 + }, + { //15 + 891.56, 0, 0, 1562.14, 2221.1, 44.43, 562.38, 286.15, 282.91, 0, 2870.58, 2879.76, 3531.68, 3538.6, + 4198.24, 4857.18, 5516.01, 6175.82, 6834.9, 0, 0 + }, + { //20 + 891.09, 0, 0, 1561.41, 2220.13, 44.22, 562.19, 285.99, 282.95, 0, 2869.38, 2878.57, 3530.24, 3537.17, + 4196.58, 4855.29, 5513.88, 6173.46, 6832.31, 0, 0 + }, + { //25 + 890.63, 0, 0, 1560.69, 2219.17, 44.016, 562.01, 285.83, 282.98, 0, 2868.2, 2877.4, 3528.83, 3535.77, + 4194.95, 4853.43, 5511.8, 6171.15, 6829.77, 0, 0 + } + }; + + const double adTableLhvMol[4][NUMBEROFCOMPONENTS] = { + { //0 + 802.82, 0, 0, 1429.12, 2043.71, 0, 517.87, 241.56, 282.8, 0, 2648.83, 2658.45, 3265.54, 3272.45, 3887.71, + 4502.28, 5116.73, 5732.17, 6346.88, 0, 0 + }, + { //15 + 802.69, 0, 0, 1428.84, 2043.37, 0, 517.95, 241.72, 282.91, 0, 2648.42, 2657.6, 3265.08, 3272, 3887.21, + 4501.72, 5116.11, 5731.49, 6346.14, 0, 0 + }, + { //20 + 802.65, 0, 0, 1428.74, 2043.23, 0, 517.97, 241.76, 282.95, 0, 2648.26, 2657.45, 3264.89, 3271.83, 3887.01, + 4501.49, 5115.87, 5731.22, 6345.85, 0, 0 + }, + { //25 + 802.6, 0, 0, 1428.64, 2043.11, 0, 517.99, 241.81, 282.98, 0, 2648.12, 2657.32, 3264.73, 3271.67, 3886.84, + 4501.3, 5115.66, 5730.99, 6345.59, 0, 0 + } + }; + for ( i = 0; i dCbtj) + { + case 0: + ptNGPar->dHhvMol += adTableHhvMol[0][i] * ptNGPar->adMixture[i]; + ptNGPar->dLhvMol +=adTableLhvMol[0][i] * ptNGPar->adMixture[i]; + break; + case 1: + ptNGPar->dHhvMol += adTableHhvMol[1][i] * ptNGPar->adMixture[i]; + ptNGPar->dLhvMol += adTableLhvMol[1][i] * ptNGPar->adMixture[i]; + break; + case 2: + ptNGPar->dHhvMol += adTableHhvMol[2][i] * ptNGPar->adMixture[i]; + ptNGPar->dLhvMol += adTableLhvMol[2][i] * ptNGPar->adMixture[i]; + break; + default: ; + } + } +} + +void Detail_chardl(Detail *pDetail, NGParSTRUCT *ptNGPar) +{ + double tmfrac = 0.0; + + for ( j = 0; j < pDetail->iNCC; j++) { + tmfrac += pDetail->dXi[j]; + } + for ( j = 0; j < pDetail->iNCC; j++) { + pDetail->dXi[j] /= tmfrac; + } + for ( j = 0; j < 18; j++) { + pDetail->adBcoef[j] = 0.0; + } + double k5p0 = 0.0, k2p5 = 0.0, u5p0 = 0.0, u2p5 = 0.0; + pDetail->dW = 0.0; + double q1p0 = 0.0; + pDetail->dF = 0.0; + ptNGPar->dMrx = 0.0; + ptNGPar->dHhvMol = 0.0; + ptNGPar->dLhvMol = 0.0; + for ( i = 0; i < pDetail->iNCC; i++) { + ptNGPar->dMrx += pDetail->dXi[i] * pDetail->dMri[i]; + + k2p5 += pDetail->dXi[i] * pow(pDetail->dKi[i], 2.5); + u2p5 += pDetail->dXi[i] * pow(pDetail->dEi[i], 2.5); + pDetail->dW += pDetail->dXi[i] * pDetail->dGi[i]; + q1p0 += pDetail->dXi[i] * pDetail->dQi[i]; + pDetail->dF += pDetail->dXi[i] * pDetail->dXi[i] * pDetail->dFi[i]; + + for ( j = i; j < pDetail->iNCC; j++) { + const double Xij = (i == j) ? pDetail->dXi[i] * pDetail->dXi[j] : 2.0 * pDetail->dXi[i] * pDetail->dXi[j]; + if (pDetail->dKij[i][j] != 1.0) { + const double term = pow(pDetail->dKi[i] * pDetail->dKi[j], 2.5); + k5p0 += Xij * (pow(pDetail->dKij[i][j], 5.0) - 1.0) * term; + } + if (pDetail->dUij[i][j] != 1.0) { + const double term = pow(pDetail->dEi[i] * pDetail->dEi[j], 2.5); + u5p0 += Xij * (pow(pDetail->dUij[i][j], 5.0) - 1.0) * term; + } + if (pDetail->dGij[i][j] != 1.0) { + const double avgG = (pDetail->dGi[i] + pDetail->dGi[j]) / 2.0; + pDetail->dW += Xij * (pDetail->dGij[i][j] - 1.0) * avgG; + } + const double Eij = pDetail->dEij[i][j] * sqrt(pDetail->dEi[i] * pDetail->dEi[j]); + const double Gij = pDetail->dGij[i][j] * (pDetail->dGi[i] + pDetail->dGi[j]) / 2.0; + const double e0p5 = sqrt(Eij); + const double e2p0 = Eij * Eij; + const double e3p0 = Eij * e2p0; + const double e3p5 = e3p0 * e0p5; + const double e4p5 = Eij * e3p5; + const double e6p0 = e3p0 * e3p0; + const double e7p5 = e4p5 * Eij * e2p0; + const double e9p5 = e7p5 * e2p0; + const double e11p0 = e4p5 * e4p5 * e2p0; + const double e12p0 = e11p0 * Eij; + const double e12p5 = e12p0 * e0p5; + const double s3 = Xij * pow(pow(pDetail->dKi[i], 3.0) * pow(pDetail->dKi[j], 3.0), 0.5); + pDetail->adBcoef[0] += s3; + pDetail->adBcoef[1] += s3 * e0p5; + pDetail->adBcoef[2] += s3 * Eij; + pDetail->adBcoef[3] += s3 * e3p5; + pDetail->adBcoef[4] += s3 * Gij / e0p5; + pDetail->adBcoef[5] += s3 * Gij * e4p5; + pDetail->adBcoef[6] += s3 * pDetail->dQi[i] * pDetail->dQi[j] * e0p5; + pDetail->adBcoef[7] += s3 * pDetail->dSi[i] * pDetail->dSi[j] * e7p5; + pDetail->adBcoef[8] += s3 * pDetail->dSi[i] * pDetail->dSi[j] * e9p5; + pDetail->adBcoef[9] += s3 * pDetail->dWi[i] * pDetail->dWi[j] * e6p0; + pDetail->adBcoef[10] += s3 * pDetail->dWi[i] * pDetail->dWi[j] * e12p0; + pDetail->adBcoef[11] += s3 * pDetail->dWi[i] * pDetail->dWi[j] * e12p5; + pDetail->adBcoef[12] += s3 * pDetail->dFi[i] * pDetail->dFi[j] / e6p0; + pDetail->adBcoef[13] += s3 * e2p0; + pDetail->adBcoef[14] += s3 * e3p0; + pDetail->adBcoef[15] += s3 * pDetail->dQi[i] * pDetail->dQi[j] * e2p0; + pDetail->adBcoef[16] += s3 * e2p0; + pDetail->adBcoef[17] += s3 * e11p0; + } + } + + + for ( i = 0; i < 18; i++) { + pDetail->adBcoef[i] *= pDetail->adAn[i]; + } + pDetail->dKp3 = pow(k5p0 + pow(k2p5, 2.0), 0.6); + pDetail->dU = pow(u5p0 + pow(u2p5, 2.0), 0.2); + pDetail->dQp2 = q1p0 * q1p0; +} + +void Detail_bvir(Detail *pDetail) { + pDetail->dB = pDetail->ddBdT = pDetail->dd2BdT2 = 0.0; + const double t = pDetail->dT; + const double t0p5 = sqrt(t); + const double t2p0 = t * t; + const double t3p0 = t * t2p0; + const double t3p5 = t3p0 * t0p5; + const double t4p5 = t * t3p5; + const double t6p0 = t3p0 * t3p0; + const double t11p0 = t4p5 * t4p5 * t2p0; + const double t7p5 = t6p0 * t * t0p5; + const double t9p5 = t7p5 * t2p0; + const double t12p0 = t9p5 * t0p5 * t2p0; + const double t12p5 = t12p0 * t0p5; + // double t1p5 = t * t0p5; + // double t4p0 = t2p0 * t2p0; + double Bx[18]; + Bx[0] = pDetail->adBcoef[0]; + Bx[1] = pDetail->adBcoef[1] / t0p5; + Bx[2] = pDetail->adBcoef[2] / t; + Bx[3] = pDetail->adBcoef[3] / t3p5; + Bx[4] = pDetail->adBcoef[4] * t0p5; + Bx[5] = pDetail->adBcoef[5] / t4p5; + Bx[6] = pDetail->adBcoef[6] / t0p5; + Bx[7] = pDetail->adBcoef[7] / t7p5; + Bx[8] = pDetail->adBcoef[8] / t9p5; + Bx[9] = pDetail->adBcoef[9] / t6p0; + Bx[10] = pDetail-> adBcoef[10] / t12p0; + Bx[11] = pDetail-> adBcoef[11] / t12p5; + Bx[12] = pDetail-> adBcoef[12] * t6p0; + Bx[13] = pDetail-> adBcoef[13] / t2p0; + Bx[14] = pDetail-> adBcoef[14] / t3p0; + Bx[15] = pDetail-> adBcoef[15] / t2p0; + Bx[16] = pDetail-> adBcoef[16] / t2p0; + Bx[17] = pDetail-> adBcoef[17] / t11p0; + for ( i = 0; i < 18; i++) { + pDetail->dB += Bx[i]; + } + for ( i = 0; i < 18; i++) { + if (pDetail->adUn[i] != 0.0) { + Bx[i] *= pDetail->adUn[i] ; + } + } + for ( i = 0; i < 18; i++) { + if (pDetail->adUn[i] != 0.0) { + pDetail->ddBdT += Bx[i]/t; + } + } + pDetail->ddBdT = -pDetail->ddBdT; + for ( i = 0; i < 18; i++) { + if (pDetail->adUn[i] != 0.0 && pDetail->adUn[i] != -1.0) { + Bx[i] *= (pDetail->adUn[i] + 1.0) ; + } + } + for ( i = 0; i < 18; i++) { + if (pDetail->adUn[i] != 0.0 && pDetail->adUn[i] != -1.0) { + pDetail->dd2BdT2 += Bx[i]/ t2p0; + } + } +} + +void Detail_temp(Detail *pDetail) { + Detail_bvir(pDetail); + const double tr = pDetail->dT / pDetail->dU; + const double tr0p5 = sqrt(tr); + const double tr1p5 = tr * tr0p5; + const double tr2p0 = tr * tr; + const double tr3p0 = tr * tr2p0; + const double tr4p0 = tr * tr3p0; + const double tr5p0 = tr * tr4p0; + const double tr6p0 = tr * tr5p0; + const double tr7p0 = tr * tr6p0; + const double tr8p0 = tr * tr7p0; + const double tr9p0 = tr * tr8p0; + const double tr11p0 = tr6p0 * tr5p0; + const double tr13p0 = tr6p0 * tr7p0; + const double tr21p0 = tr9p0 * tr9p0 * tr3p0; + const double tr22p0 = tr * tr21p0; + const double tr23p0 = tr * tr22p0; + + pDetail->adFn[12] = pDetail->adAn[12] * pDetail->dF * tr6p0; + pDetail->adFn[13] = pDetail->adAn[13] / tr2p0; + pDetail->adFn[14] = pDetail->adAn[14] / tr3p0; + pDetail->adFn[15] = pDetail->adAn[15] * pDetail->dQp2 / tr2p0; + pDetail->adFn[16] = pDetail->adAn[16] / tr2p0; + pDetail->adFn[17] = pDetail->adAn[17] / tr11p0; + pDetail->adFn[18] = pDetail->adAn[18] * tr0p5; + pDetail->adFn[19] = pDetail->adAn[19] / tr0p5; + pDetail->adFn[20] = pDetail->adAn[20]; + + pDetail->adFn[21] = pDetail->adAn[21] / tr4p0; + pDetail->adFn[22] = pDetail->adAn[22] / tr6p0; + pDetail->adFn[23] = pDetail->adAn[23] / tr21p0; + pDetail->adFn[24] = pDetail->adAn[24] * pDetail->dW / tr23p0; + pDetail->adFn[25] = pDetail->adAn[25] * pDetail->dQp2 / tr22p0; + pDetail->adFn[26] = pDetail->adAn[26] * pDetail->dF * tr; + pDetail->adFn[27] = pDetail->adAn[27] * pDetail->dQp2 * tr0p5; + pDetail->adFn[28] = pDetail->adAn[28] * pDetail->dW / tr7p0; + pDetail->adFn[29] = pDetail->adAn[29] * pDetail->dF * tr; + pDetail->adFn[30] = pDetail->adAn[30] / tr6p0; + pDetail->adFn[31] = pDetail->adAn[31] * pDetail->dW / tr4p0; + pDetail->adFn[32] = pDetail->adAn[32] * pDetail->dW / tr; + pDetail->adFn[33] = pDetail->adAn[33] * pDetail->dW / tr9p0; + pDetail->adFn[34] = pDetail->adAn[34] * pDetail->dF * tr13p0; + pDetail->adFn[35] = pDetail->adAn[35] / tr21p0; + pDetail->adFn[36] = pDetail->adAn[36] * pDetail->dQp2 / tr8p0; + pDetail->adFn[37] = pDetail->adAn[37] * tr0p5; + pDetail->adFn[38] = pDetail->adAn[38]; + pDetail->adFn[39] = pDetail->adAn[39] / tr2p0; + pDetail->adFn[40] = pDetail->adAn[40] / tr7p0; + pDetail->adFn[41] = pDetail->adAn[41] * pDetail->dQp2 / tr9p0; + pDetail->adFn[42] = pDetail->adAn[42] / tr22p0; + pDetail->adFn[43] = pDetail->adAn[43] / tr23p0; + pDetail->adFn[44] = pDetail->adAn[44] / tr; + pDetail->adFn[45] = pDetail->adAn[45] / tr9p0; + pDetail->adFn[46] = pDetail->adAn[46] * pDetail->dQp2 / tr3p0; + pDetail->adFn[47] = pDetail->adAn[47] / tr8p0; + pDetail->adFn[48] = pDetail->adAn[48] * pDetail->dQp2 / tr23p0; + pDetail->adFn[49] = pDetail->adAn[49] / tr1p5; + pDetail->adFn[50] = pDetail->adAn[50] * pDetail->dW / tr5p0; + pDetail->adFn[51] = pDetail->adAn[51] * pDetail->dQp2 * tr0p5; + pDetail->adFn[52] = pDetail->adAn[52] / tr4p0; + pDetail->adFn[53] = pDetail->adAn[53] * pDetail->dW / tr7p0; + pDetail->adFn[54] = pDetail->adAn[54] / tr3p0; + pDetail->adFn[55] = pDetail->adAn[55] * pDetail->dW; + pDetail->adFn[56] = pDetail->adAn[56] / tr; + pDetail->adFn[57] = pDetail->adAn[57] * pDetail->dQp2; +} + +void Detail_ddetail(Detail *pDetail, NGParSTRUCT *ptNGPar) { + double xnumer, xdenom; + const int imax = 150; + pDetail->dRho = 0.0; + Detail_braket(pDetail, ptNGPar); + if (ptNGPar->lStatus == MAX_NUM_OF_ITERATIONS_EXCEEDED || + ptNGPar->lStatus == NEGATIVE_DENSITY_DERIVATIVE) { + return; + } + double x1 = pDetail->dRhoL; + double x2 = pDetail->dRhoH; + double y1 = pDetail->dPRhoL - pDetail->dP; + double y2 = pDetail->dPRhoH - pDetail->dP; + double delx = x1 - x2; + double delprv = delx; + double x3 = x1; + double y3 = y1; + for ( i = 0; i < imax; i++) { + const double epsmin = 1.e-7; + const double epsr = 1.e-6; + const double epsp = 1.e-6; + if (y2 * y3 > 0.0) { + x3 = x1; + y3 = y1; + delx = x1 - x2; + delprv = delx; + } + if (fabs(y3) < fabs(y2)) { + x1 = x2; + x2 = x3; + x3 = x1; + y1 = y2; + y2 = y3; + y3 = y1; + } + const double delmin = epsmin * fabs(x2); + const double delbis = 0.5 * (x3 - x2); + if (fabs(delprv) < delmin || fabs(y1) < fabs(y2)) { + delx = delbis; + delprv = delbis; + } else { + if (x3 != x1) { + const double y2my3 = y2 - y3; + const double y3my1 = y3 - y1; + const double y1my2 = y1 - y2; + xdenom = -(y1my2) * (y2my3) * (y3my1); + xnumer = x1 * y2 * y3 * (y2my3) + + x2 * y3 * y1 * (y3my1) + + x3 * y1 * y2 * (y1my2) - x2 * xdenom; + } else { + xnumer = (x2 - x1) * y2; + xdenom = y1 - y2; + } + if (2.0 * fabs(xnumer) < fabs(delprv * xdenom)) { + delprv = delx; + delx = xnumer / xdenom; + } else { + delx = delbis; + delprv = delbis; + } + } + if ((fabs(y2) < epsp * pDetail->dP) && (fabs(delx) < epsr * fabs(x2))) { + pDetail->dRho = x2 + delx; + return; + } + if (fabs(delx) < delmin) { + const double sgndel = delbis / fabs(delbis); + delx = 1.0000009 * sgndel * delmin; + delprv = delx; + } + const double boundn = delx * (x2 + delx - x3); + if (boundn > 0.0) { + delx = delbis; + delprv = delbis; + } + x1 = x2; + y1 = y2; + x2 = x2 + delx; + Detail_pdetail(pDetail, x2); + y2 = pDetail->dPCalc - pDetail->dP; + } + ptNGPar->lStatus = MAX_NUM_OF_ITERATIONS_EXCEEDED; + pDetail->dRho = x2; +} + +void Detail_braket(Detail *pDetail, NGParSTRUCT *ptNGPar) { + double rho2; + const int imax = 200; + double rho1 = 0.0; + double p1 = 0.0; + double rhomax = 1.0 / pDetail->dKp3; + if (pDetail->dT > 1.2593 * pDetail->dU) + rhomax = 20.0 * rhomax; + const double videal = RGASKJ * pDetail->dT / pDetail->dP; + if (fabs(pDetail->dB) < (0.167 * videal)) { + rho2 = 0.95 / (videal + pDetail->dB); + } else { + rho2 = 1.15 / videal; + } + double del = rho2 / 20.0; + int it=0; + for ( it = 0; it < imax; it++) { + if (rho2 > rhomax && ptNGPar->lStatus != MAX_DENSITY_IN_BRAKET_EXCEEDED) { + ptNGPar->lStatus = MAX_DENSITY_IN_BRAKET_EXCEEDED; + del = 0.01 * (rhomax - rho1) + (pDetail->dP / (RGASKJ * pDetail->dT)) / 20.0; + rho2 = rho1 + del; + continue; + } + Detail_pdetail(pDetail, rho2); + const double p2 = pDetail->dPCalc; + if (p2 > pDetail->dP) { + pDetail->dRhoL = rho1; + pDetail->dPRhoL = p1; + pDetail->dRhoH = rho2; + pDetail->dPRhoH = p2; + ptNGPar->lStatus = NORMAL; + return; + } else if (p2 > p1) { + if (ptNGPar->lStatus == MAX_DENSITY_IN_BRAKET_EXCEEDED) + del *= 2.0; + rho1 = rho2; + p1 = p2; + rho2 = rho1 + del; + continue; + } else { + ptNGPar->lStatus = NEGATIVE_DENSITY_DERIVATIVE; + pDetail->dRho = rho1; + return; + } + } + ptNGPar->lStatus = MAX_NUM_OF_ITERATIONS_EXCEEDED; + pDetail->dRho = rho2; +} + +void Detail_pdetail(Detail *pDetail, double dD) { + pDetail->dPCalc = Detail_zdetail(pDetail, dD) * dD * RGASKJ * pDetail->dT; +} + +double Detail_zdetail(Detail *pDetail, double d) { + const double D1 = pDetail->dKp3 * d; + const double D2 = D1 * D1; + const double D3 = D2 * D1; + const double D4 = D3 * D1; + const double D5 = D4 * D1; + const double D6 = D5 * D1; + const double D7 = D6 * D1; + const double D8 = D7 * D1; + const double D9 = D8 * D1; + const double exp1 = exp(-D1); + const double exp2 = exp(-D2); + const double exp3 = exp(-D3); + const double exp4 = exp(-D4); + pDetail->dZ = 1.0 + pDetail->dB * d + + pDetail->adFn[12] * D1 * (exp3 - 1.0 - 3.0 * D3 * exp3) + + (pDetail->adFn[13] + pDetail->adFn[14] + pDetail->adFn[15]) * D1 * (exp2 - 1.0 - 2.0 * D2 * exp2) + + (pDetail->adFn[16] + pDetail->adFn[17]) * D1 * (exp4 - 1.0 - 4.0 * D4 * exp4) + + (pDetail->adFn[18] + pDetail->adFn[19]) * D2 * 2.0 + + (pDetail->adFn[20] + pDetail->adFn[21] + pDetail->adFn[22]) * D2 * (2.0 - 2.0 * D2) * exp2 + + (pDetail->adFn[23] + pDetail->adFn[24] + pDetail->adFn[25]) * D2 * (2.0 - 4.0 * D4) * exp4 + + pDetail->adFn[26] * D2 * (2.0 - 4.0 * D4) * exp4 + + pDetail->adFn[27] * D3 * 3.0 + + (pDetail->adFn[28] + pDetail->adFn[29]) * D3 * (3.0 - D1) * exp1 + + (pDetail->adFn[30] + pDetail->adFn[31]) * D3 * (3.0 - 2.0 * D2) * exp2 + + (pDetail->adFn[32] + pDetail->adFn[33]) * D3 * (3.0 - 3.0 * D3) * exp3 + + (pDetail->adFn[34] + pDetail->adFn[35] + pDetail->adFn[36]) * D3 * (3.0 - 4.0 * D4) * exp4 + + (pDetail->adFn[37] + pDetail->adFn[38]) * D4 * 4.0 + + (pDetail->adFn[39] + pDetail->adFn[40] + pDetail->adFn[41]) * D4 * (4.0 - 2.0 * D2) * exp2 + + (pDetail->adFn[42] + pDetail->adFn[43]) * D4 * (4.0 - 4.0 * D4) * exp4 + + pDetail->adFn[44] * D5 * 5.0 + + (pDetail->adFn[45] + pDetail->adFn[46]) * D5 * (5.0 - 2.0 * D2) * exp2 + + (pDetail->adFn[47] + pDetail->adFn[48]) * D5 * (5.0 - 4.0 * D4) * exp4 + + pDetail->adFn[49] * D6 * 6.0 + + pDetail->adFn[50] * D6 * (6.0 - 2.0 * D2) * exp2 + + pDetail->adFn[51] * D7 * 7.0 + + pDetail->adFn[52] * D7 * (7.0 - 2.0 * D2) * exp2 + + pDetail->adFn[53] * D8 * (8.0 - D1) * exp1 + + (pDetail->adFn[54] + pDetail->adFn[55]) * D8 * (8.0 - 2.0 * D2) * exp2 + + (pDetail->adFn[56] + pDetail->adFn[57]) * D9 * (9.0 - 2.0 * D2) * exp2; + return pDetail->dZ; +} + +double Detail_dZdT(Detail *pDetail, double d) { + const double D1 = pDetail->dKp3 * d; + const double D2 = D1 * D1; + const double D3 = D2 * D1; + const double D4 = D3 * D1; + const double D5 = D4 * D1; + const double D6 = D5 * D1; + const double D7 = D6 * D1; + const double D8 = D7 * D1; + const double exp1 = exp(-D1); + const double exp2 = exp(-D2); + const double exp3 = exp(-D3); + const double exp4 = exp(-D4); + for ( i = 12; i < 58; i++) { + if (pDetail->adUn[i] && pDetail->adFn[i]) { + pDetail->fx[i] = (pDetail->adFn[i] * pDetail->adUn[i] * D1) / pDetail->dT; + } else { + pDetail->fx[i] = 0.0; + } + } + pDetail->ddZdT = d * pDetail->ddBdT; + if (pDetail->dF) + pDetail->ddZdT += pDetail->fx[12] - (pDetail->fx[12] * (1.0 - 3.0 * D3) * exp3); + double tmp = (1.0 - 2.0 * D2) * exp2; + pDetail->ddZdT += (pDetail->fx[13] - (pDetail->fx[13] * tmp)); + pDetail->ddZdT += pDetail->fx[14] - (pDetail->fx[14] * tmp); + pDetail->ddZdT += pDetail->fx[15] - (pDetail->fx[15] * tmp); + tmp = (1.0 - 4.0 * D4) * exp4; + pDetail->ddZdT += pDetail->fx[16] - (pDetail->fx[16] * tmp); + pDetail->ddZdT += pDetail->fx[17] - (pDetail->fx[17] * tmp); + pDetail->ddZdT = pDetail->ddZdT - (pDetail->fx[18] + pDetail->fx[19]) * D1 * 2.0 + - (pDetail->fx[21] + pDetail->fx[22]) * D1 * (2.0 - 2.0 * D2) * exp2 + - (pDetail->fx[23] + pDetail->fx[24] + pDetail->fx[25]) * D1 * (2.0 - 4.0 * D4) * exp4 + - pDetail->fx[26] * D1 * (2.0 - 4.0 * D4) * exp4 + - pDetail->fx[27] * D2 * 3.0 + - (pDetail->fx[28] + pDetail->fx[29]) * D2 * (3.0 - D1) * exp1 + - (pDetail->fx[30] + pDetail->fx[31]) * D2 * (3.0 - 2.0 * D2) * exp2 + - (pDetail->fx[32] + pDetail->fx[33]) * D2 * (3.0 - 3.0 * D3) * exp3 + - (pDetail->fx[34] + pDetail->fx[35] + pDetail->fx[36]) * D2 * (3.0 - 4.0 * D4) * exp4 + - pDetail->fx[37] * D3 * 4.0 + - (pDetail->fx[39] + pDetail->fx[40] + pDetail->fx[41]) * D3 * (4.0 - 2.0 * D2) * exp2 + - (pDetail->fx[42] + pDetail->fx[43]) * D3 * (4.0 - 4.0 * D4) * exp4 + - pDetail->fx[44] * D4 * 5.0 + - (pDetail->fx[45] + pDetail->fx[46]) * D4 * (5.0 - 2.0 * D2) * exp2 + - (pDetail->fx[47] + pDetail->fx[48]) * D4 * (5.0 - 4.0 * D4) * exp4 + - pDetail->fx[49] * D5 * 6.0 + - pDetail->fx[50] * D5 * (6.0 - 2.0 * D2) * exp2 + - pDetail->fx[51] * D6 * 7.0 + - pDetail->fx[52] * D6 * (7.0 - 2.0 * D2) * exp2 + - pDetail->fx[53] * D7 * (8.0 - D1) * exp1 + - pDetail->fx[54] * D7 * (8.0 - 2.0 * D2) * exp2 + - pDetail->fx[56] * D8 * (9.0 - 2.0 * D2) * exp2; + return pDetail->ddZdT; +} + +double Detail_d2ZdT2(Detail *pDetail, double d) { + const double D1 = pDetail->dKp3 * d; + const double D2 = D1 * D1; + const double D3 = D2 * D1; + const double D4 = D3 * D1; + const double D5 = D4 * D1; + const double D6 = D5 * D1; + const double D7 = D6 * D1; + const double D8 = D7 * D1; + const double exp1 = exp(-D1); + const double exp2 = exp(-D2); + const double exp3 = exp(-D3); + const double exp4 = exp(-D4); + for ( i = 12; i < 58; i++) { + if (pDetail->adUn[i] && pDetail->adFn[i]) { + pDetail->fx[i] = (pDetail->adFn[i] * D1 * pDetail->adUn[i] * (pDetail->adUn[i] + 1.0)) / ( + pDetail->dT * pDetail->dT); + } else { + pDetail->fx[i] = 0.0; + } + } + pDetail->dd2ZdT2 = d * pDetail->dd2BdT2; + if (pDetail->dF) + pDetail->dd2ZdT2 += pDetail->fx[12] - (pDetail->fx[12] * (1.0 - 3.0 * D3) * exp3); + double tmp = (1.0 - 2.0 * D2) * exp2; + pDetail->dd2ZdT2 += -pDetail->fx[13] + (pDetail->fx[13] * tmp); + pDetail->dd2ZdT2 += -pDetail->fx[14] + (pDetail->fx[14] * tmp); + pDetail->dd2ZdT2 += -pDetail->fx[15] + (pDetail->fx[15] * tmp); + tmp = (1.0 - 4.0 * D4) * exp4; + pDetail->dd2ZdT2 += -pDetail->fx[16] + (pDetail->fx[16] * tmp); + pDetail->dd2ZdT2 += -pDetail->fx[17] + pDetail->fx[17] * tmp; + pDetail->dd2ZdT2 = pDetail->dd2ZdT2 + (pDetail->fx[18] + pDetail->fx[19]) * D1 * 2.0 + + (pDetail->fx[21] + pDetail->fx[22]) * D1 * (2.0 - 2.0 * D2) * exp2 + + (pDetail->fx[23] + pDetail->fx[24] + pDetail->fx[25]) * D1 * (2.0 - 4.0 * D4) * exp4 + + pDetail->fx[26] * D1 * (2.0 - 4.0 * D4) * exp4 + + pDetail->fx[27] * D2 * 3.0 + + (pDetail->fx[28] + pDetail->fx[29]) * D2 * (3.0 - D1) * exp1 + + (pDetail->fx[30] + pDetail->fx[31]) * D2 * (3.0 - 2.0 * D2) * exp2 + + (pDetail->fx[32] + pDetail->fx[33]) * D2 * (3.0 - 3.0 * D3) * exp3 + + (pDetail->fx[34] + pDetail->fx[35] + pDetail->fx[36]) * D2 * (3.0 - 4.0 * D4) * exp4 + + pDetail->fx[37] * D3 * 4.0 + + (pDetail->fx[39] + pDetail->fx[40] + pDetail->fx[41]) * D3 * (4.0 - 2.0 * D2) * exp2 + + (pDetail->fx[42] + pDetail->fx[43]) * D3 * (4.0 - 4.0 * D4) * exp4 + + pDetail->fx[44] * D4 * 5.0 + + (pDetail->fx[45] + pDetail->fx[46]) * D4 * (5.0 - 2.0 * D2) * exp2 + + (pDetail->fx[47] + pDetail->fx[48]) * D4 * (5.0 - 4.0 * D4) * exp4 + + pDetail->fx[49] * D5 * 6.0 + + pDetail->fx[50] * D5 * (6.0 - 2.0 * D2) * exp2 + + pDetail->fx[51] * D6 * 7.0 + + pDetail->fx[52] * D6 * (7.0 - 2.0 * D2) * exp2 + + pDetail->fx[53] * D7 * (8.0 - D1) * exp1 + + pDetail->fx[54] * D7 * (8.0 - 2.0 * D2) * exp2 + + pDetail->fx[56] * D8 * (9.0 - 2.0 * D2) * exp2; + return pDetail->dd2ZdT2; +} + +double Detail_dZdD(Detail *pDetail, double d) { + double temp, temp1, temp2, temp3; + const double D1 = pDetail->dKp3 * d; + const double D2 = D1 * D1; + const double D3 = D2 * D1; + const double D4 = D3 * D1; + const double D5 = D4 * D1; + const double D6 = D5 * D1; + const double D7 = D6 * D1; + const double D8 = D7 * D1; + const double exp1 = exp(-D1); + const double exp2 = exp(-D2); + const double exp3 = exp(-D3); + const double exp4 = exp(-D4); + for ( i = 12; i < 58; i++) { + pDetail->fx[i] = pDetail->adFn[i]; + } + pDetail->ddZdD = pDetail->dB / pDetail->dKp3; + if (pDetail->dF) { + temp1 = -9.0 * D3 * exp3; + temp2 = (1.0 - 3.0 * D3) * exp3; + temp3 = -temp2 * 3.0 * D6; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += -pDetail->fx[12] + pDetail->fx[12] * temp; + } + temp1 = -4.0 * D2 * exp2; + temp2 = (1.0 - 2.0 * D2) * exp2; + temp3 = -temp2 * 2.0 * D2; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += -pDetail->fx[13] + pDetail->fx[13] * temp; + pDetail->ddZdD += -pDetail->fx[14] + pDetail->fx[14] * temp; + pDetail->ddZdD += -pDetail->fx[15] + pDetail->fx[15] * temp; + temp1 = -16.0 * D4 * exp4; + temp2 = (1.0 - 4.0 * D4) * exp4; + temp3 = -temp2 * 4.0 * D4; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += -pDetail->fx[16] + pDetail->fx[16] * temp; + pDetail->ddZdD += -pDetail->fx[17] + pDetail->fx[17] * temp; + temp = 4.0 * D1; + pDetail->ddZdD += pDetail->fx[18] * temp; + pDetail->ddZdD += pDetail->fx[19] * temp; + temp1 = -4.0 * D3 * exp2; + temp2 = (2.0 - 2.0 * D2) * 2.0 * D1 * exp2; + temp3 = -temp2 * D2; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += pDetail->fx[20] * temp; + pDetail->ddZdD += pDetail->fx[21] * temp; + pDetail->ddZdD += pDetail->fx[22] * temp; + temp1 = -16.0 * D5 * exp4; + temp2 = (2.0 - 4.0 * D4) * 2.0 * D1 * exp4; + temp3 = -temp2 * 2.0 * D4; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += pDetail->fx[23] * temp; + pDetail->ddZdD += pDetail->fx[24] * temp; + pDetail->ddZdD += pDetail->fx[25] * temp; + pDetail->ddZdD += pDetail->fx[26] * temp; + temp = 9.0 * D2; + pDetail->ddZdD += pDetail->fx[27] * temp; + temp = -D3 * exp1 + (3.0 - D1) * 3.0 * D2 * exp1; + temp -= (3.0 - D1) * D3 * exp1; + pDetail->ddZdD += pDetail->fx[28] * temp; + pDetail->ddZdD += pDetail->fx[29] * temp; + temp1 = -4.0 * D4 * exp2; + temp2 = (3.0 - 2.0 * D2) * 3.0 * D2 * exp2; + temp3 = -(3.0 - 2.0 * D2) * 2.0 * D4 * exp2; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += pDetail->fx[30] * temp; + pDetail->ddZdD += pDetail->fx[31] * temp; + temp1 = -9.0 * D5 * exp3; + temp2 = (3.0 - 3.0 * D3) * 3.0 * D2 * exp3; + temp3 = -(3.0 - 3.0 * D3) * 3.0 * D5 * exp3; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += pDetail->fx[32] * temp; + pDetail->ddZdD += pDetail->fx[33] * temp; + temp1 = -16.0 * D6 * exp4; + temp2 = (3.0 - 4.0 * D4) * 3.0 * D2 * exp4; + temp3 = -(3.0 - 4.0 * D4) * D6 * 4.0 * exp4; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += pDetail->fx[34] * temp; + pDetail->ddZdD += pDetail->fx[35] * temp; + pDetail->ddZdD += pDetail->fx[36] * temp; + temp = 16.0 * D3; + pDetail->ddZdD += pDetail->fx[37] * temp; + pDetail->ddZdD += pDetail->fx[38] * temp; + temp1 = -4.0 * D5 * exp2; + temp2 = (4.0 - 2.0 * D2) * 4.0 * D3 * exp2; + temp3 = -(4.0 - 2.0 * D2) * 2.0 * D5 * exp2; + temp = temp1 + temp2 + temp3; + pDetail->ddZdD += pDetail->fx[39] * temp; + pDetail->ddZdD += pDetail->fx[40] * temp; + pDetail->ddZdD += pDetail->fx[41] * temp; + temp = -16.0 * D7 * exp4 + (4.0 - 4.0 * D4) * 4.0 * D3 * exp4; + temp -= (4.0 - 4.0 * D4) * D7 * 4.0 * exp4; + pDetail->ddZdD += pDetail->fx[42] * temp; + pDetail->ddZdD += pDetail->fx[43] * temp; + temp = 25.0 * D4; + pDetail->ddZdD += pDetail->fx[44] * temp; + temp = -4.0 * D6 * exp2 + (5.0 - 2.0 * D2) * 5.0 * D4 * exp2; + temp -= (5.0 - 2.0 * D2) * D6 * 2.0 * exp2; + pDetail->ddZdD += pDetail->fx[45] * temp; + pDetail->ddZdD += pDetail->fx[46] * temp; + temp = -16.0 * D8 * exp4 + (5.0 - 4.0 * D4) * 5.0 * D4 * exp4; + temp -= (5.0 - 4.0 * D4) * D8 * 4.0 * exp4; + pDetail->ddZdD += pDetail->fx[47] * temp; + pDetail->ddZdD += pDetail->fx[48] * temp; + temp = 36.0 * D5; + pDetail->ddZdD += pDetail->fx[49] * temp; + temp = -4.0 * D7 * exp2 + (6.0 - 2.0 * D2) * 6.0 * D5 * exp2; + temp -= (6.0 - 2.0 * D2) * D7 * 2.0 * exp2; + pDetail->ddZdD += pDetail->fx[50] * temp; + temp = 49.0 * D6; + pDetail->ddZdD += pDetail->fx[51] * temp; + temp = -4.0 * D8 * exp2 + (7.0 - 2.0 * D2) * 7.0 * D6 * exp2; + temp -= (7.0 - 2.0 * D2) * D8 * 2.0 * exp2; + pDetail->ddZdD += pDetail->fx[52] * temp; + temp = -1.0 * D8 * exp1 + (8.0 - D1) * 8.0 * D7 * exp1; + temp -= (8.0 - D1) * D8 * exp1; + pDetail->ddZdD += pDetail->fx[53] * temp; + temp = -4.0 * D1 * D8 * exp2 + (8.0 - 2.0 * D2) * 8.0 * D7 * exp2; + temp -= (8.0 - 2.0 * D2) * D8 * 2.0 * D1 * exp2; + pDetail->ddZdD += pDetail->fx[54] * temp; + pDetail->ddZdD += pDetail->fx[55] * temp; + temp = -4.0 * D2 * D8 * exp2 + (9.0 - 2.0 * D2) * 9.0 * D8 * exp2; + temp -= (9.0 - 2.0 * D2) * D2 * D8 * 2.0 * exp2; + pDetail->ddZdD += pDetail->fx[56] * temp; + pDetail->ddZdD += pDetail->fx[57] * temp; + pDetail->ddZdD *= pDetail->dKp3; + return pDetail->ddZdD; +} + +void Detail_relativedensity(const Detail *pDetail, NGParSTRUCT *ptNGPar) { + const double dMWair = 28.96256; + const double dBX = -0.12527 + 5.91e-4 * ptNGPar->dTb - 6.62e-7 * ptNGPar->dTb * ptNGPar->dTb; + const double dZa = 1.0 + (dBX * pDetail->dP) / (RGASKJ * ptNGPar->dTb); + ptNGPar->dRD_Ideal = ptNGPar->dMrx / dMWair; + ptNGPar->dRD_Real = ptNGPar->dRD_Ideal * (dZa / ptNGPar->dZb); +} diff --git a/Detail.h b/Detail.h new file mode 100644 index 0000000..f350318 --- /dev/null +++ b/Detail.h @@ -0,0 +1,120 @@ +/************************************************************************* +* �ļ�: detail.h +**************************************************************************/ + +#ifndef _DETAIL_H +#define _DETAIL_H + +#include "NGCal.h" + + +typedef struct Detail { + + int iNCC; + + int aiCID[21]; + + double dOldMixID; + double dOldPb; + double dOldTb; + double dOldPf; + double dOldTf; + + + double adAn[58]; + double adUn[58]; + + + double dMri[21]; + double dEi[21]; + double dKi[21]; + double dGi[21]; + double dQi[21]; + double dFi[21]; + double dSi[21]; + double dWi[21]; + + double dEij[21][21]; + double dUij[21][21]; + double dKij[21][21]; + double dGij[21][21]; + + double adTable6Eij[21][21]; + double adTable6Uij[21][21]; + double adTable6Kij[21][21]; + double adTable6Gij[21][21]; + + double adTable5Qi[21]; + double adTable5Fi[21]; + double adTable5Si[21]; + double adTable5Wi[21]; + + double dXi[21]; + double dPCalc; + double dT; + double dP; + double dRhoTP; + double dB; + double adBcoef[18]; + double adFn[58]; + double fx[58]; + double dU; + double dKp3; + double dW; + double dQp2; + double dF; + double dRho; + double dRhoL; + double dRhoH; + double dPRhoL; + double dPRhoH; + + + double dZ; + double ddZdT; + double dd2ZdT2; + double ddZdD; + double ddBdT; + double dd2BdT2; +} Detail; + + +Detail *Detail_Construct(void); + +void Detail_Destroy(Detail *pDetail); + + +int Detail_compositionchange(Detail *pDetail, const NGParSTRUCT *pAGA10); + +int Detail_table(Detail *pDetail); + +void Detail_paramdl(Detail *pDetail); + +void Detail_chardl(Detail *pDetail, NGParSTRUCT *pAGA10); + +void Detail_dhvMol(Detail *pDetail, NGParSTRUCT *pAGA10); + +void Detail_bvir(Detail *pDetail); + +void Detail_temp(Detail *pDetail); + +void Detail_braket(Detail *pDetail, NGParSTRUCT *pAGA10); + +void Detail_pdetail(Detail *pDetail, double dRho); + +void Detail_ddetail(Detail *pDetail, NGParSTRUCT *pAGA10); + +void Detail_relativedensity(const Detail *pDetail, NGParSTRUCT *pAGA10); + + +double Detail_zdetail(Detail *pDetail, double dRho); + +double Detail_dZdT(Detail *pDetail, double dRho); + +double Detail_d2ZdT2(Detail *pDetail, double dRho); + +double Detail_dZdD(Detail *pDetail, double dRho); + +void Detail_Run(Detail *pDetail, NGParSTRUCT *ptNGPar); + +#endif diff --git a/Detail.o b/Detail.o new file mode 100644 index 0000000000000000000000000000000000000000..6a412ad4df9ced27852d8ad33fb97eb1f20e24f2 GIT binary patch literal 74108 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 literal 0 HcmV?d00001 diff --git a/FlowCal.c b/FlowCal.c new file mode 100644 index 0000000..3e0d818 --- /dev/null +++ b/FlowCal.c @@ -0,0 +1,501 @@ +// +// Created by ldeyu on 2025/7/7. +// +#include "NGCal.h" +#include "FlowCal.h" +#include "math.h" + + +double format_double(double value, int digits) { + // 处理默认位数(4位) + if (digits == 0) { + digits = 4; + } + + // 验证位数有效性 + if (digits < 1 || digits > 5) { + fprintf(stderr, "Error: Invalid digit value (must be 1-5 or 0 for default)\n"); + return NAN; // 返回 NaN 表示错误 + } + + char format_str[10]; + char buffer[50]; + + // 生成动态格式字符串(如 "%.4f") + snprintf(format_str, sizeof(format_str), "%%.%df", digits); + + // 格式化数值到字符串 + snprintf(buffer, sizeof(buffer), format_str, value); + + // 转换回 double + double result = strtod(buffer, NULL); + return result; +} + +void OFlowCal(FlowParSTRUCT *ptFlowPar, NGParSTRUCT *ptNGPar) { + double tempPatm = ptFlowPar->dPatm * 1000000; + + double tempPf = ptFlowPar->dPf * 1000000; + + + double tempDP = ptFlowPar->dDp * 1000; + + double tempTf = ptFlowPar->dTf + 273.15; + + if (ptFlowPar->dPfType == 0) { + ptFlowPar->dPf = tempPatm + tempPf; + ptNGPar->dPf = tempPatm + tempPf; + } else { + ptFlowPar->dPf = tempPf; + ptNGPar->dPf = tempPf; + } + + ptFlowPar->dDp = tempDP; + ptFlowPar->dTf = tempTf; + ptNGPar->dTf = tempTf; + ptNGPar->dCbtj = ptFlowPar->dCbtj; + + switch (ptNGPar->dCbtj) { + case 2: + ptNGPar->dPb = 101325; + ptNGPar->dTb = 273.15; + ptFlowPar->dPb_M = (101325); + ptFlowPar->dTb_M = (273.15); + break; + case 1: + + ptNGPar->dPb = (101325); + ptNGPar->dTb = (288.15); + ptFlowPar->dPb_M = (101325); + ptFlowPar->dTb_M = (288.15); + break; + case 0: + + ptNGPar->dPb = (101325); + ptNGPar->dTb = (293.15); + ptFlowPar->dPb_M = (101325); + ptFlowPar->dTb_M = (293.15); + break; + default: ; + } + + double ngArray[NUMBEROFCOMPONENTS]; +int i=0; + for ( i = 0; i < NUMBEROFCOMPONENTS; i++) { + ngArray[i] = ptFlowPar->dNG_Compents[i] / 100; + ptNGPar->adMixture[i] = ngArray[i]; + } + Crit(ptNGPar, 0); + + + ptFlowPar->dFpv = format_double(ptNGPar->dFpv, 4); + + + ptFlowPar->dOrificeD = format_double(ptFlowPar->dOrificeD * ( + 1 + 0.000001 * CaiLiaoPzxs(ptFlowPar->dOrificeMaterial) * ( + ptFlowPar->dTf - 293.15)), 2); + ptFlowPar->dPipeD = format_double(ptFlowPar->dPipeD * (1 + 0.000001 * CaiLiaoPzxs(ptFlowPar->dPipeMaterial) * ( + ptFlowPar->dTf - 293.15)), 2); + ptFlowPar->dBeta = format_double(ptFlowPar->dOrificeD / ptFlowPar->dPipeD, 4); + + ptFlowPar->dE = format_double(calculateE(ptFlowPar->dBeta), 4); + ptFlowPar->dFG = format_double(calculateFG(ptNGPar->dRD_Real), 4); + ptFlowPar->dFT = format_double(calculateFT(ptFlowPar->dTb_M, ptFlowPar->dTf), 4); + + ptFlowPar->dKappa = format_double(calculateKappa(ptNGPar->dZf), 4); + ptFlowPar->dDViscosity = format_double(Dlndjs(ptFlowPar->dPf / 1e6, ptFlowPar->dTf), 5); + ptFlowPar->dDExpCoefficient = format_double(calculateEpsilon(ptFlowPar->dPf, ptFlowPar->dDp, + ptFlowPar->dBeta, ptFlowPar->dKappa), 4); + + double D = ptFlowPar->dPipeD / 1000.0; + double d = ptFlowPar->dOrificeD / 1000.0; + double beta = ptFlowPar->dBeta; + double P1 = ptFlowPar->dPf; + double deltaP = ptFlowPar->dDp; + double Tf = ptFlowPar->dTf; + + + double C_initial = 0.6; + double Qf_initial = (C_initial * ptFlowPar->dE * ptFlowPar->dDExpCoefficient * M_PI * pow(d, 2) / 4) + * sqrt(2 * deltaP / (ptNGPar->dRhof * (1 - pow(beta, 4)))); + ptFlowPar->dVFlowf = Qf_initial; + double tolerance = 1e-6; + double currentC = C_initial; + double currentReD = calculateReD(Qf_initial, D, ptNGPar->dRhof, ptFlowPar->dDViscosity); + int iter = 0; + double prevC = 0; + do { + int maxIter = 100; + prevC = currentC; + currentC = calculateCd(beta, currentReD, ptFlowPar->dPipeD, ptFlowPar->dPtmode); + double Qf = (currentC * ptFlowPar->dDExpCoefficient * M_PI * pow(d, 2) / 4) + * sqrt(2 * deltaP / (ptNGPar->dRhof * (1 - pow(beta, 4)))); + ptFlowPar->dVFlowf = Qf; + currentReD = calculateReD(Qf, D, ptNGPar->dRhof, ptFlowPar->dDViscosity); + iter++; + if (iter > maxIter) { + fprintf(stderr, "\n"); + } + } while (fabs(currentC - prevC) / currentC > tolerance); + + double K = calculateK(ptFlowPar->dPipeType); + double G_me = calculateRoughnessFactor(ptFlowPar->dPipeD, K, currentC); + double C_corrected = currentC * G_me; + + ptFlowPar->dCd = C_corrected; + ptFlowPar->dRoughNessPipe = G_me; + ptFlowPar->dRnPipe = currentReD; + double Qn = ptFlowPar->dVFlowf * (ptFlowPar->dFpv * ptFlowPar->dFpv * P1 / ptFlowPar->dPb_M) + * (ptFlowPar->dTb_M) / Tf; + ptFlowPar->dVFlowb = Qn; + ptFlowPar->dMFlowb = ptFlowPar->dVFlowb * ptNGPar->dRhob; + ptFlowPar->dEFlowb = ptFlowPar->dVFlowb * ptNGPar->dHhvMol * ptFlowPar->dPb_M * 1e-6 / RGASKJ / ptFlowPar->dTb_M; + ptFlowPar->dVelocityFlow = ptFlowPar->dVFlowf / (M_PI * pow((ptFlowPar->dPipeD / 2000), 2)); +} + + +double CaiLiaoPzxs(const int tempCaiLiao) { + double CaiLiaoPzxs = 0; + switch (tempCaiLiao) { + case 0: + CaiLiaoPzxs = 11.75; + break; + + case 1: + CaiLiaoPzxs = 11.6; + break; + + case 2: + CaiLiaoPzxs = 11.16; + break; + + case 3: + CaiLiaoPzxs = 11.59; + break; + + case 4: + CaiLiaoPzxs = 10.5; + break; + + case 5: + CaiLiaoPzxs = 10.0; + break; + + case 6: + CaiLiaoPzxs = 10.2; + break; + + case 7: + CaiLiaoPzxs = 15.5; + break; + + case 8: + CaiLiaoPzxs = 11.5; + break; + + case 9: + CaiLiaoPzxs = 10.8; + break; + + case 10: + CaiLiaoPzxs = 16.6; + break; + + case 11: + CaiLiaoPzxs = 11.4; + break; + + case 12: + CaiLiaoPzxs = 16.55; + break; + + case 13: + CaiLiaoPzxs = 17.8; + break; + + case 14: + CaiLiaoPzxs = 17.2; + break; + default: ; + } + return CaiLiaoPzxs; +} + + +double calculateK(int dPipeType) { + double Jdccd; + switch (dPipeType) { + case 0: + Jdccd = 0.029; + break; + case 1: + case 2: + case 3: + Jdccd = 0.075; + break; + case 4: + Jdccd = 0.1; + break; + case 5: + Jdccd = 0.15; + break; + case 6: + Jdccd = 1; + break; + case 7: + Jdccd = 2.1; + break; + case 8: + Jdccd = 0.04; + break; + case 9: + Jdccd = 0.15; + break; + case 10: + Jdccd = 0.13; + break; + case 11: + Jdccd = 0.25; + break; + default: + + fprintf(stderr, "δ֪Ĺܵ: %d\n", dPipeType); + return FLOW_CALC_ERROR; + } + return Jdccd; +} + + +double calculateRoughnessFactor(double D_pipe, double K, double C) { + double K_over_D = K / D_pipe; + + + if (K_over_D <= 0.0004) { + return 1.0000; + } + + + double term = (K_over_D * 1e6) - 400; + if (term < 0) { + fprintf( + stderr, + "K/D <20><>ʽ÷Χ\n"); + return FLOW_CALC_ERROR; + } + + double G_me = 1 + (0.011 / C) * sqrt(term); + return G_me; +} + + +double calculateE(double beta) { + return 1 / sqrt(1 - pow(beta, 4)); +} + + +double calculateFG(double dRD_Real) { + return 1 / sqrt(dRD_Real); +} + + +double calculateFT(double dTb_M, double dTf) { + return sqrt(dTb_M / dTf); +} + + +double calculateEpsilon(double dPf, double dDp, double beta, double dKappa) { + double tau = (dPf - dDp) / dPf; + double epsilon = 1 - (0.351 + 0.256 * pow(beta, 4) + 0.93 * pow(beta, 8)) * (1 - pow(tau, 1 / dKappa)); + return epsilon; +} + + +double calculateKappa(double dZf) { + double gamma = 1.3; + double Z = dZf; + + + double kappa = gamma / (1 - (gamma - 1) * (1 / Z - 1)); + return kappa; +} + + +double calculateReD(double Qf, double D, double rho, double mu) { + return (4 * Qf * rho * 1000) / (M_PI * D * mu); +} + + +double calculateCd(double beta, double ReD, double D_mm, int ptMode) { + double L1, L2; + + switch (ptMode) { + case 1: + L1 = L2 = 0; + break; + case 0: + L1 = L2 = 25.4 / D_mm; + break; + case 2: + L1 = 1.0; + L2 = 0.47; + break; + default: + fprintf(stderr, "ֵ֧ȡѹʽ: %d\n", ptMode); + return FLOW_CALC_ERROR; + } + + double term1 = 0.5961 + 0.0261 * pow(beta, 2) - 0.216 * pow(beta, 8); + double term2 = 0.000521 * pow(1e6 * beta / ReD, 0.7); + double A = pow(19000 * beta / ReD, 0.8); + double term3 = (0.0188 + 0.0063 * A) * pow(beta, 3.5) * pow(1e6 / ReD, 0.3); + double term4 = (0.043 + 0.08 * exp(-10 * L1) - 0.123 * exp(-7 * L1)) + * (1 - 0.11 * A) * pow(beta, 4) / (1 - pow(beta, 4)); + double term5 = -0.031 * (2 * L2 / (1 - beta) - 0.8 * pow(2 * L2 / (1 - beta), 1.1)) + * pow(beta, 1.3); + + double Cd = term1 + term2 + term3 + term4 + term5; + + + if (D_mm < 71.12) { + Cd += 0.011 * (0.75 - beta) * (2.8 - D_mm / 25.4); + } + return Cd; +} + + +double Dlndjs(double tempP_jy, double tempT) { + double Dlndjs_Dlnd_Data[8][11] = { + {976, 991, 1014, 1044, 1073, 1114, 1156, 1207, 1261, 1331, 1405}, + {1027, 1040, 1063, 1091, 1118, 1151, 1185, 1230, 1276, 1331, 1389}, + {1071, 1082, 1106, 1127, 1149, 1180, 1211, 1250, 1289, 1335, 1383}, + {1123, 1135, 1153, 1174, 1195, 1224, 1253, 1289, 1324, 1366, 1409}, + {1167, 1178, 1196, 1216, 1236, 1261, 1287, 1318, 1350, 1385, 1421}, + {1213, 1224, 1239, 1257, 1275, 1297, 1320, 1346, 1373, 1403, 1435}, + {1260, 1270, 1281, 1297, 1313, 1333, 1352, 1374, 1396, 1424, 1451}, + {1303, 1312, 1323, 1338, 1352, 1372, 1391, 1412, 1432, 1456, 1482} + }; + + double Dlndjs_Dlnd_T[8] = { + -15 + 273.15, 0 + 273.15, 15 + 273.15, 30 + 273.15, + 45 + 273.15, 60 + 273.15, 75 + 273.15, 90 + 273.15 + }; + + double Dlndjs_Dlnd_P[11] = {0.1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + + double ky, kx; + int i, m = 0, n = 0; + + if (tempT < Dlndjs_Dlnd_T[0]) { + tempT = Dlndjs_Dlnd_T[0]; + } + if (tempT > Dlndjs_Dlnd_T[7]) { + tempT = Dlndjs_Dlnd_T[7]; + } + if (tempP_jy < Dlndjs_Dlnd_P[0]) { + tempP_jy = Dlndjs_Dlnd_P[0]; + } + if (tempP_jy > Dlndjs_Dlnd_P[10]) { + tempP_jy = Dlndjs_Dlnd_P[10]; + } + + for (i = 0; i <= 6; i++) { + if (tempT >= Dlndjs_Dlnd_T[i] && tempT <= Dlndjs_Dlnd_T[i + 1]) { + m = i; + break; + } + } + + for (i = 0; i <= 9; i++) { + if (tempP_jy >= Dlndjs_Dlnd_P[i] && tempP_jy <= Dlndjs_Dlnd_P[i + 1]) { + n = i; + break; + } + } + + if (Dlndjs_Dlnd_P[n + 1] - Dlndjs_Dlnd_P[n] != 0) { + ky = (tempP_jy - Dlndjs_Dlnd_P[n]) / (Dlndjs_Dlnd_P[n + 1] - Dlndjs_Dlnd_P[n]); + } else { + ky = 0; + } + + if (Dlndjs_Dlnd_T[m + 1] - Dlndjs_Dlnd_T[m] != 0) { + kx = (tempT - Dlndjs_Dlnd_T[m]) / (Dlndjs_Dlnd_T[m + 1] - Dlndjs_Dlnd_T[m]); + } else { + kx = 0; + } + + double s1 = Dlndjs_Dlnd_Data[m][n] + (Dlndjs_Dlnd_Data[m][n + 1] - Dlndjs_Dlnd_Data[m][n]) * ky; + double s2 = Dlndjs_Dlnd_Data[m + 1][n] + (Dlndjs_Dlnd_Data[m + 1][n + 1] - Dlndjs_Dlnd_Data[m + 1][n]) * ky; + return (s1 + (s2 - s1) * kx) / 100000.0; +} + +// 压力损失计算 +double YaLiSunShi(double tempLiuChuXiShu, double tempZjb, double tempDp, int JieLiuZhuangZhi) { + double ylss = 0; + switch (JieLiuZhuangZhi) { + case 0: + case 1: + case 2: + ylss = tempDp * (sqrt(1 - tempZjb) - tempLiuChuXiShu * pow(tempZjb, 2)) + / (sqrt(1 - tempZjb) + tempLiuChuXiShu * pow(tempZjb, 2)); + break; + default: ; + } + return ylss; +} + + +// 标况转工况流量转换 +double FlowConvert_BaseToWork(double Pf, double Tf, double Zb, double Zf, double FlowBase, int Cbtj) { + double tempPn = 0; + double tempTn = 0; + + + switch (Cbtj) { + case 2: + tempPn = 101325; + tempTn = 273.15; + break; + case 1: + tempPn = 101325; + tempTn = 288.15; + break; + case 0: + tempPn = 101325; + tempTn = 293.15; + break; + case 3: + tempPn = 10155981; + tempTn = 288.7055555; + break; + default: ; + } + return FlowBase * tempPn * Tf * Zf / Pf / tempTn / Zb; +} + +// 工况转标况流量转换 +double FlowConvert_WorkToBase(double Pf, double Tf, double Zb, double Zf, double FlowWork, int Cbtj) { + double tempPn = 0; + double tempTn = 0; + + switch (Cbtj) { + case 2: + tempPn = 101325; + tempTn = 273.15; + break; + case 1: + tempPn = 101325; + tempTn = 288.15; + break; + case 0: + tempPn = 101325; + tempTn = 293.15; + break; + case 3: + tempPn = 10155981; + tempTn = 288.7055555; + break; + default: ; + } + return FlowWork * Pf * tempTn * Zb / tempPn / Tf / Zf; +} diff --git a/FlowCal.h b/FlowCal.h new file mode 100644 index 0000000..23cf7ea --- /dev/null +++ b/FlowCal.h @@ -0,0 +1,87 @@ +#ifndef FLOWCAL_H +#define FLOWCAL_H +#include "NGCal.h" +typedef struct FlowParSTRUCT { + + + int dCbtj; + double dPb_M; + double dTb_M; + double dPb_E; + double dTb_E; + double dPatm; + double dNG_Compents[21]; + + int dMeterType; + int dCoreType; + int dPtmode; + int dPipeType; + double dPipeD; + int dPipeMaterial; + + double dOrificeD; + int dOrificeMaterial; + + double dPf; + int dPfType; + double dTf; + double dDp; + + double dMeterFactor; + double dPulseNum; + + + + double dE; + double dFG; + double dFT; + double dDViscosity; + double dDExpCoefficient; + double dRnPipe; + double dBk; + double dRoughNessPipe; + double dCd; + double dCdCorrect; + double dCdNozell; + double dVFlowb; + double dVFlowf; + double dMFlowb; + double dEFlowb; + double dVelocityFlow; + double dPressLost; + double dBeta; + double dKappa; + double dFpv; +} FlowParSTRUCT; + +double CaiLiaoPzxs(int tempCaiLiao); + +double calculateK(int dPipeType); + +double calculateRoughnessFactor(double D_pipe, double K, double C); + +void thermalExpansionCorrection(double dOrificeMaterial, double dOrificeD, + double dPipeMaterial, double dPipeD, + double dTf, double correctedValues[3]); + +double calculateE(double beta); + +double calculateFG(double dRD_Real); + +double calculateFT(double dTb_M, double dTf); + +double calculateEpsilon(double dPf, double dDp, double beta, double dKappa); + +double calculateKappa(double dZf); + +double calculateReD(double Qf, double D, double rho, double mu); + +double calculateCd(double beta, double ReD, double D_mm, int ptMode); + + +double Dlndjs(double tempP_jy, double tempT); + +void OFlowCal(FlowParSTRUCT *ptFlowPar, NGParSTRUCT *ptNGPar); + +#endif + diff --git a/FlowCal.o b/FlowCal.o new file mode 100644 index 0000000000000000000000000000000000000000..4833774b06ec09a20dd127db2d56438c4c845f40 GIT binary patch literal 46535 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

-PFQKm1E;b&+*_5foS*MOI^xwd%qF z80d)(dam*mS>+2L=qoCi>q%Q1FY#RJAj=gOz}`)Tr{ImgpI$Md;TtG;O6t)8QMkzV=#D$i;^VQ`A0v@9Xj8$)2ctu9o|te@?7Zez$Jd>k64IKKisW& ztV6lNl1Z-TFbUy!z#2O+T1RSHFd<>CfcS)ejXb`nVwT z&lFPp>Q{*s-Oi({-yl}>+w$n@w}lnm%Ck@X?60QR<=Uryv{%z_$)&4b-c|I1BNj81 zkn#9aKUAye(GM4V$hE^=kS=&G^!K6XIk%Lr)sM6)UhA{DajD-*)%1VNrK?{j&8Hhi zDJ&_&XMxd&?f3`F_el+X z5s=8$f6};PfJ7esOjFOBr}$QCXcr)1%RWFt;osmjLw9TF0YD;-eH!;AjeAMsUemY}8uzw_Xiy=nzW|WXSEg|*G}NS_4h`L+ zp)UfunDh4=8uxb^`o4xT8hS%RZ)?cBP}y>xhAsyrG{07)s8tJeX$K^%Zv`Z*@7L5( zP2Hxc)z85j{Hv0H$7`hd`xPZQ^p)D?j zOF^Naendmx10?)Hy{UkHrlH5sM+w|}?wNbq)QSrdH2W5)WzUEe*Yn)>i0Sh&nBx$2GJbbxYuoNFGPebs&+o*AOY20>=dsyQRXxvj8H>q(aH117}^T2DumU-HLG2=Mnod}!vD#XNuz z&DFA)hk&8kSr+pJU}!#;#XJKH&A_sl?*Kz{t}KS?GR?BGnAd@!c~utkYhY+5mBkby zEi`w^Vip2Jvn7GC!$Tvzw~g`qD9f`5JTwc+V#BsD!j#OcWQsr?Y)n@_3l%-rIy15ODl`Lh_(^ zK+m^evqU&}4oDP=2Y7-GN*4Tz^ tT^}DybSBp(Q@7{h3DcP*s`9`e*|Xv&OX%HegU*eQ+1a;Q5tb)8|1V2Zr)2;D literal 0 HcmV?d00001 diff --git a/Makefile.win b/Makefile.win new file mode 100644 index 0000000..2521aa4 --- /dev/null +++ b/Makefile.win @@ -0,0 +1,42 @@ +# Project: NGTools +# Makefile created by Dev-C++ 5.11 + +CPP = g++.exe -D__DEBUG__ +CC = gcc.exe -D__DEBUG__ +WINDRES = windres.exe +OBJ = dllmain.o Detail.o FlowCal.o NGCal.o Therm.o +LINKOBJ = dllmain.o Detail.o FlowCal.o NGCal.o Therm.o +LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib32" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32" -static-libgcc -m32 -g3 +INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" +CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" +BIN = NGTools.dll +CXXFLAGS = $(CXXINCS) -m32 -g3 -DBUILDING_DLL=1 +CFLAGS = $(INCS) -m32 -g3 -DBUILDING_DLL=1 +RM = rm.exe -f +DEF = libNGTools.def +STATIC = libNGTools.a + +.PHONY: all all-before all-after clean clean-custom + +all: all-before $(BIN) all-after + +clean: clean-custom + ${RM} $(OBJ) $(BIN) $(DEF) $(STATIC) + +$(BIN): $(LINKOBJ) + $(CC) -shared $(LINKOBJ) -o $(BIN) $(LIBS) -Wl,--output-def,$(DEF),--out-implib,$(STATIC),--add-stdcall-alias + +dllmain.o: dllmain.c + $(CC) -c dllmain.c -o dllmain.o $(CFLAGS) + +Detail.o: Detail.c + $(CC) -c Detail.c -o Detail.o $(CFLAGS) + +FlowCal.o: FlowCal.c + $(CC) -c FlowCal.c -o FlowCal.o $(CFLAGS) + +NGCal.o: NGCal.c + $(CC) -c NGCal.c -o NGCal.o $(CFLAGS) + +Therm.o: Therm.c + $(CC) -c Therm.c -o Therm.o $(CFLAGS) diff --git a/NGCal.c b/NGCal.c new file mode 100644 index 0000000..d7eca79 --- /dev/null +++ b/NGCal.c @@ -0,0 +1,87 @@ +#include "NGCal.h" +#include "Therm.h" +#include "Detail.h" +#include "math.h" +static Therm *ptTherm; +static Detail *ptDetail; + +int NGCal_Init(NGParSTRUCT *ptNGPar) { + + ptDetail = Detail_Construct(); + if (NULL == ptDetail) { + return MEMORY_ALLOCATION_ERROR; + } + + + ptTherm = (Therm *) malloc(sizeof(Therm)); + Therm_Init(ptTherm); + if (NULL == ptTherm) { + return MEMORY_ALLOCATION_ERROR; + } + + return NGCal_NGCal; +} + +int NGCal_UnInit(void) { + if (ptDetail) free(ptDetail); + if (ptTherm) free(ptTherm); + return 0; +} + +double SOS(NGParSTRUCT *ptNGPar) { + if (NULL == ptDetail || NULL == ptTherm) { + NGCal_UnInit(); + NGCal_Init(ptNGPar); + } + Therm_Run(ptTherm, ptNGPar, ptDetail); + ptNGPar->dCstar = 0.0; + return ptNGPar->dSOS; +} + +double Crit(NGParSTRUCT *ptNGPar, double dPlenumVelocity) { + if (NULL == ptDetail || NULL == ptTherm) { + NGCal_UnInit(); + if (NGCal_NGCal != NGCal_Init(ptNGPar)) { + ptNGPar->lStatus = MEMORY_ALLOCATION_ERROR; + return 0.0; + } + } + + + Therm_Run(ptTherm, ptNGPar, ptDetail); + + double DH = (ptNGPar->dSOS * ptNGPar->dSOS - dPlenumVelocity * dPlenumVelocity) / 2.0; + double S = ptNGPar->dS; + double H = ptNGPar->dH; + double R = ptNGPar->dRhof; + double P = ptNGPar->dPf; + double Z = ptNGPar->dZf; + double T = ptNGPar->dTf; + // DDH = 10.0; + int i=0; + for ( i = 1; i < MAX_NUM_OF_ITERATIONS; i++) { + double tolerance = 1.0; + Therm_HS_Mode(ptTherm, ptNGPar, ptDetail, H - DH, S, 1); + Therm_Run(ptTherm, ptNGPar, ptDetail); + double DDH = DH; + DH = (ptNGPar->dSOS * ptNGPar->dSOS - dPlenumVelocity * dPlenumVelocity) / 2.0; + if (fabs(DDH - DH) < tolerance) break; + } + ptNGPar->dCstar = (ptNGPar->dRhof * ptNGPar->dSOS) / sqrt(R * P * Z); + ptNGPar->dPf = P; + ptNGPar->dTf = T; + Therm_Run(ptTherm, ptNGPar, ptDetail); + Detail_dhvMol(ptDetail,ptNGPar); + return ptNGPar->dCstar; +} + +double Cperf(const NGParSTRUCT *ptNGPar) { + double k = ptNGPar->dKappa; + double root = 2.0 / (k + 1.0); + double exponent = (k + 1.0) / (k - 1.0); + return (sqrt(k * pow(root, exponent))); +} + +double CRi(const NGParSTRUCT *ptNGPar) { + return (Cperf(ptNGPar) / sqrt(ptNGPar->dZf)); +} diff --git a/NGCal.h b/NGCal.h new file mode 100644 index 0000000..bfa0869 --- /dev/null +++ b/NGCal.h @@ -0,0 +1,80 @@ +/************************************************************************* +* �ļ�: NGCal.h +**************************************************************************/ +#ifndef _NGCal_H +#define _NGCal_H +#include +#include +#define NORMAL 9000 +#define NGCal_NGCal 9001 +#define MEMORY_ALLOCATION_ERROR 9002 +#define GENERAL_CALCULATION_FAILURE 9003 +#define MAX_NUM_OF_ITERATIONS_EXCEEDED 9004 +#define NEGATIVE_DENSITY_DERIVATIVE 9005 +#define MAX_DENSITY_IN_BRAKET_EXCEEDED 9006 +#define FLOW_CALC_ERROR 9007 +#define FLOW_CALC_DIEDAI_ERROR 9008 +#define NUMBEROFCOMPONENTS 21 +#define M_PI 3.1415926535897932 +#define MAX_NUM_OF_ITERATIONS 100 +#define P_CHG_TOL 0.001 +#define T_CHG_TOL 0.001 +#define P_MAX 1.379e8 +#define P_MIN 0.0 +#define T_MAX 473.15 +#define T_MIN 143.0 +#define RGASKJ 8.314510e-3 +#define RGAS 8.314510 +typedef struct tagNGParSTRUCT +{ + long lStatus; + int bForceUpdate; + double adMixture[21]; + int dCbtj; + double dPb; + double dTb; + double dPf; + double dTf; + double dMrx; + double dZb; + double dZf; + double dFpv; + double dDb; + double dDf; + double dRhob; + double dRhof; + double dRD_Ideal; + double dRD_Real; + double dHo; + double dH; + double dS; + double dCpi; + double dCp; + double dCv; + double dk; + double dKappa; + double dSOS; + double dCstar; + double dHhvMol; + double dLhvMol; +} NGParSTRUCT; + + +enum gascomp { + XiC1=0, XiN2, XiCO2, XiC2, XiC3, + XiH2O, XiH2S, XiH2, XiCO, XiO2, + XiIC4, XiNC4, XiIC5, XiNC5, XiNC6, + XiNC7, XiNC8, XiNC9, XiNC10, XiHe, XiAr +}; + + + int NGCal_Init(NGParSTRUCT * ptNGPar); + int NGCal_UnInit(void); + + + double SOS(NGParSTRUCT *); + + + double Crit(NGParSTRUCT *, double); + +#endif diff --git a/NGCal.o b/NGCal.o new file mode 100644 index 0000000000000000000000000000000000000000..7af68dde77c7671f4ac9a14c258f27c4eb1ac252 GIT binary patch literal 34513 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

FSF4_=viaM$qC_tMJ+2bdhD{N_^0s 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