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

#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("定压")