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.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# 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
} ;