📄 slbdtfx.cpp
字号:
}
if( dblL1 > 0)
{
//多相流(dblPWF, dblPS, dblTJP, dblTG, dblQG, dblQW, dblQO, dblGG, dblGW, dblOG, dblL1, dblDIT, 0, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, 1, iMMPF)
dblPWF=zpjjs.dxl(iMMPF,dblPS, dblTJP, dblTG, dblQG, dblQW, dblQO, dblGG, dblGW, dblOG, dblL1, dblDIT, 0, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, 1);
}
else
{
dblPWF = dblPS;
}
if( dblL2 > 0)
{
dblT0 = dblTJP + dblTG * dblL1;
//多相流(dblPcom, dblPWF, dblT0, dblTG, dblQG, dblQW, dblQO, dblGG, dblGW, dblOG, dblL2, dblDIC, 0, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, 1, iMMPF)
dblPcom=zpjjs.dxl(iMMPF, dblPWF, dblT0, dblTG, dblQG, dblQW, dblQO, dblGG, dblGW, dblOG, dblL2, dblDIC, 0, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, 1);
dblPWF = dblPcom;
}
if( iTemp01 == 2)
{
//未来IPR(dblPLI未来, QB未来, Qomax未来, Qtmax未来, 地层压力, Pb未来, 产液指数, QB, Qomax, Qtmax, dblPrs, Pb, dblFW)
zpjjs.wlipr(dblDCYL,dblCYZS, dblQB, dblQoMax, dblQtMax, dblPrs, dblPB, dblFW);
dblPLIWL=zpjjs.PLIwl;
dblQBWL=zpjjs.QBwl;
dblQoMaxWL=zpjjs.Qomaxwl;
dblQtMaxWL=zpjjs.Qtmaxwl;
dblPBWL=zpjjs.Pbwl;
//由dblPWF求dblQ(dblQS, dblPWF, dblPLI未来, QB未来, Qomax未来, Qtmax未来, 地层压力, Pb未来, dblFW)
dblQS=qjyljsz.ypwfqq(dblPWF, dblPLIWL, dblQBWL, dblQoMaxWL, dblQtMaxWL, dblDCYL, dblPBWL, dblFW);
}
else
{
//由dblPWF求dblQ(dblQS, dblPWF, 产液指数, QB, Qomax, Qtmax, 地层压力, Pb, dblFW)
dblQS=qjyljsz.ypwfqq(dblPWF, dblCYZS, dblQB, dblQoMax, dblQtMax, dblDCYL, dblPB, dblFW);
}
if( dblQS <= 0)
{
dblQS = 0;
}
if( dblNDO == 100)
{
dblQS = (dblQS + dblQS0) / 2;
break;
}
}
while(fabs(dblQS0 - dblQS) >= 0.5 && dblQS!=0);
if( dblPS > 0)
{
dblQSC = dblAJ * (1 - dblRa) / dblRa / (pow(((dblGW * dblFW + dblOG * (1 - dblFW)) / (dblPS + 0.1)),0.5) / 3.13 + dblQYB / (dblPS + 0.1) / 157);
}
if( iTemp04 > 1)
{
if( dblResult[2 * iTemp05][iTemp04 - 1] < dblQS)
{
dblQS = dblResult[2 * iTemp05][iTemp04 - 1];
}
}
iK=int(100 * dblQSC);
dblResult[1][iTemp04] = double(iK) / 100.0;
iK=int(100 * dblQS);
dblResult[2 * iTemp05][iTemp04] = double(iK) / 100.0;
}
else
{
dblResult[2 * iTemp05][iTemp04] = dblResult[2][iTemp04];
}
//计算流出关系
if( ((iTemp01 == 2 || iTemp01 == 3) && iTemp05 == 1) || (iTemp01 != 2 && iTemp01 != 3))
{
//计算动力液流量Qn
dblQN = 0;
dblNDO = 0;
do
{
dblNDO = dblNDO + 1;
dblQN0 = dblQN;
if( strDDLY == "水")
{
dblQNW = dblQN;
dblQNO = 0;
dblNLG = dblGW;
}
else
{
dblQNW = 0;
dblQNO = dblQN;
dblNLG = dblOG;
}
if( dblBx == 0)
{
dblDOL = dblDIT;//正循环
dblDIL = 0;
}
else
{
dblDOL = dblDIC;//反循环
dblDIL = dblDOT;
}
//多相流(dblPN,地面泵压, T井口, dblTG, 0, dblQNW, dblQNO, dblGG, dblGW, dblOG, 泵挂深度, dblDOL, dblDIL, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, -1, iMMPF)
dblPN=zpjjs.dxl(iMMPF,dblDMBY,dblTJK, dblTG, 0, dblQNW, dblQNO, dblGG, dblGW, dblOG, dblBGSD, dblDOL, dblDIL, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, -1);
dblQN = 3.79 * dblAJ * pow(((dblPN - dblPS) / dblNLG / (1 + dblKj)),0.5);
if( dblNDO == 100)
{
dblQN = (dblQN0 + dblQN) / 2;
break;
}
}
while(fabs(dblQN - dblQN0) >= 0.05);
g_iProgress += 15;
if(g_iProgress > 90)
g_iProgress = 90;
//吸入效率
if( dblBx == 0)
{
dblDOL = dblDIC;//正循环
dblDIL = dblDOT;
}
else
{
dblDOL = dblDIT;//反循环
dblDIL = 0;
}
dblVf = 1 / (1 + 0.0566 * pow((dblQYB / dblPS),1.2));
dblM0 = 0.1;
dblNDO = 0;
do
{
dblNDO = dblNDO + 1;
dblM = dblM0;
dblQS = dblQN * dblVf * (dblM + dblM0) / 2;
if( dblQS < 0)
{
dblQS = 0;
}
if( strDDLY == "水")
{
dblQW = dblQS * dblFW + dblQN;
dblQO = dblQS * (1 - dblFW);
}
else
{
dblQW = dblQS * dblFW;
dblQO = dblQS * (1 - dblFW) + dblQN;
}
dblQG = dblQS * dblQYB;
//计算返出压力Pd
//多相流(dblPD, 井口压力, T井口, dblTG, dblQG, dblQW, dblQO, dblGG, dblGW, dblOG, 泵挂深度, dblDOL, dblDIL, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, 1, iMMPF)
dblPD=zpjjs.dxl(iMMPF,dblJKYL, dblTJK, dblTG, dblQG, dblQW, dblQO, dblGG, dblGW, dblOG, dblBGSD, dblDOL, dblDIL, dblRR, dblH2S, dblCO2, dblN2, dblNaCl, 0, 1, 1);
//确定损失系数
//射流泵损失系数(dblKj, dblKs, dblKt, dblKd, dblKtd, dblIc, 气水比, dblPS / dblPN, dblRa, D损失系数)
SHlb.slbssxs(dblQYB, dblPS / dblPN, dblRa, int(dblDSSXS));
dblKj=SHlb.KJ;
dblKs=SHlb.KS;
dblKt=SHlb.KT;
dblKd=SHlb.KD;
dblKtd=SHlb.KTD;
dblIc=SHlb.IC;
iK=int(10000 * (dblPD - dblPS) / (dblPN - dblPD));
dblH = double(iK) / 10000.0; //无因次压力比
//计算无因次流量比
dblX1 = (1 + dblKtd) * pow(dblRa,2);
dblX2 = (1 - 2 * dblRa) * pow(dblRa,2) / pow((1 - dblRa),2) - dblX1;
dblM0 = dblX1 / dblX2 + pow((pow((dblX1 / dblX2),2) - (2 * dblRa - dblX1) / dblX2 + (1 + dblKj) * dblH / dblX2 / (1 + dblH)),0.5);
if( dblM0 < 0)
{
dblM0 = 0;
}
}
while(fabs(dblM0 - dblM) > 0.002 && dblNDO != 100);
iK=int(100 * dblQS);
dblResult[2 * iTemp05 + 1][iTemp04] = double(iK) / 100.0;
}
else
{
dblResult[2 * iTemp05 + 1][iTemp04] = dblResult[3][iTemp04];
}
}
gcvt(dblResult[0][iTemp04],95,szTemp);
strA = szTemp;
for(iTemp05=1;iTemp05<=2 * iFXCount[iTemp01] + 1;iTemp05++)
{
gcvt(dblResult[iTemp05][iTemp04],95,szTemp);
strA = strA + "\t" + szTemp;
}
strA=strA+"\n";
try
{
stdfRes.WriteString(strA);
}
catch (CFileException exception3)
{
AfxMessageBox("Error reading file");
return;
}
if( dblResult[2][iTemp04] + dblResult[4][iTemp04] + dblResult[6][iTemp04] + dblResult[8][iTemp04] + dblResult[10][iTemp04] <= 1)
{
iYjjsdds = iTemp04;
break;
}
iYjjsdds = iTemp04;
}
//AfxMessageBox(strA1);
for(iTemp05=1;iTemp05<=iFXCount[iTemp01];iTemp05++)
{
dblP = 0;
dblQ = 0;
for(iTemp04=2;iTemp04<=iDJYLDS;iTemp04++)
{
dblQ1 = dblResult[0][iTemp04 - 1];
dblQ2 = dblResult[0][iTemp04];
if( ((iTemp01 == 1 || iTemp01 == 6) && iTemp05 == 1) || (iTemp01 == 4 && (iTemp05 == 1 || dblDVW > dblDJP)) || iTemp01 == 2 || iTemp01 == 3 || iTemp01 == 5)
{
dblPI1 = dblResult[2 * iTemp05][iTemp04 - 1];
dblPI2 = dblResult[2 * iTemp05][iTemp04];
}
else
{
dblPI1 = dblResult[2][iTemp04 - 1];
dblPI2 = dblResult[2][iTemp04];
}
if( ((iTemp01 == 2 || iTemp01 == 3) && iTemp05 == 1) || (iTemp01 != 2 && iTemp01 != 3))
{
dblPO1 = dblResult[2 * iTemp05 + 1][iTemp04 - 1];
dblPO2 = dblResult[2 * iTemp05 + 1][iTemp04];
}
else
{
dblPO1 = dblResult[3][iTemp04 - 1];
dblPO2 = dblResult[3][iTemp04];
}
if( dblPI1 >= dblPO1 && dblPI2 <= dblPO2)
{
//求交点(dblQ, dblP, dblQ1, dblQ2, dblPI1, dblPO1, dblPI2, dblPO2);
lzxjdjs.qlzxjd(dblQ1, dblQ2, dblPI1, dblPO1, dblPI2, dblPO2);
dblQ=lzxjdjs.Y;
dblP=lzxjdjs.X;
break;
}
}
if( dblP > 0)
{
iK=int(100 * dblP);
dblPY[iTemp05] = double(iK) / 100;
}
else
{
dblPY[iTemp05] = 0;
}
if( dblQ > 0)
{
iK=int(10 * dblQ);
dblQX[iTemp05] = double(iK) / 10.0;
}
else
{
dblQX[iTemp05] = 0;
}
}
// hss
// CString strA1;
//AfxMessageBox(strA1);
strA1 = "";
/*
if(!strA1.IsEmpty())
strA1.Empty();
*/
//strA1 =strA1+"节点压力(MPa)$13\t$14";
strA1 = "节点压力(MPa)$13\t$14";
// hss
//strA2="";
// CString strA2;
//strA2 =strA2+ "井产水量(m^3/d)$13\t$14";
strA2 = "井产水量(m^3/d)$13\t$14";
for(int iTemp05=1;iTemp05<=iFXCount[iTemp01];iTemp05++)
{
gcvt(dblPY[iTemp05],95,szTemp);
strA1 = strA1 + "\t" + szTemp + "$13\t$14";
gcvt(dblQX[iTemp05],95,szTemp);
strA2 = strA2 + "\t" + szTemp + "$13\t$14";
}
strA1=strA1+"\n";
try
{
stdfRes.WriteString(strA1);
}
catch (CFileException exception3)
{
AfxMessageBox("Error reading file");
return;
}
strA2=strA2+"\n";
try
{
stdfRes.WriteString(strA2);
}
catch (CFileException exception3)
{
AfxMessageBox("Error reading file");
return;
}
dblQXMax = 0;
dblPYMax = 0;
for(iTemp05=1;iTemp05<=iFXCount[iTemp01];iTemp05++)
{
if( ((iTemp01 == 1 || iTemp01 == 6) && iTemp05 == 1) || (iTemp01 == 4 && (iTemp05 == 1 || dblDVW > dblDJP)) || iTemp01 == 2 || iTemp01 == 3 || iTemp01 == 5)
{
for(iTemp04=1;iTemp04<=iYjjsdds;iTemp04++)
{
gcvt(dblResult[2 * iTemp05][iTemp04],95,szTemp);
strTitle=szTemp;
gcvt(dblResult[0][iTemp04],95,szTemp);
strTitle=" "+ strTitle + " " + szTemp +" \n";
try
{
stdfGraph.WriteString(strTitle);
}
catch (CFileException exception4)
{
AfxMessageBox("Error reading file");
return;
}
if( dblQXMax <= dblResult[2 * iTemp05][iTemp04])
{
dblQXMax = dblResult[2 * iTemp05][iTemp04];
}
if( dblPYMax <= dblResult[0][iTemp04])
{
dblPYMax = dblResult[0][iTemp04];
}
if( dblResult[2 * iTemp05][iTemp04] == 0)
{
break;
}
}
if( (iTemp01 == 1 || iTemp01 == 6) && iTemp05 == 1)
{
try
{
stdfGraph.WriteString("-1 -1\n");
// stdfGraph.WriteString(" 0 1\n");
// hss
//stdfGraph.WriteString(cGraphColor[iColorIndex++]);
stdfGraph.WriteString(" 32768 1 \n");
iColorIndex %= iGraphColorNum;
stdfGraph.WriteString("流入 \n");
}
catch (CFileException exception4)
{
AfxMessageBox("Error reading file");
return;
}
}
else if( dblCSZ[iTemp01][iTemp05] > 0)
{
gcvt(dblCSZ[iTemp01][iTemp05],95,szTemp);
strTitle=szTemp;
strTitle.TrimLeft();
strTitle1="";
strTitle1=strTitle1+ "流入(" + " " + strFxcs + " " + strTitle + " " + ")" + " \n";
try
{
stdfGraph.WriteString("-1 -1 \n");
// stdfGraph.WriteString(" 0 1\n");
// hss
//stdfGraph.WriteString(cGraphColor[iColorIndex++]);
stdfGraph.WriteString(" 32768 1 \n");
iColorIndex %= iGraphColorNum;
stdfGraph.WriteString(strTitle1);
}
catch (CFileException exception4)
{
AfxMessageBox("Error reading file");
return;
}
}
}
if( ((iTemp01 == 2 || iTemp01 == 3) && iTemp05 == 1) || (iTemp01 != 2 && iTemp01 != 3))
{
for(iTemp04=1;iTemp04<=iYjjsdds;iTemp04++)
{
if( dblResult[2 * iTemp05 + 1][iTemp04] > dblQXMax || dblResult[0][iTemp04] > dblPYMax)
{
break;
}
gcvt(dblResult[2 * iTemp05 + 1][iTemp04],95,szTemp);
strTitle=szTemp;
gcvt(dblResult[0][iTemp04],95,szTemp);
strTitle= " " + strTitle + " " + szTemp + " \n";
try
{
stdfGraph.WriteString(strTitle);
}
catch (CFileException exception4)
{
AfxMessageBox("Error reading file");
return;
}
}
if( (iTemp01 == 2 || iTemp01 == 3) && iTemp05 == 1)
{
try
{
stdfGraph.WriteString("-1 -1 \n");
// stdfGraph.WriteString(" 0 1\n");
// hss
//stdfGraph.WriteString(cGraphColor[iColorIndex++]);
stdfGraph.WriteString(" 32768 1 \n");
iColorIndex %= iGraphColorNum;
stdfGraph.WriteString("流出 \n");
}
catch (CFileException exception4)
{
AfxMessageBox("Error reading file");
return;
}
}
else if( dblCSZ[iTemp01][iTemp05] > 0)
{
gcvt(dblCSZ[iTemp01][iTemp05],95,szTemp);
strTitle=szTemp;
strTitle.TrimLeft();
strTitle1="";
strTitle1=strTitle1 + "流出( " + strFxcs + " " + strTitle + " ) \n";
try
{
stdfGraph.WriteString("-1 -1 \n");
// stdfGraph.WriteString(" 0 1\n");
// hss
// stdfGraph.WriteString(cGraphColor[iColorIndex++]);
stdfGraph.WriteString(" 32768 1 \n");
iColorIndex %= iGraphColorNum;
stdfGraph.WriteString(strTitle1);
}
catch (CFileException exception4)
{
AfxMessageBox("Error reading file");
return;
}
}
}
}
for(iTemp04=1;iTemp04<=iYjjsdds;iTemp04++)
{
if( dblResult[1][iTemp04] > dblQXMax || dblResult[0][iTemp04] > dblPYMax)
{
break;
}
gcvt(dblResult[1][iTemp04],95,szTemp);
strTitle=szTemp;
gcvt(dblResult[0][iTemp04],95,szTemp);
strTitle=" " + strTitle + " " + szTemp + "\n";
try
{
stdfGraph.WriteString(strTitle);
}
catch (CFileException exception4)
{
AfxMessageBox("Error writing file");
return;
}
}
try
{
stdfGraph.WriteString("-1 -1 \n");
// stdfGraph.WriteString(" 0 1\n");
// hss
//stdfGraph.WriteString(cGraphColor[iColorIndex++]);
stdfGraph.WriteString(" 32768 1 \n");
iColorIndex %= iGraphColorNum;
stdfGraph.WriteString("气蚀关系 \n");
stdfGraph.WriteString("-10 -10 \n");
}
catch (CFileException exception4)
{
AfxMessageBox("Error reading file");
return;
}
}
try
{
stdfRes.WriteString("8\n");
}
catch (CFileException exception3)
{
AfxMessageBox("Error writing file");
return;
}
stdfRes.Close();
stdfGraph.Close();
g_iProgress = 100;
CopyFile(stdfRes.GetFilePath(), ((CCVenusApp*)AfxGetApp())->GetMyAppPath() + _T("\\tempfile.txt"),FALSE);
CopyFile(stdfGraph.GetFilePath(), ((CCVenusApp*)AfxGetApp())->GetMyAppPath() + _T("\\tempfile.gra"),FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -