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/mAlgDiffusion/iAlgDiffusionKkTwoPhase.h

47 lines
1.7 KiB
C

#pragma once
#include "iAlgDiffusionKK.h"
// 计算相渗 两相(油水、油气、气水)
class M_DIFFUSION_EXPORT iAlgDiffusionKkTwoPhase : public iAlgDiffusionKK
{
public:
iAlgDiffusionKkTwoPhase();
// 计算函数(调用算法)
virtual bool cal(VecDouble vecX, VecDouble& vecY1, VecDouble& vecY2);
virtual bool cal(double dIn, double& dOut1, double& dOut2);
virtual bool cal(VecDouble vecX, VecDouble& vecY);
virtual bool cal(double dIn, double& dOut);
/// @brief 根据dX/dY(左侧/右侧的第二个点),反算求解指数
/// @param dIndex求解的指数
/// @param dX,dY 点通常指的是鼠标移动后对应的数值点
/// @param bL(左侧还是右侧左侧为第一个右侧为第2个)
virtual bool inversCal(double& dIndex, double dX, double dY, bool bL);
protected:
// 把参数Map解析为成员变量
virtual bool parseParas2Members(QStringList& listTagParas, \
QStringList& listTagModels);
// 算法提供者:北科大 liuwc20241113
double _calKr1(double dX, KkModelMethod o);
double _calKr2(double dX, KkModelMethod o);
// 算法提供者:北科大 liuwc20241114
double _inversCalKr1(double dX, double dY, KkModelMethod o);
double _inversCalKr2(double dX, double dY, KkModelMethod o);
private:
double m_dS1; //参数:饱和度1比如束缚水饱和度
double m_dKr1; //参数:相对渗透率1比如最大油相相对渗透率
double m_dS2; //参数:饱和度2比如残余油饱和度
double m_dKr2; //参数:相对渗透率2比如最大水相相对渗透率
};