2025-07-06 07:50:36 +00:00
|
|
|
|
/*************************************************************************
|
2025-07-06 14:29:58 +00:00
|
|
|
|
* <EFBFBD>ļ<EFBFBD>: NGCal.h
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifndef _NGCal_H
|
|
|
|
|
#define _NGCal_H
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
#include <math.h>
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* ״̬<D7B4><CCAC> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
#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
|
|
|
|
|
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
#define NUMBEROFCOMPONENTS 21
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
#define M_PI 3.14159265897932
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
#define MAX_NUM_OF_ITERATIONS 100
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* Ĭ<><C4AC><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
#define P_CHG_TOL 0.001 /* 0.001 Pa */
|
2025-07-06 14:29:58 +00:00
|
|
|
|
#define T_CHG_TOL 0.001 /* 0.001 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><50>T */
|
|
|
|
|
#define P_MAX 1.379e8 /* <20><><EFBFBD>ѹ<EFBFBD><D1B9>(Pa) ~= 20,000 psi */
|
|
|
|
|
#define P_MIN 0.0 /* <20><>Сѹ<D0A1><D1B9> = 0 */
|
|
|
|
|
#define T_MAX 473.15 /* <20><><EFBFBD><EFBFBD>¶<EFBFBD>(K) ~= 392 F */
|
|
|
|
|
#define T_MIN 143.0 /* <20><><EFBFBD><EFBFBD>¶<EFBFBD>(K) ~= -200 F */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>峣<EFBFBD><E5B3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
#define RGASKJ 8.314510e-3 /* <20><>λ: kJ mol^-1 K^-1 */
|
|
|
|
|
#define RGAS 8.314510 /* <20><>λ: J mol^-1 K^-1 */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
typedef struct tagNGParSTRUCT
|
|
|
|
|
{
|
2025-07-06 14:29:58 +00:00
|
|
|
|
long lStatus; /* <20><><EFBFBD><EFBFBD>״̬ */
|
|
|
|
|
int bForceUpdate; /* ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> */
|
|
|
|
|
double adMixture[21]; /* Ħ<><C4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
int dCbtj; /* <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD> 0 101.325MPa 20<32>棻1:101325MPa<50><61>15<31>棻2:101325MPa<50><61>0<EFBFBD><30> */
|
|
|
|
|
double dPb; /* <20><>ͬ<EFBFBD><CDAC>ѹ<D7BC><D1B9>(Pa) */
|
|
|
|
|
double dTb; /* <20><>ͬ<EFBFBD><CDAC><EFBFBD>¶<EFBFBD>(K) */
|
|
|
|
|
double dPf; /* <20><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>(Pa) */
|
|
|
|
|
double dTf; /* <20><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>(K) */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* AGA 8 Detail<69><6C><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
double dMrx; /* <20><><EFBFBD><EFBFBD><EFBFBD>Ħ<EFBFBD><C4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
double dZb; /* <20><>ͬ<EFBFBD><CDAC><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ѹ<EFBFBD><D1B9>ϵ<EFBFBD><CFB5> */
|
|
|
|
|
double dZf; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ѹ<EFBFBD><D1B9>ϵ<EFBFBD><CFB5> */
|
|
|
|
|
double dFpv; /* <20><>ѹ<EFBFBD><D1B9>ϵ<EFBFBD><CFB5> */
|
|
|
|
|
double dDb; /* <20><>ͬ<EFBFBD><CDAC><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ħ<EFBFBD><C4A6><EFBFBD>ܶ<EFBFBD>(moles/dm3) */
|
|
|
|
|
double dDf; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ħ<EFBFBD><C4A6><EFBFBD>ܶ<EFBFBD>(moles/dm3) */
|
|
|
|
|
double dRhob; /* <20><>ͬ<EFBFBD><CDAC><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>(kg/m3) */
|
|
|
|
|
double dRhof; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>(kg/m3) */
|
|
|
|
|
double dRD_Ideal; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD> */
|
|
|
|
|
double dRD_Real; /* <20><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
double dHo; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
double dH; /* <20><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(J/kg) */
|
|
|
|
|
double dS; /* <20><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(J/kg-mol.K) */
|
|
|
|
|
double dCpi; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嶨ѹ<E5B6A8><D1B9><EFBFBD><EFBFBD>(J/kg-mol.K) */
|
|
|
|
|
double dCp; /* <20><>ʵ<EFBFBD><CAB5><EFBFBD>嶨ѹ<E5B6A8><D1B9><EFBFBD><EFBFBD>(J/kg-mol.K) */
|
|
|
|
|
double dCv; /* <20><>ʵ<EFBFBD><CAB5><EFBFBD>嶨<EFBFBD><E5B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(J/kg-mol.K) */
|
|
|
|
|
double dk; /* <20><><EFBFBD>ȱ<EFBFBD> */
|
|
|
|
|
double dKappa; /* <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ĸkappa<70><61>ʾ */
|
|
|
|
|
double dSOS; /* <20><><EFBFBD><EFBFBD>(m/s) */
|
|
|
|
|
double dCstar; /* <20>ٽ<EFBFBD><D9BD><EFBFBD>ϵ<EFBFBD><CFB5>C* */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/*11062 <20><><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
double dHhvMol; /*<2A><>λĦ<CEBB><C4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
double dLhvMol; /*<2A><>λĦ<CEBB><C4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} NGParSTRUCT;
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ö<EFBFBD><C3B6> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
enum gascomp {
|
|
|
|
|
XiC1=0, XiN2, XiCO2, XiC2, XiC3,
|
|
|
|
|
XiH2O, XiH2S, XiH2, XiCO, XiO2,
|
|
|
|
|
XiIC4, XiNC4, XiIC5, XiNC5, XiNC6,
|
|
|
|
|
XiNC7, XiNC8, XiNC9, XiNC10, XiHe, XiAr
|
|
|
|
|
};
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD> */
|
|
|
|
|
int NGCal_Init(NGParSTRUCT * ptNGPar); /* <20><>ʼ<EFBFBD><CABC> */
|
|
|
|
|
int NGCal_UnInit(void); /* <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* <20><><EFBFBD><EFBFBD>VOS<4F><53><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>ԭ<EFBFBD><D4AD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
double SOS(NGParSTRUCT *);
|
|
|
|
|
|
2025-07-06 14:29:58 +00:00
|
|
|
|
/* C*<2A><><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>ԭ<EFBFBD><D4AD> */
|
2025-07-06 07:50:36 +00:00
|
|
|
|
double Crit(NGParSTRUCT *, double);
|
|
|
|
|
|
|
|
|
|
#endif
|