Upload
richard-chan
View
221
Download
0
Embed Size (px)
Citation preview
8/13/2019 Codes for Pte 508 Hw 7
http://slidepdf.com/reader/full/codes-for-pte-508-hw-7 1/7
The following function ‘thomas23’ calculates the pressure distribution at t=10 days. function x=thomas23(n,P0) % Thomas algorithm for solving tri-diagonal matrix % Prepared by Richard Chandra Chan for PTE 508 HW#7 % State the properties of 1-D porous medium system phi=0.2; % Porosity k=100; % Permeability in md mu=10; % Viscosity in cp c_t=1.5/10^5; % Total compressibility in psi^-1 L=10000; % Length of system in ft dy=100; % Length of the drainage areas in the y direction in ft dz=50; % Length of the drainage areas in the z diretion in ft % 1-D system uses block-centered configuration dx=L/n; % Length of one interval dt=10; % Time step in days % well information
q_p=20; % rB/d % Definition of beta beta=(158*phi*mu*c_t)/k; % Definition of zeta zeta=2+(beta*(((dx)^2)/dt)); % Definition of alpha alpha=(887.53*q_p*mu)/(k*dy*dz); % Defining the a, b, and c vectors a=[0;ones(n-1,1)]; b=[1-zeta;repmat(-zeta,n-2,1);1-zeta]; c=[ones(n-1,1);0]; % At t=10 days, previous time is at t=0 days where pressure at all locationsis at 3000 psia v=repmat((2-zeta)*P0,n,1); s=(n-1)/2; v_w=[zeros(s,1);alpha*dx;zeros(s,1)]; d=v+v_w;w(1)=c(1)/b(1); g(1)=d(1)/b(1); for z=2:n-1 w(z)=c(z)/(b(z)-a(z)*w(z-1)); end for z=2:n g(z)=(d(z)-a(z)*g(z-1))/(b(z)-a(z)*w(z-1)); end x(n)=g(n); for k=n-1:-1:1
x(k)=g(k)-w(k)*x(k+1); end x=x';
The following function ‘thomas24’ calculates the pressure distribution at t=20 days. function x=thomas24(n,P0) % Thomas algorithm for solving tri-diagonal matrix % Prepared by Richard Chandra Chan for PTE 508 HW#7 % State the properties of 1-D porous medium system
8/13/2019 Codes for Pte 508 Hw 7
http://slidepdf.com/reader/full/codes-for-pte-508-hw-7 2/7
phi=0.2; % Porosity k=100; % Permeability in md mu=10; % Viscosity in cp c_t=1.5/10^5; % Total compressibility in psi^-1 L=10000; % Length of system in ft dy=100; % Length of the drainage areas in the y direction in ft dz=50; % Length of the drainage areas in the z diretion in ft % 1-D system uses block-centered configuration dx=L/n; % Length of one interval dt=10; % Time step in days % well information q_p=20; % rB/d % Definition of beta beta=(158*phi*mu*c_t)/k; % Definition of zeta zeta=2+(beta*(((dx)^2)/dt)); % Definition of alpha alpha=(887.53*q_p*mu)/(k*dy*dz); % Defining the a, b, and c vectors a=[0;ones(n-1,1)];
b=[1-zeta;repmat(-zeta,n-2,1);1-zeta]; c=[ones(n-1,1);0]; % At t=20 days, previous time is at t=10 daysP_ten=thomas23(n,P0); v=(2-zeta)*P_ten; s=(n-1)/2; v_w=[zeros(s,1);alpha*dx;zeros(s,1)]; d=v+v_w; w(1)=c(1)/b(1); g(1)=d(1)/b(1); for z=2:n-1 w(z)=c(z)/(b(z)-a(z)*w(z-1)); end for z=2:n g(z)=(d(z)-a(z)*g(z-1))/(b(z)-a(z)*w(z-1)); end x(n)=g(n); for k=n-1:-1:1 x(k)=g(k)-w(k)*x(k+1); end x=x';
The following function ‘thomas25’ calculates the pressure distribution at t=30 days. function x=thomas25(n,P0) % Thomas algorithm for solving tri-diagonal matrix % Prepared by Richard Chandra Chan for PTE 508 HW#7 % State the properties of 1-D porous medium system phi=0.2; % Porosity k=100; % Permeability in md mu=10; % Viscosity in cp c_t=1.5/10^5; % Total compressibility in psi^-1 L=10000; % Length of system in ft dy=100; % Length of the drainage areas in the y direction in ft dz=50; % Length of the drainage areas in the z diretion in ft % 1-D system uses block-centered configuration
8/13/2019 Codes for Pte 508 Hw 7
http://slidepdf.com/reader/full/codes-for-pte-508-hw-7 3/7
dx=L/n; % Length of one interval dt=10; % Time step in days % well information q_p=20; % rB/d % Definition of beta beta=(158*phi*mu*c_t)/k; % Definition of zeta zeta=2+(beta*(((dx)^2)/dt)); % Definition of alpha alpha=(887.53*q_p*mu)/(k*dy*dz); % Defining the a, b, and c vectors a=[0;ones(n-1,1)]; b=[1-zeta;repmat(-zeta,n-2,1);1-zeta]; c=[ones(n-1,1);0]; % At t=30 days, previous time is at t=20 daysP_twenty=thomas24(n,P0); v=(2-zeta)*P_twenty; s=(n-1)/2; v_w=[zeros(s,1);alpha*dx;zeros(s,1)]; d=v+v_w;
w(1)=c(1)/b(1); g(1)=d(1)/b(1); for z=2:n-1 w(z)=c(z)/(b(z)-a(z)*w(z-1)); end for z=2:n g(z)=(d(z)-a(z)*g(z-1))/(b(z)-a(z)*w(z-1)); end x(n)=g(n); for k=n-1:-1:1 x(k)=g(k)-w(k)*x(k+1); end x=x';
The following function ‘thomas26’ calculates the pressure distribution at t=40 days. function x=thomas26(n,P0) % Thomas algorithm for solving tri-diagonal matrix % Prepared by Richard Chandra Chan for PTE 508 HW#7 % State the properties of 1-D porous medium system phi=0.2; % Porosity k=100; % Permeability in md mu=10; % Viscosity in cp c_t=1.5/10^5; % Total compressibility in psi^-1 L=10000; % Length of system in ft dy=100; % Length of the drainage areas in the y direction in ft dz=50; % Length of the drainage areas in the z diretion in ft % 1-D system uses block-centered configuration dx=L/n; % Length of one interval dt=10; % Time step in days % well information q_p=20; % rB/d % Definition of beta beta=(158*phi*mu*c_t)/k; % Definition of zeta zeta=2+(beta*(((dx)^2)/dt));
8/13/2019 Codes for Pte 508 Hw 7
http://slidepdf.com/reader/full/codes-for-pte-508-hw-7 4/7
% Definition of alpha alpha=(887.53*q_p*mu)/(k*dy*dz); % Defining the a, b, and c vectors a=[0;ones(n-1,1)]; b=[1-zeta;repmat(-zeta,n-2,1);1-zeta]; c=[ones(n-1,1);0]; % At t=40 days, previous time is at t=30 daysP_thirty=thomas25(n,P0); v=(2-zeta)*P_thirty; s=(n-1)/2; v_w=[zeros(s,1);alpha*dx;zeros(s,1)]; d=v+v_w; w(1)=c(1)/b(1); g(1)=d(1)/b(1); for z=2:n-1 w(z)=c(z)/(b(z)-a(z)*w(z-1)); end for z=2:n g(z)=(d(z)-a(z)*g(z-1))/(b(z)-a(z)*w(z-1)); end
x(n)=g(n); for k=n-1:-1:1 x(k)=g(k)-w(k)*x(k+1); end x=x';
The following function ‘thomas27’ calculates the pressure distribution at t=50 days. function x=thomas27(n,P0) % Thomas algorithm for solving tri-diagonal matrix % Prepared by Richard Chandra Chan for PTE 508 HW#7 % State the properties of 1-D porous medium system phi=0.2; % Porosity k=100; % Permeability in md
mu=10; % Viscosity in cp c_t=1.5/10^5; % Total compressibility in psi^-1 L=10000; % Length of system in ft dy=100; % Length of the drainage areas in the y direction in ft dz=50; % Length of the drainage areas in the z diretion in ft % 1-D system uses block-centered configuration dx=L/n; % Length of one interval dt=10; % Time step in days % well information q_p=20; % rB/d % Definition of beta beta=(158*phi*mu*c_t)/k; % Definition of zeta zeta=2+(beta*(((dx)^2)/dt)); % Definition of alpha alpha=(887.53*q_p*mu)/(k*dy*dz); % Defining the a, b, and c vectors a=[0;ones(n-1,1)]; b=[1-zeta;repmat(-zeta,n-2,1);1-zeta]; c=[ones(n-1,1);0]; % At t=50 days, previous time is at t=40 daysP_forty=thomas26(n,P0); v=(2-zeta)*P_forty;
8/13/2019 Codes for Pte 508 Hw 7
http://slidepdf.com/reader/full/codes-for-pte-508-hw-7 5/7
s=(n-1)/2; v_w=[zeros(s,1);alpha*dx;zeros(s,1)]; d=v+v_w; w(1)=c(1)/b(1); g(1)=d(1)/b(1); for z=2:n-1 w(z)=c(z)/(b(z)-a(z)*w(z-1)); end for z=2:n g(z)=(d(z)-a(z)*g(z-1))/(b(z)-a(z)*w(z-1)); end x(n)=g(n); for k=n-1:-1:1 x(k)=g(k)-w(k)*x(k+1); end x=x';
For generating the output in question 3(c) at the various time:% Pressure value of Pi for i=1 to 9 at t=10 days x_10days=thomas23(9,3000); P_10days=x_10days'
% Pressure value of Pi for i=1 to 9 at t=20 days x_20days=thomas24(9,3000); P_20days=x_20days'
% Pressure value of Pi for i=1 to 9 at t=30 days x_30days=thomas25(9,3000); P_30days=x_30days'
% Pressure value of Pi for i=1 to 9 at t=40 days x_40days=thomas26(9,3000); P_40days=x_40days'
% Pressure value of Pi for i=1 to 9 at t=50 days x_50days=thomas27(9,3000); P_50days=x_50days'
Results are as follows:
>> output2
P_10days =
1.0e+003 *
3.0000 2.9999 2.9991 2.9933 2.9480 2.9933 2.9991 2.9999 3.0000
P_20days =
1.0e+003 *
8/13/2019 Codes for Pte 508 Hw 7
http://slidepdf.com/reader/full/codes-for-pte-508-hw-7 6/7
2.9999 2.9995 2.9971 2.9827 2.9066 2.9827 2.9971 2.9995 2.9999
P_30days =
1.0e+003 *
2.9998 2.9988 2.9939 2.9701 2.8726 2.9701 2.9939 2.9988 2.9998
P_40days =
1.0e+003 *
2.9995 2.9977 2.9896 2.9565 2.8437 2.9565 2.9896 2.9977 2.9995
P_50days =
1.0e+003 *
2.9990 2.9962 2.9845 2.9425 2.8186 2.9425 2.9845 2.9962 2.9990
The graph in question 3(d) can be generated using the following code:n=9; % Pressure distribution at t=0 day P22=repmat(3000,9,1); x22=P22'; % Pressure distribution at t=10 days x23=thomas23(9,3000); % Pressure distribution at t=20 days
x24=thomas24(9,3000); % Pressure distribution at t=30 days x25=thomas25(9,3000); % Pressure distribution at t=40 days x26=thomas26(9,3000); % Pressure distribution at t=50 days x27=thomas27(9,3000); L=10000; s=(L/(2*n)):(L/n):((17*L)/(2*n)); plot(s',x22,'y',s',x23,'b',s',x24,'r',s',x25,'g',s',x26,'k',s',x27,'m'); hleg=legend('t=0day','t=10days','t=20days','t=30days','t=40days','t=50days','Location','NorthEastOutside'); set(hleg,'FontAngle','italic'); xlabel('x(ft)'); ylabel('P(psia)');
Results:
8/13/2019 Codes for Pte 508 Hw 7
http://slidepdf.com/reader/full/codes-for-pte-508-hw-7 7/7
0 2000 4000 6000 8000 100002800
2820
2840
2860
2880
2900
2920
2940
2960
2980
3000
x(ft)
P ( p s i a )
t=0day
t=10days
t=20days
t=30days
t=40days
t=50days