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/mAlgDefines/mAlgDefines.h.bak

437 lines
15 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 <QString>
// 对于一些原先代码,尽管不再启用,但有时候需要看一下,即可放开该定义方便查看
//#define _SCAN_OLD_CODE_ 1
#define _isLimitedDouble zxMathBase::isLimitedValue<double>
// 对应四个选项,井储、井模型、油藏模型、边界类型
#define _oWbsType m_pModelOption->m_oWbsType
#define _oWelType m_pModelOption->m_oWelType
#define _oResType m_pModelOption->m_oResType
#define _oBdyType m_pModelOption->m_oBdyType
#define _oWft m_pModelOption->m_oWft
#define _oMst m_pModelOption->m_oMst
#define _oAssistType m_pModelOption->getAssistType()
// 大的模型分类,导航中选定
enum ModelSeriesType
{
MST_LP = 0, //低渗透
MST_HW, //水平井
MST_SR, //特殊油藏
MST_PF, //聚合物
// MST_XD, //wxd
// MST_XA, //XA
MST_UNKNOWN
};
// 特征点/线
enum eCharactType
{
CT_POINT = 0, //特征线类型
CT_LINE, //特征点类型
CT_UNKNOW
};
// 井流体性质,油气水井
enum WellFluidType
{
WFT_NULL = 0, //什么都没有选,这个时候不能下一步
WFT_Oil = 1, //油井 或油相
WFT_Gas = 2, //气井 或气相
WFT_Water = 4, //水井 或水相
WFT_Condense = 8, //凝析油气
WFT_PF = 16, //聚合物
WFT_CO2 = 32, //CO2
WFT_Oil_Gas = 3, //1+2
WFT_Oil_Water = 5, //1+4
WFT_Gas_Water = 6, //2+4
WFT_Condense_Water =12, //8+4
WTF_Oil_Gas_Water = 7, //1+2+4
WTF_PF_Water = 20, //16+4
WTF_Co2_Water = 36, //32+4
WFT_UNKNOWN
};
#define PvtFluidType WellFluidType
// Pvt流体大的分类
enum PvtFluidClass
{
PFC_Common = 0, //常规
PFC_Special, //特殊
PFC_StateEquation, //状态方程
PFC_UNKNOWN
};
// 井型,直井水平井等
enum WellOrientType
{
WOT_Vert = 0, //直井
WOT_Hori, //水平井
WOT_UNKNOWN
};
enum m_Wbs_Type
{
WBST_Fixed = 0, //定井储
WBST_None = 1, //无井储
WBST_Fair = 2, //变井储(Fair)
WBST_Hegeman = 3, //变井储(Hegeman)
WBST_SpiveyPacker = 4, //变井储(Spivey Packer)
WBST_SpiveyFissures = 5 //变井储(Spivey Fissures)
};
enum m_Wel_Type
{
WT_V = 100, //直井
WT_PCL = 101, //直井(部分射开)
WT_PUF = 102, //压裂直井(均匀流量)
WT_PCI = 103, //压裂直井(无限导流)
WT_PCFL = 104, //压裂直井(有限导流)(三线性流)
WT_PCFR = 105, //压裂直井(有限导流)(拟径向流)
WT_PCFF = 106, //压裂直井(有限导流)(快)
WT_PC2 = 107, //压裂井——两段产液
WT_PC3 = 108, //压裂井——三段产液
WT_PCF2 = 109, //压裂直井(有限导流)-两段
WT_H = 200, //水平井
WT_HPOSSRC = 201, //水平井点源模型
WT_HSL2 = 202, //水平井两段产液
WT_HSL2BotWater = 203, //水平井两段产液(底水)
WT_HSL3 = 204, //水平井三段产液
WT_HSL3BotWater = 205, //水平井三段产液(底水)
WT_PFCM = 206, //水平井多级压裂
WT_PICM = 207, //水平井多级裂分段产液
WT_DEV = 300, //斜井
//王晓东教授
WT_WXD_PCL = 600, //直接有限导流4
WT_WXD_V = 601, //普通直井
//西安林加恩教授
WT_LJE_HMGEN = 700, //西安测试
WT_OTHER_GRID = 998, //网格划分,权宜之计
WT_NONE = 999
};
enum m_Res_Type
{
// 常规
RT_HMGE = 100, //均质油藏
RT_HMGE_EX = 101, //均质油藏(扩展),baiwp算法
RT_DUALPRO_PS = 102, //双重孔隙——拟稳态
RT_DUALPRO_PLA = 103, //双重孔隙——不稳态板状介质
RT_DUALPRO_BAL = 104, //双重孔隙——不稳态球形介质
RT_DUALPRO_CYL = 105, //双重孔隙——不稳态圆柱形介质
RT_DUALPER = 106, //双重渗透
RT_COMP2 = 107, //双区复合
RT_COMP3 = 108, //三区复合
RT_MedComp12 = 200, //多重介质径向复合内1外2
RT_MedComp13 = 201, //多重介质径向复合内1外3
RT_MedComp22 = 202, //多重介质径向复合内2外2
RT_MedComp23 = 203, //多重介质径向复合内2外3
RT_MedComp33 = 204, //多重介质径向复合内3外3
RT_TLC_None = 205, //双层无越流
RT_TLC_NoneEx = 206, //双层无越流(封闭)
RT_TLC_Common = 207, //双层越流
RT_TLC_Comp = 208, //双层越流径向复合
RT_MULTILAYER_P = 209, //双层压裂
RT_HMGENWt = 210, //均质油藏(水井)
RT_LINEAR_COMP = 211, //线性复合
// 水平井
// RT_HMGE = 100, //均质油藏,注释表示前面已经定义,下同
// RT_DUALPRO_PS = 102, //双重孔隙——拟稳态
RT_DUALPRO_POSSRC = 300, //双重孔隙(点源)
// RT_DUALPER = 106, //双重渗透
// RT_COMP2 = 107, //双区复合
// RT_COMP3 = 108, //三区复合
// RT_LINEAR_COMP = 211, //线性复合
// 特殊油气藏
// RT_HMGE = 100, //均质油藏,注释表示前面已经定义,下同
// RT_HMGE_EX = 101, //均质油藏(扩展),baiwp算法
// RT_DUALPRO_PS = 102, //双重孔隙——拟稳态
// RT_COMP2 = 107, //双区复合
// RT_COMP3 = 108, //三区复合
RT_SR_COMP = 350, //径向复合,就是双区
// 其他废弃
// RT_SR_HMGE, //均质油藏
// RT_DUALPRO, //双重孔隙 就是拟稳态
RT_SR_CONDENSE_COMP2 = 398, //凝析气两区复合
RT_SR_CONDENSE_COMP3 = 399, //凝析气三区复合
// 聚合物(后续进行考虑)
RT_HMGEN = 400, //均质油藏(非牛顿)
RT_COMP2ONN = 401, //双区复合(非牛顿-牛顿)
RT_COMP2NON = 402, //双区复合(牛顿-非牛顿)
RT_FLOW2 = 403, //双层窜流
RT_FLOW3 = 404, //三层窜流
RT_FLOW2COM2ONN = 405, //双层窜流复合(非牛顿-牛顿)
RT_FLOW2COM2NON = 406, //双层窜流复合(牛顿-非牛顿)
RT_BIGPORE = 407, //大孔道油藏
RT_INTERFERENCE = 408, //井间干扰该项比较特殊需要根据checkbox进行动态调整
RT_FRACT = 409, //
//王晓东教授
RT_WXD_LINEPS = 600, //垂直裂缝线源解
RT_WXD_HMGE = 601, //普通直井
//西安林加恩教授
RT_LJE_HMGEN = 700, //西安测试
RT_NONE = 999
};
enum m_Bdy_Type
{
BT_NONE = 0, //无限大
BT_ONE = 1, //一条边界
BT_PARALL = 2, //平行边界
BT_TCROSS = 3, //三条垂直边界
BT_CROSS = 4, //交叉边界
BT_Circle = 5, //圆形边界
BT_RECT = 6 //矩形边界
// BT_BotWater //底水边界
};
enum m_Assist_Type
{
ASST_PG = 0, //启动压力梯度
ASST_DK, //动态渗透率
ASST_SS, //小信号
ASST_AP, //吸附系数
//临时
ASST_INTER, //考虑井间干扰
ASST_FRACT, //考虑压裂井
// SR
ASST_SSST, //StressSensitive应力敏感
ASST_NONE
};
//模型源码来源
enum AlgModelSrc
{
AMS_Inner = 0, //内部,石大北京程时清教授团队
AMS_Wxd = 600, //王晓东教授团队:(井型 600 开始 或者 储层类型 600开始
AMS_Lje = 700, //西安林教授团队:(井型 700 开始 或者 储层类型 700开始
AMS_Ludt = 800, //科大卢老师团队:(井型 800 开始 或者 储层类型 800开始
AMS_Lidl = 900, //合肥工大李老师团队:(井型 900 开始 或者 储层类型 900开始
AMS_UNKNOWN
};
//是否第一次运行(这个参数的主要意义是一些基础参数
//再运行的过程中提取出来,下次比如拟合的过程中不需要重复的去计算)
enum AlgCalMode
{
ACM_FitModel = 0, //模型生成
ACM_FitAuto, //自动拟合
ACM_FitPlate, //图版拟合
ACM_FitModelAfterAuto, //自动拟合之后再次模型生成
ACM_UNKNOWN
};
enum Fit_Type
{
FT_Model = 0, //常规生成模型,其实不属于拟合
FT_Auto, //自动拟合
FT_Plate, //图版拟合
FT_Anal, //试井设计
FT_Unknown
};
enum Fit_Method
{
FM_GaussNewton = 0, //高斯牛顿
FM_GaussNewtonEx, //归一化高斯牛顿
FM_Genetic, //遗传算法
FM_ParticleSwarm, //粒子群算法(Particle Swarm Optimization)
FM_Unknown
};
// 结构体,对应拟合参数的设置
struct zxFitParaInfo
{
QString fpiName; //拟合参数名称,英文标识,如"S"
double fpiValue;//参数值
double fpiMax; //参数最大值
double fpiMin; //参数最小值
QString fpiUnit; //参数单位
bool fpiChecked;//参数是否启用拟合(即前面是否打上√)
};
// 井型,直井水平井等
#define s_Wot_Vert QStringCH("直井")
#define s_Wot_Hori QStringCH("水平井")
//压力导数曲线(实际)
#define s_Souce_Curve "Souce"
#define s_Deriv_Curve "Deriv"
#define s_SmallSig_Curve "SmallSig"
#define s_Ppd_Curve "Ppd"
#define s_Deriv_NoOverlay_Curve "NoOverlay_Deriv"
//压力导数曲线(理论)
#define s_TheorySouce_Curve "TheorySouce"
#define s_TheoryDeriv_Curve "TheoryDeriv" //带叠加原理
#define s_TheorySmallSig_Curve "TheorySmallSig"
#define s_TheoryPpd_Curve "TheoryPpd"
#define s_TheoryDeriv_NoOverlay_Curve "NoOverlay_TheoryDeriv" //无叠加原理
//历史曲线
#define s_HistorySouce_CurveP "HistorySouce"
#define s_HistoryFit_CurveP "HistoryFit"
//历史曲线增加流量显示
#define s_HistorySouce_CurveF "HistorySouceF"
//
#define s_SemiSouce_Curve "SemiSouce"
#define s_SemiTheorySouce_Curve "SemiTheorySouce"
#define s_Ipr_Source "IprSource"
#define s_Ipr_Fit "IprFit"
#define s_Ipr_FitEx "IprFitEx"
#define s_Ipr_Result "IprResult"
#define s_Ipr_ResultEx "IprResultEx"
#define s_Tag_HomoModel QStringCH("均质油藏")
#define s_Tag_HomoModelEx QStringCH("均质油藏(扩展)")
#define s_Tag_DualPorModel QStringCH("双重孔隙")
#define s_Tag_DualPercModel QStringCH("双重渗透")
#define s_Tag_TwoCompoModel QStringCH("双区复合")
#define s_Tag_ThreeCompoModel QStringCH("三区复合")
//*********************************7.12改动LDY**********************************
#define s_Tag_UniFracModel QStringCH("压裂直井(均匀流量)")
#define s_Tag_IniFracModel QStringCH("压裂直井(无限导流)")
//#define s_Tag_HorizonModel QStringCH("水平井")
#define s_Tag_FinFracModel QStringCH("压裂直井(有限导流)")
//*********************************7.12改动完毕**********************************
#define s_Tag_NoBoundary QStringCH("无限大")
#define s_Tag_OneBoundary QStringCH("单一边界")
#define s_Tag_ParallBoundary QStringCH("平行边界")
#define s_Tag_TCrossBoundary QStringCH("U型边界")
#define s_Tag_CrossBoundary QStringCH("交叉边界")
#define s_Tag_CircularCompoModel QStringCH("圆形边界")
#define s_Tag_RectCompoModel QStringCH("矩形边界")
//*********************************7.12改动LDY**********************************
#define s_Tag_NoCharatPoint QStringCH("-------")
//公共部分
#define s_Tag_WellStoragePoint QStringCH("井储点")
#define s_Tag_SpikesPoint QStringCH("峰值点")
#define s_Tag_RadialFlowPoint QStringCH("径向流点")
//复合油藏
#define s_Tag_CompoPoint QStringCH("复合油藏点")
//压裂井
#define s_Tag_LinearFlow1hPoint QStringCH("线性流1h点")
#define s_Tag_LinearRadialPoint QStringCH("线性流与径向流交点")
#define s_Tag_LinearBiRadialPoint QStringCH("线性流与双径向流交点")
#define s_Tag_RadialBiRadialPoint QStringCH("径向流与双径向流交点")
#define s_Tag_BiLinearFlow1hPoint QStringCH("双线性流1h点")
#define s_Tag_LinearBiLinearPoint QStringCH("线性流与双线性流交点")
#define s_Tag_RadialBiLinearPoint QStringCH("径向流与双线性流交点")
//双重介质
#define s_Tag_FirRadialEndPoint QStringCH("第一径向流结束点")
#define s_Tag_SecRadialStarPoint QStringCH("第二径向流开始点")
#define s_Tag_DualMinPoint QStringCH("双重介质最低点")
//边界
#define s_Tag_BoundClosePoint QStringCH("封闭边界流点")
#define s_Tag_BoundSupplyPoint QStringCH("定压边界流点")
//水平井
#define s_Tag_VerRadialPoint QStringCH("垂向径向流点")
#define s_Tag_HoriLinearPoint QStringCH("水平线性流点")
#define s_Tag_HoriRadialPoint QStringCH("水平径向流点")
//*********************************7.12改动完毕**********************************
#define s_Tag_OneTypical QStringCH("第一特征线")
#define s_Tag_TwoTypical QStringCH("第二特征线")
//特征值方法
//井筒储集系数
#define s_Tag_WellStorage_C QStringCH("井储阶段法")
//地层渗透率
//直井
#define s_Tag_HorRadial_K QStringCH("径向流法")
#define s_Tag_PeakPoint_K QStringCH("峰值法")
#define s_Tag_PeakAndHR_K QStringCH("峰值-径向流法")
#define s_Tag_UniFracLR_K QStringCH("线性流-径向流法")
#define s_Tag_InfFracLBR_K QStringCH("线性流-双径向流法")
#define s_Tag_InfFracRBR_K QStringCH("径向流-双径向流法")
#define s_Tag_FinFracLBL_K QStringCH("线性流-双线性流法")
//水平井
#define s_Tag_HoriWell_Kv QStringCH("线-垂径法")
#define s_Tag_HoriWell_Ky QStringCH("水平线性流法")
#define s_Tag_HoriWell_Kx QStringCH("线-水径法")
#define s_Tag_HoriWell_Kh QStringCH("水平径向流法")
//表皮系数
#define s_Tag_WellBorePeakx_S QStringCH("横坐标法")
#define s_Tag_WellBorePeaky_S QStringCH("纵坐标法")
//边界尺寸
#define s_Tag_OneBoundClose_L1 QStringCH("封闭边界流法")
#define s_Tag_OneBoundSupply_L1 QStringCH("定压边界流法")
//流度比
#define s_Tag_MobilityRatio_M QStringCH("第二径向流法")
//复合半径
#define s_Tag_InnerRaDius_Rc QStringCH("第二径向流法")
//裂缝半长
#define s_Tag_UniFracR_Xf QStringCH("径向流法")
#define s_Tag_UniFracLR_Xf QStringCH("线性流-径向流法")
#define s_Tag_InfFracLBR_Xf QStringCH("线性流-双径向流法")
#define s_Tag_InfFracRBR_Xf QStringCH("径向流-双径向流法")
#define s_Tag_FinFracLBL_Xf QStringCH("线性流-双线性流法")
//裂缝导流能力
#define s_Tag_FinFracBL_Fc QStringCH("双线性流法")
#define s_Tag_FinFracLBL_Fc QStringCH("线性流-双线性流法")
#define s_Tag_FinFracRBL_Fc QStringCH("径向流-双线性流法")
//储容比
#define s_Tag_DualPorMinR_Om QStringCH("径向流-最低法")
#define s_Tag_DualPorMinR1_Om QStringCH("第一最低法")
#define s_Tag_DualPorMinR2_Om QStringCH("第二最低法")
//窜流系数
#define s_Tag_DualPorMin_Lar QStringCH("最低法")
#define s_Tag_DualPorR1_Lar QStringCH("第一最低法")
#define s_Tag_DualPorR2_Lar QStringCH("第二最低法")
#define s_Tag_DualPorOmMin_Lar QStringCH("最低-储容比法")
#define s_IprPlot_Source "IprSourcePlot"
#define s_IprPlot_Result "IprResultPlot"
//边界类型
#define s_Tag_BdyType_CloseB QStringCH("封闭")
#define s_Tag_BdyType_FixP QStringCH("定压")