115 lines
3.7 KiB
C
115 lines
3.7 KiB
C
/*************************************************************************
|
||
* 文件: aga10.h
|
||
* 描述: aga10.c的函数原型和定义
|
||
* 版本: ver 1.7 2002.11.17
|
||
* 作者: W.B. Peterson
|
||
* 修订:
|
||
* 版权 (c) 2002 美国天然气协会
|
||
**************************************************************************/
|
||
|
||
#ifndef _AGA10_H
|
||
#define _AGA10_H
|
||
|
||
|
||
|
||
/* 其他包含文件 */
|
||
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
|
||
#include <math.h>
|
||
|
||
/* 状态码 */
|
||
#define NORMAL 9000
|
||
#define AGA10_INITIALIZED 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 NUMBEROFCOMPONENTS 21
|
||
|
||
/* 搜索例程中的最大尝试次数 */
|
||
#define MAX_NUM_OF_ITERATIONS 100
|
||
|
||
/* 默认容差限制 */
|
||
#define P_CHG_TOL 0.001 /* 0.001 Pa */
|
||
#define T_CHG_TOL 0.001 /* 0.001 开尔文 */
|
||
|
||
/* 最大允许P和T */
|
||
#define P_MAX 1.379e8 /* 最大压力(Pa) ~= 20,000 psi */
|
||
#define P_MIN 0.0 /* 最小压力 = 0 */
|
||
#define T_MAX 473.15 /* 最高温度(K) ~= 392 F */
|
||
#define T_MIN 143.0 /* 最低温度(K) ~= -200 F */
|
||
|
||
/* 通用气体常数,两种配置 */
|
||
#define RGASKJ 8.314510e-3 /* 单位: kJ mol^-1 K^-1 */
|
||
#define RGAS 8.314510 /* 单位: J mol^-1 K^-1 */
|
||
|
||
/* 本库使用的主要数据结构 */
|
||
typedef struct tagAGA10STRUCT
|
||
{
|
||
long lStatus; /* 计算状态 */
|
||
int bForceUpdate; /* 执行完整计算的信号 */
|
||
double adMixture[NUMBEROFCOMPONENTS]; /* 摩尔分数组成 */
|
||
int dCbtj; /* 参比条件 0 101.325MPa 20℃;1:101325MPa,15℃;2:101325MPa,0℃ */
|
||
double dPb; /* 合同基准压力(Pa) */
|
||
double dTb; /* 合同基准温度(K) */
|
||
double dPf; /* 绝对压力(Pa) */
|
||
double dTf; /* 流动温度(K) */
|
||
|
||
/* AGA 8 Detail方法的基本输出 */
|
||
double dMrx; /* 混合物摩尔质量 */
|
||
double dZb; /* 合同基准条件下的压缩系数 */
|
||
double dZf; /* 流动条件下的压缩系数 */
|
||
double dFpv; /* 超压缩系数 */
|
||
double dDb; /* 合同基准条件下的摩尔密度(moles/dm3) */
|
||
double dDf; /* 流动条件下的摩尔密度(moles/dm3) */
|
||
double dRhob; /* 合同基准条件下的质量密度(kg/m3) */
|
||
double dRhof; /* 流动条件下的质量密度(kg/m3) */
|
||
double dRD_Ideal; /* 理想气体相对密度 */
|
||
double dRD_Real; /* 真实气体相对密度 */
|
||
|
||
/* 附加输出 */
|
||
double dHo; /* 理想气体比焓 */
|
||
double dH; /* 真实气体比焓(J/kg) */
|
||
double dS; /* 真实气体比熵(J/kg-mol.K) */
|
||
double dCpi; /* 理想气体定压热容(J/kg-mol.K) */
|
||
double dCp; /* 真实气体定压热容(J/kg-mol.K) */
|
||
double dCv; /* 真实气体定容热容(J/kg-mol.K) */
|
||
double dk; /* 比热比 */
|
||
double dKappa; /* 等熵指数,用希腊字母kappa表示 */
|
||
double dSOS; /* 声速(m/s) */
|
||
double dCstar; /* 临界流系数C* */
|
||
|
||
/*11062 计算高位发热量和低位发热量*/
|
||
|
||
double dHhvMol; /*高位摩尔发热量*/
|
||
double dLhvMol; /*低位摩尔发热量*/
|
||
|
||
|
||
} AGA10STRUCT;
|
||
|
||
/* 用于跟踪气体组分的枚举 */
|
||
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 AGA10_Init(void); /* 初始化库 */
|
||
int AGA10_UnInit(void); /* 反初始化库 */
|
||
|
||
/* 基本VOS计算的函数原型 */
|
||
double SOS(AGA10STRUCT *);
|
||
|
||
/* C*计算的函数原型 */
|
||
double Crit(AGA10STRUCT *, double);
|
||
|
||
#endif
|