📄 projectstruct.h
字号:
//工程文件结构
//[SPD] -- 6 //文件头
//char strFileHead[6]; //[SPD]
//[井况] -- 255
typedef struct CSTRUCTWELLINFO
{
char strOilFieldName[40];
char strWellName[40];
char strCo[40];
char strStylist[20]; //设计人
char strAuditing[20]; //审核
char strDate[20]; //日期
//井类型
BOOL bWellState; //TRUE为油井,FALSE为气井
//储层类型
BOOL bStratumState; //TRUE为孔隙型,FALSE为裂缝型
int iFractureState; /*bStratumState=FALSE时为-1
0.一组垂直裂缝
1.两组相互正交的垂直裂缝
2.一组水平裂缝
3.三组相互正交的裂缝*/
//完井目的
int iAim; /*1.增产措施井
2.防止出砂井
3.自喷井
4.防止污染*/
char strNone[59];
}STRUCTWELLINFO;
//[射孔弹数据表] -- 255
// char strSDTPath[255]; //射孔弹数据表(*.SDT)路径
//[射孔器材数据库] -- 255
// char strEDTPath[255]; //射孔器材数据库(*.EDT)路径
//[钻井数据库] -- 255
// char strDDTPath[255]; //钻井数据库(*.DDT)路径
//[基本数据表] -- 510
typedef struct CSTRUCTBDTTABLE
{
BOOL bState; //数据是否已经输入
float fStratumCentralDepth; //地层中部深度
float fStratumPly; //地层总厚度
float fShotLayerPly; //射孔段厚度
float fStratumFilterPercent; //地层渗透率
float fStratumHolePercent; //地层孔隙度
float fStratumHeterosphere; //地层非均质性
float fStratumAverPress; //地层平均压力
float fStratumTemp; //地层温度
float fRevealOilRadius; //泄油半径
float fWellRadius; //井筒半径
float fFloorOilPorportion; //地面原油比重
float fFloorGasPorportion; //地面气体比重
float fStratumOilStiff; //地层原油粘度
float fOilFaceTension; //油的表面张力
float fWaterFaceTension; //水的表面张力
float fWaterPercent; //含水率
float fDrillPolluteDepth; //钻井污染深度
float fDrillPollutePercent; //钻井污染程度
float fProduceGasWater; //生产气液比
float fWellMouthTemp; //井口温度
float fWellBottomTemp; //井底温度
float fOilSaturationPress; //原油饱和压力
float fProducePressDiff; //估计生产压差
char strOilResCannulaModel[40]; //油层套管型号
float fOilResCannulaDiameter; //油层套管外径
float fOilResCannulaCliffDeep; //油层套管壁厚
float fCannulaPressResistance; //套管抗挤压程度
char strVittaModel[40]; //油管型号
float fVittaMeasureDepth; //油管测量深度
float fVittaPlumbDepth; //油管垂直深度
float fVittaInsideDiameter; //油管内径
float fVittaCompCoarseness; //油管相对粗糙度
int iShotDenNum;
int iShotPhasicNum;
float fShotDen[8]; //射孔密度
float fShotPhasic[6]; //射孔相位
long lCount; //射孔弹数(最多8种)
char strNone[244];
}STRUCTBDTTABLE;
//输入/输出参数表从工程文件的 1280 Bit 处开始
//输入/输出参数表:[PAR]
//[PAR]
// char strFileHead[6]; //[PAR]
//[输入] - 255 * 17 + (16 + 48 * 8)=
//1.[射孔参数校正] -- 12256
typedef struct CSTRUCTTTPTABLE //16
{
BOOL bState; //数据是否已经输入
float fGun; //枪管间隙
float fLong; //射孔段套管层数
long lNum; //射孔弹数目,如新建则为-1
}STRUCTTTPTABLE;
typedef struct CSTRUCTTTPSHOTPARA //48*255=12240
{
char strModel[40]; //射孔弹型号
float fLimitDate; //规定储存期限
float fDate; //实际储存时间
float fShotDepth;
float fPortion;
float fDiameter;
}STRUCTTTPSHOTPARA; //[8]
//2.[常规负压设计]
typedef struct CSTRUCTMINUSPRESSDESIGN
{
BOOL bState; //数据是否已经输入
BOOL bSand; //TRUE:地层有出砂史;FALSE:地层无出砂史
float fClay; //地层粘土含量
float fElasticity; //岩石弹性模量
float fPossion; //岩石泊松比
float fWater; //射孔液比重
float fPress; //油层压力系数
float fMinusPress; //实际所选射孔负压
char strModel[40]; //射孔弹型号
float fDiameter; //射孔弹孔径
float fPressDeep; //射孔弹压厚
float fPressLong; //射孔弹压程
}STRUCTMINUSPRESSDESIGN;
//3.[污染计算]
typedef struct CSTRUCTPOLLUTECOMPUTE
{
BOOL bState; //数据是否已经输入
BOOL bMud; //TRUE:油基;FALSE:水基泥浆
float fDrillerDiameter; //钻杆直径(mm)
float fMudTime; //泥浆浸泡时间
float fMudPor; //泥浆比重
float fMudStiff; //泥浆粘度
float fMudPH; //泥浆PH值
float fMudMute; //泥浆排量
float fMudFiltratePer; //泥浆滤液比量
float fMudFiltrateRes; //泥浆滤液电阻率
float fWaterRes; //油层水电阻率
float fClayCon; //产层粘土绝对含量
float fCompCon; //蒙脱石或者伊蒙石混层的相对含量
float fMineralization; //产层水钙、镁离子含量/总矿化度
float fDiameter; //钻头直径(mm)
}STRUCTPOLLUTECOMPUTE;
//4.[射孔参数优选]
typedef struct CSTRUCTSHOTPARABASE
{
BOOL bState; //数据输入否
int iNum; //所有的数量
}STRUCTSHOTPARABASE;
typedef struct CSTRUCTSHOTPARAPRESELECT
{
float fProPer; //产率比
char strModel[40]; //射孔弹型号
float fAngle; //相位角度
float fShotDen; //孔密度
float fShotDepth;
float fDiameter;
float fPara; //套管强度降低系数(%)
}STRUCTSHOTPARAPRESELECT; //[384]
//5.[射孔产能及表皮系数预测]
//6.[射孔敏感度分析]
typedef struct CSTRUCTTENDERNESSANALYSE
{
char strNone[255];
}STRUCTTENDERNESSANALYSE;
//7.[射孔方案]
typedef struct CSTRUCTSHOTSCHEME
{
char strNone[255];
}STRUCTSHOTSCHEME;
//8.[防砂压力设计]
typedef struct CSTRUCTSANDPRESSDESIGN
{
float fPMin;
float fPMax;
float fPRec;
float fP;
float fQ;
char strNone[490];
}STRUCTSANDPRESSDESIGN;
//9.[超正压设计]
typedef struct CSTRUCTSUPERPRESSDESIGN
{
char strNone[255];
}STRUCTSUPERPRESSDESIGN;
//10.[射孔排炮]
typedef struct CSTRUCTSHOTSALVO
{
char strNone[255];
}STRUCTSHOTSALVO;
//11.[射孔校深]
typedef struct CSTRUCTSHOTVERIFYDEPTH
{
char strNone[255];
}STRUCTSHOTVERIFYDEPTH;
//12.[井身结构]
typedef struct CSTRUCTWELLSTRUCT
{
char strNone[255];
}STRUCTWELLSTRUCT;
//13.[射孔管柱设计]
typedef struct CSTRUCTSHOTPIPYDESIGN
{
char strNone[255];
}STRUCTSHOTPIPYDESIGN;
//14.[方法1]
typedef struct CSTRUCTMETHOD1
{
char strNone[255];
}STRUCTMETHOD1;
//15.[方法2]
typedef struct CSTRUCTMETHOD2
{
char strNone[255];
}STRUCTMETHOD2;
//16.[方法3]
typedef struct CSTRUCTMETHOD3
{
char strNone[255];
}STRUCTMETHOD3;
//17.[技术经济分析]
typedef struct CSTRUCTTECHENCOANALYSE
{
char strNone[255];
}STRUCTTECHENCOANALYSE;
//18.[起爆器压差设计]
typedef struct CSTRUCTPRIMINGDESIGN
{
char strNone[255];
}STRUCTPRIMINGDESIGN;
//***********************************
//[计算结果] - 255 * 17 + 3072 = 5112
//1.[射孔参数校正] - 3072
typedef struct CSTRUCTTTPRESULT
{
BOOL bState; //是否已经进行了计算
float fPressDiff; //估计射孔压差
long lNum;
float fPP[8]; //校正系数
float fPDepth[8]; //校正穿深
float fPDiameter[8]; //校正孔径
}STRUCTTTPRESULT;
//2.[常规负压设计]
typedef struct CSTRUCTMINUSPRESSRESULT
{
BOOL bState; //是否已经进行了计算
float fDepth; //井筒掏空深度
float fDeep; //液垫高度
float fPMin; //保证孔眼清洁的PMin
float fPMax; //防止出砂允许的PMax
float fPRec; //优化推荐负压差PRec
float fPRecMax; //最大可实现的负压差PRec(Oil)
}STRUCTMINUSPRESSRESULT;
//3.[污染计算]
typedef struct CSTRUCTPOLLUTECOMPUTERESULT
{
BOOL bState; //是否已经进行了计算
float fPolluteDepth; //污染深度
float fPollutePer; //污染程度
}STRUCTPOLLUTECOMPUTERESULT;
//4.[射孔参数优选]
//5.[射孔产能及表皮系数预测]
typedef struct
{
BOOL bState; //是否已经输入
char strModel[40]; //射孔弹型号
float fAngle; //井斜角度
float fShotDen; //孔密
float fShotPhasic; //相位
float fPR; //产率比
float fST; //总表皮
float fNPro; //裸眼井产量
float fSPro; //射孔井产量
float fSP; //射孔几何表皮系数
float fSD; //钻井污染表皮系数
float fSDP; //射孔压实表皮系数
float fS4; //井斜或地层倾角表皮系数
float fSPP; //射孔部分打开表皮系数
}STRUCTOILSHOTFORECAST;
typedef struct CSTRUCTGASSHOTFORECAST
{
BOOL bState; //是否已经输入
char strModel[40]; //射孔弹型号
float fShotDen; //孔密
float fShotPhasic; //相位
float fZ; //压缩因子
float fFMIO; //气体粘度
float fTPC; //拟临界温度
float fPPC; //拟临界压力
float fTPR; //拟对比温度
float fPPR; //拟对比压力
float fPAVE; //地层平均压力
float fTAVE; //地层平均温度
float fPRT; //气井产率比
float fQPER; //射孔气井产量
float fQGAS; //理想裸眼井产量
float fQ1; //理想射孔井产量
float fQW; //无射孔损害气井产量
float fST; //视总表皮系数
float fSP; //视射孔几何表皮系数
float fSD; //视钻井污染表皮系数
float fSDP; //视射孔压实表皮系数
float fSTS; //总表皮系数
float fSPS; //射孔几何表皮系数
float fSDS; //钻井污染表皮系数
float fSDPS; //射孔压实表皮系数
float fD; //理想裸眼井紊流系数
float fD1; //实际射孔井紊流系数
float fD1P; //理想射孔井紊流系数
}STRUCTGASSHOTFORECAST;
//6.[射孔敏感度分析]
//7.[射孔方案]
//8.[防砂压力设计]
//9.[超正压设计]
//10.[射孔排炮]
//11.[射孔校深]
//12.[井身结构]
//13.[射孔管柱设计]
//14.[方法1]
//15.[方法2]
//16.[方法3]
//17.[技术经济分析]
//18.[起爆器压差设计]
//[输出/输入参数表大小为 23990 Bit]
//射孔弹数据表(*.SDT)
//[SDT]
//int iSDTNum; //射孔弹数量
typedef struct CSTRUCTSDTTABLE
{
char strModel[40]; //型号
char strCo[40]; //厂家
float fShotDepth; //穿深
float fDiameter; //孔径
float fPressDeep; //压厚
float fPressLong; //压程
float fCFE;
float fPortion; //Φ
float fBL;
float fBJ;
}STRUCTSDTTABLE;
typedef struct CSTRUCTSDTHEAD
{
char strFileHead[6]; //[SDT]
int iNum;
}STRUCTSDTHEAD;
//*********************//
//射孔器材数据库(*.MDT)
typedef struct CSTRUCTEDTTABLE
{
}STRUCTEDTTABLE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -