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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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比如最大水相相对渗透率
};