You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/mAlg/mAlgPvt/gasCg.h

55 lines
1.3 KiB
C

#pragma once
#include "iAlgPvtBase.h"
#include "gasZg.h"
// 气体压缩系数
class M_PVT_EXPORT gasCg : public iAlgPvtBase
{
private:
enum PvtAlgMethod
{
PM_Dranchuk = 0
};
public:
gasCg();
// 绑定成员变量
virtual void bindMembers();
// 虚函数,计算函数
virtual bool cal(VecDouble vecIns, VecDouble& vecOuts);
public:
bool dranchuk(VecDouble vecP, VecDouble& vecCg);
private:
/// @brief 计算干气压缩系数 Cg
/// @param 输入p - 压力 (MPa)
/// @param T - 温度 (℃)
/// @param SG - 气体比重 (默认 0.7)
/// @out 输出cg - 压缩系数 (1/MPa)
/// 算法提供者xieh 20260518
double _dranchuk_novel_method(double p, double T, double SG = 0.7);
/// @brief Dranchuk 方法计算天然气压缩因子 Z
/// @param Pr
/// @param Tr
/// 算法提供者xieh 20260518
double _cal_zg_by_dranchuk_directly(double Pr, double Tr);
private:
double m_dTpr; //tpr,拟对比温度Tpr=T/Tc温度与临界温度的比值无量纲
double m_dT; // rt,油藏温度°C
double m_dTc; //tc,临界温度,不同的组分有不同的临界温度值,°C
double m_dRg; //rg,气体比重,该气体的密度与空气密度之比,无量纲,具体情况具体分析,0.55-0.8
};