GasFlowMeter/User/NG 带注释/NGCal.h

115 lines
3.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*************************************************************************
* 文件: 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:101325MPa15℃2:101325MPa0℃ */
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