#pragma once #include // 对于一些原先代码,尽管不再启用,但有时候需要看一下,即可放开该定义方便查看 //#define _SCAN_OLD_CODES_ 1 #define _isLimitedDouble zxMathBase::isLimitedValue // 对应四个选项,井储、井模型、油藏模型、边界类型 #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,气水 WTF_Oil_Gas_Water = 7, //1+2+4,油气水 WFT_Condense_Water = 12, //8+4,凝析油气+水 WTF_PF_Water = 20, //16+4,聚合物+水 WTF_CO2_Water = 36, //32+4,CO2+水 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_FV_RADIAL_COMP = 289,//均质二区径向复合,yinw 20260907,压裂直井 有限导流 径向复合 // xieh再次进行校正 参见 压裂直井-有限导流-径向复合-New.txt 20260915 RT_OW_PF_COMP = 290, //油水-聚合物复合,yinw 20260907 // 水平井 // 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_VERT_COMP_2 = 351, //直井 径向复合(两区),20260720,xieh针对直井再次增加,部分流程模拟了 RT_SR_COMP RT_VERT_COMP_3 = 352, //直井 径向复合(三区),20260721,yinw针对直井再次增加 // xieh再次进行校正 参见 直井三区径向复合-有效井径-New.txt 20260915 // 其他废弃 // 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_COMP2_NON_NT_NON_NT_NT_ANAL = 413, //非牛顿-非牛顿-牛顿 //王晓东教授 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_FitModel_Dv, //反褶积:模型生成(解析解) ACM_FitAuto_Dv, //反褶积:自动拟合 ACM_UNKNOWN }; // 对于流动段的处理模式 enum SegTakenMode { STM_Common = 0, //常规模式,不作任何更改,亦为 All STM_Cut, //Trim模式,由后台配置决定 STM_Dv, //反褶积模式 STM_UNKNOWN }; enum Fit_Type { FT_Model = 0, //常规生成模型,其实不属于拟合 FT_Auto, //自动拟合 FT_Plate, //图版拟合 FT_Design, //试井设计 FT_Unknown }; enum Fit_Method { FM_GaussNewton = 0, //高斯牛顿 FM_GaussNewtonEx, //归一化高斯牛顿 FM_LM, //LM算法(Levenberg Marquardt) FM_Genetic, //遗传算法 FM_Genetic_LM, //遗传算法+LM方法校正 FM_PSO, //粒子群算法(Particle Swarm Optimization) FM_PSO_LM, //粒子群算法(Particle Swarm Optimization)+LM方法校正 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_Curve_SouceP "Souce" #define s_Curve_TheorySouceP "TheorySouce" // 考虑叠加原理的压力导数曲线(实际+理论) #define s_Curve_DerivP "Deriv" #define s_Curve_TheoryDerivP "TheoryDeriv" // 不考虑叠加原理的压力导数(实际+理论) #define s_Curve_DerivP_NOV "NoOverlay_Deriv" #define s_Curve_TheoryDerivP_NOV "NoOverlay_TheoryDeriv" // 小信号(实际+理论) #define s_Curve_SmallSigP "SmallSig" #define s_Curve_TheorySmallSigP "TheorySmallSig" // Ppd(实际+理论) #define s_Curve_Ppd "Ppd" #define s_Curve_TheoryPpd "TheoryPpd" /////////////////////////////////////////////////////////////// // 半对数图显示内容 // 半对数压力曲线(实际+理论) #define s_Curve_SemiSouceP "SemiSouce" #define s_Curve_SemiTheorySouceP "SemiTheorySouce" /////////////////////////////////////////////////////////////// // 压力流量史图显示内容 // 压力史曲线(实际+理论拟合) #define s_Curve_HistSouceP "HistorySouce" #define s_Curve_HistTheorySouceP "HistoryFit" // 流量史曲线(实际) #define s_Curve_HistSouceF "HistorySouceF" /////////////////////////////////////////////////////////////// // 弹窗对话框图显示内容 // 弹窗对话框:数据(抽稀/光滑)前数据备份(实际+导数) #define s_Curve_SouceP_Raw "Souce_Raw" #define s_Curve_DerivP_Raw "Deriv_Raw" /////////////////////////////////////////////////////////////// // 反褶积计算结果标识,基本上双对数、半对数、压力史都涉及 // 双对数 压力曲线(实际+理论) #define s_Curve_SouceP_Dv "Souce_Dv" #define s_Curve_TheorySouceP_Dv "TheorySouce_Dv" // 双对数 压力导数曲线(实际+理论) #define s_Curve_DerivP_Dv "Deriv_Dv" #define s_Curve_TheoryDerivP_Dv "TheoryDeriv_Dv" // 半对数 压力曲线(实际+理论) #define s_Curve_SemiSouceP_Dv "SemiSouce_Dv" #define s_Curve_SemiTheorySouceP_Dv "SemiTheorySouce_Dv" // 压力流量史图 压力史曲线(实际+理论拟合) #define s_Curve_HistSouceP_Dv "HistorySouce_Dv" #define s_Curve_HistTheorySouceP_Dv "HistoryFit_Dv" // 压力流量史图 流量史曲线(实际) #define s_Curve_HistSouceF_Dv "HistorySouceF_Dv" /////////////////////////////////////////////////////////////// // IPR计算结果标识 #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"