#pragma once #include "Defines.h" #include "mAlgDefines.h" #include "mAlgPVT_global.h" // 多相折算的算法实现类 class M_PVT_EXPORT zxMultiPhaseHelper { public: // map: pvt参数 // bMainOil油还是气为主相 zxMultiPhaseHelper(QMap& 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& 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; //水黏度 };