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.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "iAlgPvtBase.h"
|
|
|
|
|
|
|
|
|
|
|
|
// 气油比
|
|
|
|
|
|
class M_PVT_EXPORT triRs : public iAlgPvtBase
|
|
|
|
|
|
{
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
enum PvtAlgMethod
|
|
|
|
|
|
{
|
|
|
|
|
|
PM_Standing = 0,
|
|
|
|
|
|
PM_Laster,
|
|
|
|
|
|
PM_VasquezAndBeggs,
|
|
|
|
|
|
PM_GlasoVolatile,
|
|
|
|
|
|
PM_GlasoNoVolatile
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
triRs();
|
|
|
|
|
|
|
|
|
|
|
|
// 绑定成员变量
|
|
|
|
|
|
virtual void bindMembers();
|
|
|
|
|
|
|
|
|
|
|
|
// 虚函数,计算函数
|
|
|
|
|
|
virtual bool cal(VecDouble vecIns, VecDouble& vecOuts);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
bool laster(VecDouble vecIns, VecDouble& vecOuts);
|
|
|
|
|
|
bool standing(VecDouble vecP, VecDouble& vecRs);
|
|
|
|
|
|
bool vasquezAndBeggs(VecDouble vecP, VecDouble& vecRs);
|
|
|
|
|
|
bool glasoVolatile(VecDouble vecP, VecDouble& vecRs);
|
|
|
|
|
|
bool glasoNoVolatile(VecDouble vecP, VecDouble& vecRs);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
double m_dRo; //ro,油相比重,该油相的密度与4℃时纯水的密度之比,无量纲,具体情况具体分析,0.8-0.9
|
|
|
|
|
|
double m_dRg; //rg, 气体比重,该气体的密度与空气密度之比,无量纲,具体情况具体分析,0.55-0.8
|
|
|
|
|
|
double m_dyg; //yg, 混合物中气体摩尔分数,无量纲,没有默认值,甲烷0.85 其他比较小
|
|
|
|
|
|
//double m_dMo; // 油的视分子量,无量纲,100-150
|
|
|
|
|
|
double m_dT; //rt,油藏温度,°C
|
|
|
|
|
|
|
|
|
|
|
|
double m_dPsep; //Psep,分离器压力,MPa,0.79111
|
|
|
|
|
|
double m_dTsep; //tsep,分离器温度,20260602 统一调整为,摄氏度℃,15.5556 不再采用 F,60F
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|