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/zxMultiPhaseHelper.h

45 lines
1.5 KiB
C

#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; //水黏度
};