!"#$%&'#()( ")+#,")- )!./",0) (% 012#+,
3)+!-.)( (% #"4%"#%&5)
)")-#'#' "!0%+, !', (% -,' 0%.,(,' "!0%+,' %" -) '#0!-)+#," "!0%+) (% 6)+#0#%".,'
7&,3%',&8 $#+.,& 7#"#--) 0,&)"
)-!0",'8
!"#$%& #()"& *"&% +,-& .&$(/-&+(" &0/!1.2 #()"&
3%+9) (% %".&%4)8 :; (% )<- =>:?
&34567839: :54;<387 =7<7 >6 ?65@A B> C7D>D <>76>D A 78>3E> F >6 5DA B> 4;EABAD :54;<38AD =7<7 D5 DA65839:G -:E
:EAD !"# %&'()(*+,"# #"+ *#,-.',.- /*"01/(' 2"-)&3 & ,-&45# 3*0 ,(*)6" 6")*3(" 3* #*3()*+,&'(1+ % 7.* '"+,(*+*+ &0/8+ 20.(3" *+,-&)6&3"9 !"# %&'()(*+,"# #* 6.*3*+ '0(2('&- 3* &'.*-3" &0 20.(3" 7.* '"+,(*+*+ " 3* &'.*-3" &0 ,(6" 3* -"'&9
&34567839: !& #().0&'(1+ 3* %&'()(*+,"# '")" :*--&)(*+,& #.-/* 3.-&+,* 0"# &;"# <= '"+ *0 &./* 3* +.*4 ,*'+"0"/> % *4"0.'("+& '"+2"-)* & *#, )(#) ? )*3(3& 7.* #* "@,(*+*+ )A# 3&,"# 0& #().0&'(1+ #* 4.*04* )A# 6-*'(#&B *C(#,* .+& )*D"- -*6-*#*+,&'(1+ % *#,A ) '&0(@-&3"9 !"# #().0&3"-*# .,(0(E&3"# *+ 0& (+/*+(*->& 3* 6*-2"-&'(1+ #"+ .,(0(E&3"# 6&-& 00*4&- & '&@" 6-*3(''("+*# 3*0 '")6"-,&)(*+," 3* .+ 6"E" " %&'()(*+," 3* / !"# 6&-A)*,-"# 7.* #* 6.*3*+ "@,*+*- 3* *#,& #().0&'(1+ #"+F 4"0.)*+ 3* /B ,& 3* 6-"3.''(1+B '")6"-,&)(*+," 3(+A)('" 3*0 6"E" % 0& 3(#,-(@.'(1+ 3* 0 6-*#("+*#9 G0 "@D*,(4" 3* 0"# #().0&3"-*# *# 0& '"+#,-.''(1+ 3* .+ )"3*0" 3* #().0&'(1+ +.)5-('& 6&-& *0 20.D" 3* /*# " &'*(,*9 !"# )5,"3"# (,*-&,(4"# #"+ ).% .,(0(E&3"# %& 7.* ,(*+*+ .+ )*D"- 3*#*)6*;" *+ 6-"@0*) 3"+3* *0 +8)*-" 3* *'.&'("+*# *# ).% /-&+3*9
G0 .#" 3* 0"# @0"7.*# 3* )&00& 6-"6"-'("+&+ .+& :*--&)(*+,& 7.* 6*-)(,* 3*#&--"00&- .+& *'.&'(1+ 3(2*-*+'(&0 7.* '"+#(3*-* 0& '"+#*-4&'(1+ 3* 0& )&9 G0 @0"7.* 3* )&00& .,(0(E&3" *+ 0& #().0&'(1+ ,(*+* 0& *#,-.',.-& #(/.(*+,*B 3"+3* #.# 3()*+#("+*# *#,A+ 3*2(+(3 6"- !"# !$ $ &'
"#$ %'()$ *) +,&&, $) -#.$/0(1). -#.$2*)03.*#&, 4)#-, *)& 1,-2+2)./#6 )& 70#-)$# *) 8&(9# , ,$2+2&,06 0)-(0$#$ -#+7(/,-2#.,&)$6 )& /2)+7# *) 70#-)$#6 )./0) #/0#$:
H+ *D*)60" ).% '"+"'(3" *# *0 '")60*D" I&+,&-*00B 3"+3* #* ,(*+* .+ #(#,*)& 3* *'.&'("+*# 3* JK=B=== *'.&'("+*# &0/*@-&(' +"L0(+*&0*#9
,DA B> 4;EABAD :54;<38AD !"# )"3*0"# -*'(*+,*)*+,* 3*#&--"00&3"# 6&-& 0& #().0&'(1+ 3* %&'()(*+,"# '"+#(3*-&+ *0 20.D" 3* )80,(60*# '")6"+*+,*# *+ .+ %&'()(*+," 7.* *#,A 3(4(3(3" *+ .+& /-&+ '&+,(3&3 3* '")6"+*+,*# ,-(3()*+#("+&0*# '"+"'(3"# '")" '*03 3* '.&3-('.0 !& 0*% 3* M&-'% % 0& 3* '"+#*-4&'(1+ 3* 0& )&B &3*)A# 3*0 *7.(0(@-("
,*-)"3(+A)('" 3* '")6"+*+,*# *+,-* 2*#B #"+ 6&-,* 3* 0 *'.&'("+*# 7.* 3*#'-(@*+ *0 20.D" *+,-&+,* % #&0(*+,* 3* *#, '*03 !& 0*% 3* M&-'% *#,A 3*2(+(3& '")"F ( )*
+, !. - !/
M"+3* N *# 0& 6*-)*&@(0(3&3B ? *# *0 A-*& 3* #*''(1+ 3* 20.D"B - *# 0& 4(#'"#(3&3 3*0 20.(3"9 !.*/"B 4&0.&+3" 0& 0*% 3* M&-'% 6&-& *0 20.D" 3* )& *+ 0& )&00& *+ *0 ,(*)6"F
O&-& *#,* '" - % . #"+ ,")&3"# '")" 0"# 6-")*3("# *+,-* 0"# 3"# @0"7.*# 3* )&00& (+3('&3"# *+ *0 ,5-)(+" 3* 20.D"9 !& 2"-)& )&,-('(&0 3* 0& *'.&'(1+ #* 6.*3* 3*#'-(@(- '")"F
!"# '"*2('(*+,*# 3* 0& )&,-(E 3*6*+3*+ 3* 0& 6-*#(1+P+" 0(+*&0Q9 ?0 -*#"04*- #* "@,(*+*+ 0"# 4&0"-*# 3* 0 6-*#("+*#B *#," )*3(&+,* .+ 6-"'*#" (,*-&,(4" +" 0(+*&0 00&)&3" !"#$%&!'( *# +#,"-(./%012-(3 R* '&0'.0& .+& 2.+'(1+ -*#(3.&0 7.* *# .+& 2.+'(1+ 3* 4&-(&@0*# 3*6*+3(*+,*# *+ .+& 6"#('(1+PC=Q % C= ) .+ 6*7.*;" (+'-*)*+,"9 G#," 6*-)(,* '&0'.0&- .+& 0>+*& ,&+/*+'(&0B 7.* &0 *C,-&6"0&-0&B 6-*3('* *0 4&0"- 7.* ,")&-A '.&+3" *0 -*#(3.&0 4&%& & '*-" *+ CS9 G#,* 6-"'*3()(*+," #* '&0'.0& 3* )"3" (,*-&,(4" :,& '.)60('"+ 0& ,"0*-&+'(& 3&3& *+ .+ 6-(+'(6("9
.@>4=6A &34567839: >: 5:7 B34>:D39: T*#"04*- *0 #(/.(*+,* 6-"@0*)& '"+ 0 '"+3('("+*# (+>'(&0*# % 3* 2-"+,*-& '"+ *0 )5,"3" 3* 3(2*-*+'( 2(+(, UV SW X4* Y - V Z= X&0Y
'V [WCS=L< X 567089 YLS !V SB=== X 0!#2Y !V =9SW
!& '"+3('(1+ (+('(&0 *# . "# 0 ) 1#2003
45
678
03
45
67 ;
9
%
. <00# : ) 1#2003
45
67 ;
99
!"#
9 ! '"+3('("+*# 3* 2-"+,*-& #"+ . 0# : )
6&-A)*,-"#
3*0
)"3*0"
#"+F
!" )
1003.=>?9@AB,C ) 11D% : ) E03F=G?9
&A65839:G G#,* 6-"@0*)& #* 6.*3* #"0.'("+&- *#'-(@(*+3" .+ 6-"/-&)& *+ 0*+/.&D* \]T^T?_ 7.* 6*-)(,& *0 .#" 3* 0 (,*-&'("+*#9 ? '"+,(+.&'(1+ #* *#'-(@*+ 0
*#6*'(2('&'("+*# 3*0 6-"/-&)& 6&-& -*#"04*- *0 6-"@0*)& % 3&- 0"# -*#.0,&3"# 3* 0 6-*#("+*# 6&-& '&3& 6" 3* ,(*)6"9 PROGRAM ejemplo2_1 !============================================================ ! Programa para resolver la ecuación de difusión fijando ! las presiones como fronteras DIMENSION a(105),b(105),c(105),d(105),p(105),pn(105) WRITE (*,*) ‘imax, delt’ READ(*,*) imax, delt pini = 1800. xlong= 1000. c1=0. c2=1800. delx = xlong /(imax-1) poro=0.15 perm=15. visc=20. comp=35.E-6 tiempo=90. alfa=(poro*visc*comp)/(0.00633*perm)*(delx**2/delt) ! CONDICION INICIAL DO 10 i=1,imax p(i)= pini pn(i)= pini 10 CONTINUE ! PUNTOS INTERNOS DO 20 i=2,imax-1 a(i)=-1 b(i)=2.+alfa c(i)=-1. ;< =>?@A?BC
! CONDICIONES DE FRONTERA b(1)=1. c(1)=0. d(1)=c1 a(imax)=0. b(imax)=1. d(imax)=c2 ! COMIENZAN LOS PASOS DE TIEMPO t=0 30 CONTINUE t=t+delt DO 40 i=2,imax-1 d(i)=alfa*pn(i) 40 CONTINUE CALL thomas(a,b,c,d,p,imax) WRITE(*,800)t,(p(i),i=1,imax) DO 50 i=1,imax pn(i)=p(i) 50 CONTINUE IF (t.LT.tiempo) GO TO 30 800 FORMAT(200F8.1) END PROGRAM !======================================================thomas SUBROUTINE thomas(a,b,c,d,p,n) ! Esta es la solución del sistema de ecuaciones tridiagonales ! a, b, c y d: son los coeficientes de la ecuación, ! a(i)*x(i-1)+b(i)*x(i)+c(i)*x(i+1)=d(i) ! p= vector solución ! n= numero de variables
DIMENSION a(*),b(*),c(*),d(*),p(*),w(101),g(101) w(1)=b(1) g(1)=d(1)/w(1) DO 1 i=2,n w(i)=b(i)-a(i)*c(i-1)/w(i-1) g(i)=(d(i)-a(i)*g(i-1))/w(i) 1 CONTINUE p(n)=g(n) DO 2 i=n-1,1,-1 p(i)=g(i)-c(i)*p(i+1)/w(i) 2 CONTINUE DC@BD?
M* *#,& )&+*-& #* "@,(*+* 7.* 6&-& .+ !: ) HXM(Y 0"# 4&0"-*# 3* 0 6-*#("+*# #"+ #* ).*#,-&+ 3* 0& )&+*-& #(/.(*+,*F
`-&2('&+3"F
G+ *0 '" 3* ,")&- .+& 6-"2.+3(3&3 *#6*'(2('& P*+ *#,* '" CVZ== 6(*#Q #* 6.*3* "@#*-4&- 0& 6*-3(3& 3* 6-*#(1+ '"+ 2"-)* *0 6" 3*0 ,(*)6" *+ *0 %&'()(*+,"9
?#> #* 6.*3* "@#*-4&- *0 '")6"-,&)(*+," 3* 0 6-*#("+*# & 3(2*-*+,*# 6-"2.+3(3&3*# 3* .+ %&'()(*+," '"+ -*#6*'," &0 ,(*)6"9
!A:865D3A:>D !"# )5,"3"# +.)5-('"# &60('&3"# & 0& (+/*+(*->& #"+ ).% 8,(0*# %& 7.* 6*-)(,*+ :&'*- .#" 3* :*--&)(*+, '")6.,&'("+&0*# 6&-& "@,*+*- )*D"-*# -*#.0,&3"# *+ 0& 6-A',('&9 G+ *0 '" 3* *#,* *#,.3("B -*#.0,1 ).% 8,(0 *0 )5,"3" 3* _*a,"+LT&6:#"+ %& 7.* )*3(&+,* 0& (,*-&'(1+ #* 6.3(*-"+ "@,*+*- 0"# 4&0"-*# *#6*-&3"# 6&-& 0& *#,()&'(1+ 3* 0"# 4&0"-*# +*'*#&-("# *+ *#,& -&)& 3* 0& (+/*+(*->&9