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 "Defines.h"
|
|
|
|
|
|
#include "mAlgDefines.h"
|
|
|
|
|
|
#include "mAlgPVT_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
// 多相折算的算法实现类
|
|
|
|
|
|
class M_PVT_EXPORT zxMultiPhaseHelper
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
// map: pvt参数
|
|
|
|
|
|
// bMainOil油还是气为主相
|
|
|
|
|
|
zxMultiPhaseHelper(QMap<QString, double>& map, \
|
|
|
|
|
|
PvtFluidType pft, bool bMainOil);
|
|
|
|
|
|
|
|
|
|
|
|
/// @brief 多相折算的计算函数
|
|
|
|
|
|
/// @param dOil/dGas/dWater流量油气水,单位全部为:m3/d
|
|
|
|
|
|
/// @param dResult 折算结果,单位为:m3/d
|
|
|
|
|
|
bool calMpValue(double dOil, double dGas, double dWater, \
|
|
|
|
|
|
double& dResult);
|
|
|
|
|
|
|
|
|
|
|
|
/// @brief 多相 最后 反算渗透率
|
|
|
|
|
|
/// @param dOil/dGas/dWater流动段最后一段的流量数据,单位全部为:m3/d
|
|
|
|
|
|
/// @param dQt计算后的total Q(其实就是calMpValue多相折算后的结果)
|
|
|
|
|
|
/// @param dMKut计算后的total MKu 流度
|
|
|
|
|
|
/// @param mapResults反算的结果,油/气/水相渗透率,键值分别为 Ko/Kg/Kw
|
|
|
|
|
|
bool reverseKoKg(double dOil, double dGas, double dWater, \
|
|
|
|
|
|
double dQt, double dMKut, \
|
|
|
|
|
|
QMap<QString, double>& mapResults);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
PvtFluidType m_oPft;
|
|
|
|
|
|
bool m_bMainOil; //true油为主相 false气为主相
|
|
|
|
|
|
|
|
|
|
|
|
double m_dBo; //油体积系数
|
|
|
|
|
|
double m_dRs; //气油比
|
|
|
|
|
|
double m_dMiuo; //油相黏度
|
|
|
|
|
|
double m_dBg; //气体积系数
|
|
|
|
|
|
double m_dMiug; //气黏度
|
|
|
|
|
|
double m_dBw; //水体积系数
|
|
|
|
|
|
double m_dRsw; //气水比
|
|
|
|
|
|
double m_dMiuw; //水黏度
|
|
|
|
|
|
};
|