114 lines
4.6 KiB
C
114 lines
4.6 KiB
C
/*************************************************************************
|
||
* <20>ļ<EFBFBD>: NGCal.h
|
||
|
||
**************************************************************************/
|
||
|
||
#ifndef _NGCal_H
|
||
#define _NGCal_H
|
||
|
||
|
||
|
||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> */
|
||
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
|
||
#include <math.h>
|
||
|
||
/* ״̬<D7B4><CCAC> */
|
||
#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
|
||
|
||
|
||
/* <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||
#define NUMBEROFCOMPONENTS 21
|
||
|
||
#define M_PI 3.14159265897932
|
||
|
||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD> */
|
||
#define MAX_NUM_OF_ITERATIONS 100
|
||
|
||
/* Ĭ<><C4AC><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD> */
|
||
#define P_CHG_TOL 0.001 /* 0.001 Pa */
|
||
#define T_CHG_TOL 0.001 /* 0.001 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||
|
||
/* <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 */
|
||
|
||
/* ͨ<><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 */
|
||
|
||
/* <20><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ */
|
||
typedef struct tagNGParSTRUCT
|
||
{
|
||
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) */
|
||
|
||
/* 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> */
|
||
|
||
/* <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* */
|
||
|
||
/*11062 <20><><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||
|
||
double dHhvMol; /*<2A><>λĦ<CEBB><C4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||
double dLhvMol; /*<2A><>λĦ<CEBB><C4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||
|
||
|
||
} NGParSTRUCT;
|
||
|
||
/* <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ö<EFBFBD><C3B6> */
|
||
enum gascomp {
|
||
XiC1=0, XiN2, XiCO2, XiC2, XiC3,
|
||
XiH2O, XiH2S, XiH2, XiCO, XiO2,
|
||
XiIC4, XiNC4, XiIC5, XiNC5, XiNC6,
|
||
XiNC7, XiNC8, XiNC9, XiNC10, XiHe, XiAr
|
||
};
|
||
|
||
/* <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> */
|
||
|
||
/* <20><><EFBFBD><EFBFBD>VOS<4F><53><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>ԭ<EFBFBD><D4AD> */
|
||
double SOS(NGParSTRUCT *);
|
||
|
||
/* C*<2A><><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>ԭ<EFBFBD><D4AD> */
|
||
double Crit(NGParSTRUCT *, double);
|
||
|
||
#endif
|