#pragma once #include "iAlgPvtBase.h" class M_PVT_EXPORT gasCritical : public iAlgPvtBase { private: enum PvtAlgMethod { PM_Standing = 0, PM_Carr, PM_Sutton, PM_WichertAziz, PM_HTHP, PM_CarKobayshiBurrows }; public: gasCritical(); // 绑定成员变量 virtual void bindMembers(); // 虚函数,计算函数 virtual bool cal(double& dIn, double& dOut); public: bool carr(double& dTc, double& dPc); bool standing(double& dTc, double& dPc); bool sutton(double& dTc, double& dPc, bool bAdjust = true); // 20210914 bool wichertAziz(double& dTc, double& dPc); bool HTHP(double& dTc, double& dPc); bool carKobayshiBurrows(double& dTc, double& dPc); bool adjustByA(double A, double& dTc, double& dPc); bool convertByWA(double& dTc, double& dPc); bool adjustPc(double& dPc); private: double m_dRg; //rg,气体比重,该气体的密度与空气密度之比,无量纲,具体情况具体分析,0.55-0.8 double m_dCO2; //yCO2,天然气中含二氧化碳CO2的摩尔分数,无量纲 double m_dN2; //yN2,天然气中含氮气N2的摩尔分数,无量纲 double m_dH2S; //yH2S,天然气中含硫化氢H2S的摩尔分数,无量纲 };