| 
 
积分40186好友记录主题帖子听众收听 
 | 
 
 
 楼主|
发表于 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]
 | 
 |