- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
楼主 |
发表于 2013-10-31 16:30:23
|
显示全部楼层
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
double Kh;//水平方向的渗透率
double Kv;//垂直方向的渗透率
double l;//水平井的水平段长
double h;//油藏厚度
double czkx;//垂直方向的孔隙度ϕv
double spkx;//水平方向的孔隙度ϕh
double c;//稠度系数c(mPa·s)
double t;//迂曲度t
double n;//幂律指数n
double rw;//井眼半径 r_w(m)
double B;//地层体积系数B
double Pe;//油藏边界压力Pe(MPa)
double Pw;//井底压力Pw(MPa)
private void button1_Click(object sender, RoutedEventArgs e)
{
Kh = double.Parse(textBox18..Text);//水平方向的渗透率
Kv = double.Parse(textBox17.Text);//垂直方向的渗透率
l = double.Parse(textBox11.Text);//水平井的水平段长
h = double.Parse(textBox15.Text);//油藏厚度
czkx = double.Parse(textBox19.Text);//垂直方向的孔隙度ϕv
spkx = double.Parse(textBox20.Text);//水平方向的孔隙度ϕh
c = double.Parse(textBox4.Text);//稠度系数c(mPa·s)
t = double.Parse(textBox5.Text);//迂曲度t
n = double.Parse(textBox3.Text);//幂律指数n
rw = double.Parse(textBox9.Text);//井眼半径 r_w(m)
B = double.Parse(textBox10.Text);//地层体积系数B
Pe = double.Parse(textBox1.Text);//油藏边界压力Pe(MPa)
Pw = double.Parse(textBox13.Text);//井底压力Pw(MPa)
double CP;
double xishu;
double x;
double F;
double M;
double M1;
double Q1;
double Q2;
double Q;
double gxyx;
gxyx = Math.Sqrt(Kh / Kv);
CP=Pe-Pw;
Q2=(1+gxyx)*rw/l;
xishu = Math.Sqrt(Kh * Kv);
x = Math.Sqrt(czkx * spkx);
F = (Math.Sqrt(Kv * l * l + Kh * h * h) - Math.Sqrt(Kv) * l) / (Math.Sqrt(Kv * l * l + Kh * h * h) + Math.Sqrt(Kv) * l);
M1 = n * t * Math.Sqrt(8 * xishu * x) / (3 * n + 1);
M = xishu /c * Math.Pow(M1, (n-1));
Q1=3.14*12*M*CP/B/(3*Math.Log(F)-Math.Log(0.25*Q2)-4*Math.Log(0.5*Q2));
Q = Math.Pow(Q1, 1 / n) * Math.Pow(gxyx, -0.5) * l;
textBox2.Text = Q.ToString();
}
private void button2_Click(object sender, RoutedEventArgs e)
{
}
}
}
[/code] |
|