|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
|
|
|
|
// 对于一些原先代码,尽管不再启用,但有时候需要看一下,即可放开该定义方便查看
|
|
|
|
|
|
//#define _SCAN_OLD_CODES_ 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
|
|
|
|
|
|
WTF_StateEquation=64, //状态方程
|
|
|
|
|
|
WTF_StateEquation_Water = 68, //64+4
|
|
|
|
|
|
WFT_Unknown = 256
|
|
|
|
|
|
};
|
|
|
|
|
|
#define PvtFluidType WellFluidType
|
|
|
|
|
|
|
|
|
|
|
|
// Pvt流体大的分类
|
|
|
|
|
|
enum PvtFluidClass
|
|
|
|
|
|
{
|
|
|
|
|
|
PFC_Common = 0, //常规
|
|
|
|
|
|
PFC_Special, //特殊
|
|
|
|
|
|
PFC_StateEquation, //状态方程
|
|
|
|
|
|
PFC_Unknown
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 井型,直井水平井等
|
|
|
|
|
|
enum WellOrientType
|
|
|
|
|
|
{
|
|
|
|
|
|
WOT_Vert = 0, //直井
|
|
|
|
|
|
WOT_Hori, //水平井
|
|
|
|
|
|
WOT_Unknown
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 井储类型,确保与xml配置的ID一一对应
|
|
|
|
|
|
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)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 井型类型,确保与xml配置的ID对应
|
|
|
|
|
|
enum m_Wel_Type
|
|
|
|
|
|
{
|
|
|
|
|
|
// 直井
|
|
|
|
|
|
WT_V = 100, //直井·完全打开
|
|
|
|
|
|
WT_PCL = 101, //直井·部分打开
|
|
|
|
|
|
|
|
|
|
|
|
// 压裂直井
|
|
|
|
|
|
WT_PUF = 102, //压裂直井·均匀流量
|
|
|
|
|
|
WT_PCI = 103, //压裂直井·无限导流
|
|
|
|
|
|
WT_PCF = 110, //压裂直井·有限导流,20250801,压裂直井(有限导流)+均质,借用 拟径向流,具体咨询xieh
|
|
|
|
|
|
|
|
|
|
|
|
WT_PCFL = 104, //压裂直井·有限导流·三线性流(北京)
|
|
|
|
|
|
WT_PCFR = 105, //压裂直井(有限导流)-拟径向流(暂时屏蔽,20260417模型整合)
|
|
|
|
|
|
WT_PCFF = 106, //压裂直井·有限导流·全解析
|
|
|
|
|
|
WT_PC2 = 107, //压裂直井·有限导流·两段裂缝
|
|
|
|
|
|
WT_PC3 = 108, //压裂直井·有限导流·三段裂缝
|
|
|
|
|
|
WT_PCF2 = 109, //压裂直井(有限导流)-两段(暂时屏蔽,20260417模型整合)
|
|
|
|
|
|
|
|
|
|
|
|
// 水平井
|
|
|
|
|
|
WT_H = 200, //水平井(暂时屏蔽,不再启用,2024年前就不再启用了)
|
|
|
|
|
|
WT_HCM = 201, //常规水平井(即原来的点源水平井)
|
|
|
|
|
|
WT_HSL2 = 202, //水平井·两段流量
|
|
|
|
|
|
WT_HSL2BW = 203, //水平井·两段流量·底水
|
|
|
|
|
|
WT_HSL3 = 204, //水平井·三段流量
|
|
|
|
|
|
WT_HSL3BW = 205, //水平井·三段流量·底水
|
|
|
|
|
|
|
|
|
|
|
|
// 压裂水平井
|
|
|
|
|
|
WT_PFCM = 206, //多级压裂水平井(暂时屏蔽,20260417模型整合)
|
|
|
|
|
|
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
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 储层类型,确保与xml配置的ID对应
|
|
|
|
|
|
enum m_Res_Type
|
|
|
|
|
|
{
|
|
|
|
|
|
// 常规
|
|
|
|
|
|
|
|
|
|
|
|
RT_HMGE = 100, //均质
|
|
|
|
|
|
RT_HMGE_EX = 101, //均质油藏(扩展),baiwp算法,(暂时屏蔽,不再启用,2024年前就不再启用了)
|
|
|
|
|
|
RT_DUALPRO_PS = 102, //双孔拟稳态
|
|
|
|
|
|
RT_DUALPRO_PLA =103, //双孔板状非稳态
|
|
|
|
|
|
RT_DUALPRO_BAL =104, //双孔球状非稳态
|
|
|
|
|
|
RT_DUALPRO_CYL =105, //双孔柱状非稳态
|
|
|
|
|
|
|
|
|
|
|
|
RT_DUALPER = 106, //双重渗透(暂时屏蔽,不再启用,2024年前就不再启用了)
|
|
|
|
|
|
RT_COMP2 = 107, //双区复合(暂时屏蔽,不再启用,2024年前就不再启用了)
|
|
|
|
|
|
RT_COMP3 = 108, //三区复合(暂时屏蔽,不再启用,2024年前就不再启用了)
|
|
|
|
|
|
|
|
|
|
|
|
RT_TRI_K = 116, //三孔拟稳态
|
|
|
|
|
|
RT_TRI_K_EX = 117, //三孔单渗嵌套拟稳态(暂时屏蔽,20260417模型整合)
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////
|
|
|
|
|
|
// 如下全部暂时屏蔽,不再启用,从2024年开始
|
|
|
|
|
|
|
|
|
|
|
|
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_HMGE_WATER = 210, //均质油藏(水井)
|
|
|
|
|
|
|
|
|
|
|
|
RT_LINEAR_COMP = 211, //线性复合
|
|
|
|
|
|
|
|
|
|
|
|
// 水平井
|
|
|
|
|
|
// RT_HMGE = 100, //均质油藏,注释表示前面已经定义,下同
|
|
|
|
|
|
// RT_DUALPRO_PS = 102, //双重孔隙——拟稳态
|
|
|
|
|
|
RT_DUALPRO_POSSRC = 300,//双重孔隙(点源)
|
|
|
|
|
|
|
|
|
|
|
|
// 特殊油气藏
|
|
|
|
|
|
// 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_HMGE_NON_NT = 400, //均质油藏(非牛顿)
|
|
|
|
|
|
RT_COMP2_NON_NT_NT = 401, //双区复合(非牛顿-牛顿)
|
|
|
|
|
|
RT_COMP2_NT_NON_NT = 402, //双区复合(牛顿-非牛顿)
|
|
|
|
|
|
|
|
|
|
|
|
RT_FLOW2 = 403, //双层窜流
|
|
|
|
|
|
RT_FLOW3 = 404, //三层窜流
|
|
|
|
|
|
RT_FLOW2COM2ONN = 405, //双层窜流复合(非牛顿-牛顿)
|
|
|
|
|
|
RT_FLOW2COM2NON = 406, //双层窜流复合(牛顿-非牛顿)
|
|
|
|
|
|
RT_BIGPORE = 407, //大孔道油藏
|
|
|
|
|
|
RT_INTERFERENCE = 408, //井间干扰,该项比较特殊,需要根据checkbox进行动态调整
|
|
|
|
|
|
RT_FRACT = 409, //
|
|
|
|
|
|
|
|
|
|
|
|
// End of 全部暂时屏蔽,不再启用,从2024年开始
|
|
|
|
|
|
//////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
// 聚合物,解析解,算法提供者 殷维 TODO
|
|
|
|
|
|
RT_HMGE_NON_NT_ANAL = 410, //非牛顿
|
|
|
|
|
|
RT_COMP2_NON_NT_NT_ANAL = 411, //非牛顿-牛顿
|
|
|
|
|
|
RT_COMP2_NT_NON_NT_ANAL = 412, //牛顿-非牛顿
|
|
|
|
|
|
|
|
|
|
|
|
//王晓东教授
|
|
|
|
|
|
RT_WXD_LINEPS = 600, //垂直裂缝线源解
|
|
|
|
|
|
RT_WXD_HMGE = 601, //普通直井
|
|
|
|
|
|
|
|
|
|
|
|
//西安林加恩教授
|
|
|
|
|
|
RT_LJE_HMGEN = 700, //西安测试
|
|
|
|
|
|
|
|
|
|
|
|
RT_NONE = 999
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 边界类型,确保与xml配置的ID一一对应
|
|
|
|
|
|
enum m_Bdy_Type
|
|
|
|
|
|
{
|
|
|
|
|
|
BT_None = 0, //无限大
|
|
|
|
|
|
BT_Single = 1, //单一边界
|
|
|
|
|
|
BT_Parallel = 2,//平行边界
|
|
|
|
|
|
BT_Tri = 3, //U型边界
|
|
|
|
|
|
BT_Cross = 4, //交叉边界
|
|
|
|
|
|
BT_Circle = 5, //圆形边界
|
|
|
|
|
|
BT_Rect = 6 //矩形边界
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 启用选项
|
|
|
|
|
|
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_Chy = 800, //科大褚老师团队:(井型 800 开始 或者 储层类型 800开始)
|
|
|
|
|
|
AMS_Rjj = 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
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
enum WellPointType
|
|
|
|
|
|
{
|
|
|
|
|
|
WPT_Normal = 0, //常规
|
|
|
|
|
|
WPT_Center, //观察井、中心井
|
|
|
|
|
|
WPT_Active //激动井、干扰井
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 结构体,对应拟合参数的设置
|
|
|
|
|
|
struct zxFitParaInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
QString fpiName; //拟合参数名称,英文标识,如"S"
|
|
|
|
|
|
double fpiValue;//参数值
|
|
|
|
|
|
double fpiMax; //参数最大值
|
|
|
|
|
|
double fpiMin; //参数最小值
|
|
|
|
|
|
QString fpiUnit; //参数单位
|
|
|
|
|
|
bool fpiChecked;//参数是否启用拟合(即前面是否打上√)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// 压力导数曲线(实际)
|
|
|
|
|
|
#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_Souce_Curve_Raw "Souce_Raw"
|
|
|
|
|
|
#define s_Deriv_Curve_Raw "Deriv_Raw"
|
|
|
|
|
|
|
|
|
|
|
|
// 压力导数曲线(理论)
|
|
|
|
|
|
#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_Tag_Deconv_Tm "DeconvTm"
|
|
|
|
|
|
// 压力数值
|
|
|
|
|
|
#define s_Tag_Deconv_Pm "DeconvPm"
|
|
|
|
|
|
// 压力导数
|
|
|
|
|
|
#define s_Tag_Deconv_DPm "DeconvDPm"
|
|
|
|
|
|
// 压力历史曲线(注:s_Tag_Deconv_Bspin应用于 iGuiPlotPF::getAllVisibleCurvesOf,需要格外注意)
|
|
|
|
|
|
#define s_Tag_Deconv_Bspin "DeconvBSPIN"
|
|
|
|
|
|
#define s_Tag_Deconv_BspinTm "DeconvBSPINTm"
|
|
|
|
|
|
|
|
|
|
|
|
#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_IprPlot_Source "IprSourcePlot"
|
|
|
|
|
|
#define s_IprPlot_Result "IprResultPlot"
|