simulacion yacimientos petroleo-gas
Post on 25-Dec-2015
38 Views
Preview:
DESCRIPTION
TRANSCRIPT
SIMULADOR DE YACIMIENTO (PETRÓLEO GA
RESUMENSe procedió a realizar un simulador para un yacimiento bifásico en el cual tenemos constantes los caudales y las presiones son desconocidas, para nuestro caso flujo petróleo-gas lineal 3D con malla irregular y para las tres direcciones varían las permeabilidades, las ecuaciones fueron planteadas por el método IMPIS y se resolvió por medio de método LSOR.
Las direcciones de los ejes sera:
Z
X
YTendremos 4 pozos productores.
Porosidad 0.15Espesor 50 ft
μo 1.35 cp
μw 0.4 cp
Flujo bifásico (oil-gas)
→ Balance de masa: la transferencia de masa solo se da en el componente de gas entre fases gas y petróleo. La porción del componente del gas disuelto en la fase aceite es conocida como gas en solución. La componente del gas este contenido en la componente de gas libre y la componente de gas en solución
contenido en la fase aceite. La tasa de transferencia de masa de gas entre fase de aceite y gas (qmtfg , qmtsg¿
(gas libre, gas en solución). La ecuación de balance de materiales para la componente c, sobre un volumen
de control de fluido del yacimiento poroso sobre un intervalo de trabajo 𝝙t es = (mi )c−(mo )c+sc+ (ma )c (9.1)
Donde:
(mi )c = suma de entradas de masa del componente c a través de la superficie de control en
x− Δx2
, y− Δy2
y z− Δz2
sobre el intervalo 𝝙t.
(mo )c = suma de salida de masa del componente c a través de la superficie de control en
x− Δx2
, y− Δy2
y z− Δz2
sobre el intervalo 𝝙t.
sc=suma de la generación de masa y agotamiento de masa a través del componente c en 𝝙t.
(ma )c = acumulación de masa del componente c causada por los cambios de compresibilidad y saturación
de los fluidos en el volumen de control sobre el intervalo 𝝙t.
→ Para el componente c=0,f g , sg; estos términos pueden estar expresados como
(mi )c=[( mcx Ax )x− Δx
2
+(mcy Ay )y−Δy
2
+( mcz A z )z− Δz
2 ]∆ t (9.2)
(mo )c=[ (mcx Ax )x+ Δx
2
+(mcy A y )y+ Δy
2
+ (mcz A z )z+ Δz
2 ]∆ t (9.3)
sc=(qmtc+qmc )∆ t (9.4)
(mo )c=vb [ (mvc A x )t+∆t−(mvc A x )t ] (9.5)
Donde, mc= flujo de masa, A área perpendicular al flujo; mrc= masa por unidad de volumen del medio
poroso, qmtc=tasa de transferencia de masa entre las fases, la cual es positiva para generación y negativa
para el agotamiento; qmc= tasa de agotamiento de masa a través del pozo, el cual es posotivo para la
inyección y negativo para la producción y vb= volumen total del volumen de control.
Sustituyendo (9.2) y (9.5) en (9.1) y reorganizando términos queda
[( mcx Ax )x +Δx
2
−(mcx A x)x− Δx
2 ]∆ t−[ (mcy A y )y +Δy
2
−(mcy Ay )y−Δy
2 ]∆ t−[ (mcz A z )z+ Δz
2
−(mcz A z )z− Δz
2 ]∆ t+(qmtc+qmc )∆ t=vb [ (mvc )t+∆t−(mvc )t ]
(9.6)
Donde c=0, fgy sg.
Dividiendo (9.6) entre ∆ t y multiplicando por 𝝙x, 𝝙y y 𝝙z.[ ( mcx Ax )
x+ Δx2
−(mcx Ax )x−Δx
2
∆ x ]∆ x−[ ( mcy A y )y+ Δy
2
−(mcy A y )y− Δy
2
∆ y ]∆ y−[ (mcz A z )z+ Δz
2
−( mcz A z )z− Δz
2
∆ z ]∆z+(qmtc+qmc )=vb[ (mvc )t+∆t−(mvc )t∆ t ]
(9.7)
Tomando el límite de 𝝙x, 𝝙y, 𝝙z y 𝝙t y sustituyendo por la derivada parcial de la ecuación (9.7 se tiene
−∂∂x
( mcx Ax )∆ x− ∂∂ y
(mcy A y )∆ y− ∂∂ z
(mcz A z )∆ z=vb∂∂ t
(mvc )−qmc−qmtc (9.8)Donde c=0, fg, sg; 𝝙x ≠0, 𝝙y ≠0, 𝝙z ≠0, 𝝙Vb ≠0.Para reservorios con espesor uniforme, se asume que Ax, Ay, Az son independientes de x, y, z respectivamente. En este caso: V b=Δ x Δ y Δ z=Ax∆x=A y∆ y=A z∆ z
Y ∂ Ax∂ x
=∂ A y
∂ y=∂ A z∂ z
=0
Para el aceite y el gas libre, es posible expresar el flujo másico como el producto de la densidad y la velocidad Darcy’s para la fase l; masa por unidad de volumen (ó concentración) como el producto de la porosidad, la fase de saturación, y la densidad de la fase y la tasa de flujo másico como el producto de la tasa de flujo y la densidad volumétrica de las fases para el componente solo del gas, el flujo másico, la masa por unidad de volumen y la tasa de flujo másico puede ser expresada en términos de las propiedades de la fase petróleo RSy Bo y la densidad de la fase gas a condiciones estándar, ρgsc, masa por unidad de volumen, flujo másico y la tasa de flujo, son cantidades que describe componentes, (c=0,f gó sg), mientras que el flujo ó (velocidad volumétrica), tasa de flujo volumétrica, densidad, factor de volumen de la formación (FVF), saturación y la relación de gas en solución de petróleo, describe la fase (l=0 , g). los términos en la ecuación (9.8) puede ser expresados como mc
→
=∝c ρ c μ→
c(9.9a)
Donde c=0 y Fg.(9.9b) mc
→
=(ρgsc R sBo ) μ→
o; donde c=0, f g ; (9.10a) mcx=∝c ρc μcx; donde c=0, f g. (9.10b) mcx=(ρgsc R sBo ) μox donde c=sg(9.11a) mcy=∝c ρc μcy ; donde c=0, f g. (9.11b) mcy=(ρgsc R sBo ) μoy donde c=sg
(9.12a) mcz=∝c ρc μcz ; donde c=0, f g. (9.12b) mcz=( ρgsc RsBo )μoz donde c=sg(9.13a) mvc=∅ ρc sc ; donde c=0,f g. (9.13b) mvc=
∅α c ( ρgsc
RsBo )So donde c=sg
(9.14a) qvc=αc ρcqc ; donde c=0,f g. (9.14b) qvc=(ρgsc R sBo )qo donde c=sgEl termino de la generación puede ser definido como (9.15a) qmtc=0, donde c=0; donde c=sg { qmtc=qmt sg(9.15b)
qmtc=−qmt sg (9.15c) En las ecuaciones 9.15b y 9.15c, qmt sg= tasa de transferencia del componente gas entre las fases gas y aceite, (o entra el gas libre y el gas en solución).para la fase gas, g=f g+sg mientras que ρg=ρ fg, sg=sfg y μg=μfg para la fase gas. La ecuación de conservación de masa para el petróleo, puede ser obtenida por combinación de las ecuaciones 9.8 y 9.10 hasta la 9.15 para c=0 , dividiendo el resultado por α c ρosc ,usando la deformación de Bo; Bo=ρosc / ρo; y qosc= qo
Bo , la ecuación
de conservación de masa para la componente del aceite está dada por: ∂∂ x ( A x
Boμox)∆ x− ∂
∂ y ( A y
Boμoy)∆ y− ∂
∂ z ( A zBo μoz)∆ z=V b
α c
∂∂ t (∅ soBo )−qosc (9.16)
La ecuación de conservación de masa para el componente gas (c=g) es obtenido la ecuación 9.8 para gas libre y gas en solución y sumando las dos ecuaciones para eliminar qmtsg. La ecuación queda:−∂∂x
( mfgx Ax+msgx Ax )∆ x− ∂∂ y
(mfgy A y+msgy A y )∆ y− ∂∂ z
(mfgz A z+msgz A z )∆ z=V b∂∂t
(mvfg+mvsg )−(qmfg+qmsg )
(9.17)Sustituyendo las ecuaciones 9.10 hasta la 9.14 dentro de la ecuación 9.18 y diviendo del resultado por ρgsc y usando la definición de Bg= ρgsc
αc ρc y qosc= qo
Bo y q fgsc=q fgBg ; la
ecuación de conservación de masa para el componente del gas es obtenido,−∂∂x ( AxBg μ fgx+A x
RsBgμosc)∆ x− ∂
∂ y ( A y
Bgμfgy+A y
R sBgμoy)∆ y− ∂
∂ z ( A zBg μ fgz+A zR sBgμoz)∆z=V b
αc
∂∂ t (∅ sgBg +
∅ RsBo
so)−qgsc
(9.19)
Donde qgsc=q fgsc+R sqoscLa ecuación 9.16 y 9.19 son las ecuaciones de conservación de masa para el flujo de aceite y el gas, respectivamente. Para un sistema 3D (rectangular), multifasico, (black oil y gas).
LEY DE DARCY.
Ley de Darcy en una dirección puede ser expresada como:
qAx
=U=−βck xμd∅dx
βc= factor de conversión de unidades del coeficiente de transmisibilidad; k= permeabilidad absoluta de la
roca en dirección de flujo, μ=viscosidad del fluido, ∅=potencial del fluido, U= tasa de flujo por unidad de área de la sección transversal de la sección transversal perpendicular a la dirección de flujo. Para 3D la ley de
Darcy es U→
=−βckμ∇∅ con la definición de gradiente de potencial ∇∅=∇P−r ∇ z.
U→
=−βckμ(∇P−r ∇ z).
Para flujo multifasico la forma extendida de la ley de Darcy está dada por cada fase por cada fase por:
U→
=−βck krlμl
∇∅ l; donde l=o ó gas.
U→
=−βck kr l
μl(∇Pl−γl ∇ z ) (12.25) Donde l = o ó gas; k rl,μl,Pl , γl=permeabilidad relativa, viscosidad,
presión, gravedad del fluido para la fase l, respectivamente.
Ecuaciones de flujo.
La ley de Darcy para flujo multifásico.
Puede ser sustituida dentro de la ecuación de conservación de masa para le aceite y el gas.
∂∂ x (βc AxK x
K ro
μo Bo (∂Po∂ x
−γ o∂Z∂ x ))∆ x+ ∂
∂ y (βc A yK y
K ro
μoBo (∂ Po∂ y
−γo∂Z∂ y ))∆ y+ ∂
∂z (βc A z K z
K ro
μoBo (∂ Po∂z
−γo∂Z∂ z ))∆ z=V b
α c
∂∂t (ϕ SoBo )−qosc [ 1 ]
∂∂ x (βc AxK x
K rg
μgBg (∂ Pg∂ x
−γ g∂ Z∂ x )+βc Ax K x
K roR sμoBo ( ∂Po∂ x
−γ o∂Z∂x ))∆ x+ ∂
∂ y (βc A yK y
K rg
μgBg (∂Pg∂ y
−γ g∂Z∂ y )+βc A yK y
K roRsμoBo ( ∂Po∂ y
−γ o∂ Z∂ y ))∆ y+ ∂
∂ z (βc A z K z
K rg
μgBg (∂ Pg∂ x
−γ g∂ Z∂z )+ βcA zK z
K roR sμoBo ( ∂Po∂ z
−γ o∂Z∂ z ))∆ z=V b
α c
∂∂ t (ϕ SgBg +
ϕ R sSoBo )−qgsc [ 2 ]
qgsc= tasa de producción (inyección) del componente de gas.
Para completar la descripción de flujo se tiene:
Sg+So=1 [ 3 ] y Pcgo=Pg−Po=f (S g) [ 4 ]El modelo de flujo petróleo gas consiste en estas 4 ecuaciones con 4 incognitas: Sg, So , Pg , Po.Reorganizando las ecuaciones 3 y 4, se tiene:
∂∂ x (βc AxK x
K ro
μo Bo (∂Po∂ x
−γ o∂Z∂ x ))∆ x+ ∂
∂ y (βc A yK y
K ro
μoBo (∂ Po∂ y
−γo∂Z∂ y ))∆ y+ ∂
∂z (βc A z K z
K ro
μoBo (∂ Po∂z
−γo∂Z∂ z ))∆ z=V b
α c
∂∂t
¿
∂∂ x (βc AxK x
K rg
μgBg (∂ Po∂ x
+∂Pcgo∂x
−γ g∂ Z∂ x )+βc Ax K x
K roR sμoBo ( ∂Po∂ x
−γ o∂Z∂ x ))∆ x+ ∂
∂ y (βc A yK y
K rg
μgBg (∂Po∂ y
+∂ Pcgo∂ y
−γ g∂Z∂ y )+βc A yK y
K roRsμo Bo ( ∂Po∂ y
−γ o∂ Z∂ y ))∆ y+ ∂
∂ z ( βc A zK z
K rg
μgBg (∂ Po∂z
+∂Pcgo∂ z
−γ g∂ Z∂z )+βc A zK z
K roRsμoBo ( ∂Po∂ z
−γ o∂ Z∂z ))∆ z=V b
αc
∂∂ t
¿
qgsc=q fgsc+R sqosc[ 5 ] y [ 6 ] Se pueden solucionar con condiciones iniciales y de frontera para las incognitas
Sg, So , Pg , Po. Se pueden obtener sustituyendo en las ecuaciones [ 3 ] y [ 4 ].
Flujo multifasico en dos dimensiones: Fluidos Petróleo y gas I) Expansión de la ecuación que rige el sistema 1) expansión de la ecuación asociada al aceite.
∂∂ x ( βc AxK xK ro
μoBo ( ∂ Po∂ x−γo
∂Z∂x ))∆ x+ ∂
∂ y ( βc A y K yK ro
μoBo ( ∂Po∂ y−γ o
∂Z∂ y ))∆ y+qocn=V b
α c
∂∂ t (ϕ SoBo )
Al expandir esta ecuación se debe pensar en las pérdidas o ganancias que se tienen por caídas gravitacionales. Para obtener una ecuación característica se debe pensar en expandir cada uno de los términos de esta manera:
1.1.a)Expansión en la dirección X:
∂∂ x ( βc AxK xK ro
μoBo ( ∂ Po∂ x ))∆ x− ∂∂ x ( βc AxK xK ro
μoBo (γ o ∂ Z∂ x ))∆ xSi el cambio en altura es cero las perdidas gravitacionales son cero.Expandiendo por diferencias finitas la derivada mas externa se transforma en:
1Δ x [( βc A xK xK ro
μoBo )i+12( ∂Po∂x )i+1
2, j , k
−( βc AxK xK ro
μoBo )i−12( ∂Po∂x )i−1
2, j , k ]∆ x−¿
1Δ x [( βc A xK xK ro
μoBo )i+12( γ o∂Z∂ x )i+ 1
2, j ,k
−( βc AxK xK ro
μoBo )i−12( γ o∂Z∂ x )i−1
2, j , k ]∆ x
Las derivadas internas tienen la misma solución
[( βc AxK xK ro
μo Bo∆ x )i+12
(Poi+1, j , k−Poi , j , k)−( βc Ax K x K ro
μoBo∆ x )i−12
(Poi , j ,k−Poi−1, j , k )]−¿
[( βc AxK xK ro
μo Bo∆ x )i+12
γ o (Z i+ 1, j , k−Zi , j , k )−( βc Ax K x K ro
μoBo∆ x )i−12
γ o (Z i , j ,k−Z i−1 , j ,k )]Estos cambios en altura pueden determinarse usando funciones trigonométricas Se debe recordar que estas son alturas bloque a bloque, pero se debe considerar alturas totales.
Se debe sumar alturas anteriores, y encontrar una buena aproximación de esta.
[( AxK xK ro
μoBo∆ x )i+12
Poi+1 , j ,k−[( AxK xK ro
μo Bo∆ x )i+12
+( Ax K x K ro
μoBo∆ x )i−12]Poi , j ,k+( AxK xK ro
μoBo∆ x )i−12
Poi−1 , j , k ]−¿
[( AxK xK ro
μoBo∆ x )i+12
γ o (Z i+1 , j , k−Z i , j , k)+( A xK xK ro
μoBo∆ x )i−12
γ o (Z i , j , k−Z i−1 , j ,k )]+¿
[( AxK xK ro
μoBo∆ x )i+12
+( AxK xK ro
μo Bo∆ x )i−12]γ o (Z i+1 , j ,k−Z i−1 , j ,k )
Al agrupar los términos de transmisibilidad en i + ½ e i - ½
[( AxK xK ro
μoBo∆ x )i+12
(Poi+1, j , k−γo (Zi+1 , j , k−Z i , j , k ))+( Ax K x K ro
μoBo∆x )i−12
(Poi−1 , j ,k−γ o (Z i , j ,k−Z i−1 , j ,k )) ]−¿
[( AxK xK ro
μoBo∆ x )i+12
+( AxK xK ro
μo Bo∆ x )i−12](Poi , j ,k−γ o (Z i+1 , j , k−Z i−1 , j ,k ))
1.1.b) Definiciones de transmisibilidad
Txoili+1
2
=( AxK roK x
μo Bo∆ x )i+12
Txoili−1
2
=( A x K x K ro
μoBo∆x )i−12
Expansión de las transmisibilidades para bloque centrado:
Txoi+1
2
=( 2∗0.001127 A xi+1K xi+1K roi+1 A xi K xi K roi
μoi+1Boi+1∆ x i+1 AxiK xi K roi+μoiBoi∆ x i Axi+1 K xi+1K roi+1)
Txoi−1
2
=( 2∗0.001127 A xi−1K xi−1 K roi−1 A xi K xi K roi
μoi−1Boi−1∆ x i−1 Axi K xi K roi+μoi Boi∆ x i A xi−1K xi−1 K roi−1)
Expansión en la dirección X términos de las transmisibilidades:
[Txo i+12(Poi+1, j , k−γ o (Z i+1 , j , k−Z i , j , k ))+Txo
i−12(Poi−1 , j , k−γ o (Z i , j ,k−Z i−1 , j ,k )) ]−¿
[Txo i+ 12
+Txoi−
12 ](Poi , j , k−γo (Z i+1 , j ,k−Z i−1 , j , k ))
1.2.a) Expansión en la dirección Y
∂∂ y ( A yK y K ro
μoBo ( ∂P∂ y −γ o∂Z∂ y ))∆ y
Siguiendo el mismo procedimiento
[( Ay K y K ro
μo Bo∆ y ) j+12
(Poi , j+1 , k−γo (Zi , j+1 ,k−Z i , j , k ))+( A y K yK ro
μoBo∆ y ) j−12
(Poi , j−1 , k−γ o (Z i , j ,k−Z i , j−1 ,k )) ]−¿
[( Ay K y K ro
μo Bo∆ y ) j+12
+( A yK y K ro
μoBo∆ y )j−12] (Poi , j ,k−γ o (Z i , j+1 , k−Zi , j−1 ,k ) )
1.2.b) Definiciones de transmisibilidad.
Tyoj+1
2
=( A yK yK ro
∆ y μoBo )j+12
Tyoj−1
2
=( Ay K y K ro
∆ y μo Bo ) j−12
Expansión de las transmisibilidades para bloque centrado:
Tyoj+1
2
=( 2∗0.001127 A y j+1K y j−1 K ro j+1 A y j K y jK ro j
μo j+1Bo j+1∆ y j+1 A y jK y j K ro j+μo jBo j∆ y j A y j+1 K y j+1K roj+1)
Tyoj−1
2
=( 2∗0.001127 A y j−1K y j−1 K ro j−1 A y jK y jK roj
μo j−1Bo j−1∆ y j−1 A y jK y jK roj+μo jBo j∆ y j A y j−1K y j−1K ro j−1)
Expansión en la dirección Y en términos de las transmisibilidades:
[Tyo j+12
(Poi , j+1 ,k−γo (Z i . j+1 ,k−Z i , j ,k ))+Tyoj−1
2(Poi , j−1 ,k−γ o (Z i , j ,k−Z i , j−1 , k ))]−¿
[Tyo j+12
+Tyoj−
12] (Poi , j , k−γ o (Z i , j+1 , k−Z i , j−1 , k ))
1.3.a) Expansión en la dirección Z
∂∂ z ( A zK z K ro
μoBo ( ∂P∂z −γ o∂Z∂z ))∆ z
Siguiendo el mismo procedimiento
[( A zK z K ro
μoBo∆ z )k+12
(Poi , j ,k +1−γ o (Z i , j , k+1−Z i , j , k ))+( A z K zK ro
μoBo∆ z )k−12
(Poi , j , k−1−γ o (Z i , j ,k−Z i , j ,k−1 )) ]−¿
[( A zK z K ro
μoBo∆ z )k+12
+( A z K z K ro
μo Bo∆ z )k−12](Poi , j ,k−γ o (Z i , j ,k +1−Z i , j , k−1 ))
1.3.b) Definiciones de transmisibilidad.
Tzok+1
2
=( A z K zK ro
μoBo∆ z )k +12
Tzok−1
2
=( A zK z K ro
μoBo∆ z )k−12
Expansión de las transmisibilidades para bloque centrado
Tzok+1
2
=( 2∗0.001127 A zk +1K zk−1K rok +1 A zk K z kK rok
μok+1Bok+1∆ zk+1 A zkK zk K rok+μokBok∆ zk zk+1K zk+1 K rok +1)
Tzok−1
2
=( 2∗0.001127 A zk−1K zk−1K rok−1 A zk k zkK rok
μok−1Bok−1∆zk−1 A zkK zkK rok+μokBok∆zk A zk−1K zk−1 K rok−1)
Expansión en la dirección Z en términos de las transmisibilidades:
[Tzok+12
(Poi , j , k+1−γo (Z i . j , k+1−Z i , j ,k ))+Tzok−1
2(Poi , j ,k−1−γ o (Z i , j ,k−Z i , j , k−1 ))]−¿
[Tzok+12
+Tzok−
12 ] (Poi , j , k−γ o (Z i , j , k+1−Z i , j , k−1 ))
1.3.a) expansión del término que depende del tiempo
Vb∆ t
∂∂t (ϕ SoBo )= [ 7 ]
[ 8 ]
[ 9 ]
[ 10 ]
Al reemplazando la ecuación (8), (9) y (10) en la ecuación (7) se obtiene:
O bien,
1.3.b) Definición de las constantes
;
;
Uniendo las expansiones en términos de las transmisibilidades para las coordenadas X,Y,Z y para el tiempo correspondientes al aceite .
[Txo i+12(Poi+1, j , k−γ o (Z i+1−Z i ))+Txoi−1
2(Poi−1 , j , k−γo (Z i−Z i−1 )) ]−¿
[Txo i+12
+Txoi−1
2 ](Poi , j , k−γo (Z i+1 , j ,k−Z i−1 , j , k ))+[Tyo j+12(Poi , j+1 ,k−γo (Z i , j+1 ,k−Z i , j ,k ))+Tyo
j−12
(Poi , j−1 ,k−γ o (Z i , j ,k−Z i , j−1, k ))]−¿
[Tyo j+12
+Tyoj−1
2] (Poi , j , k−γ o (Z i , j+1 , k−Z i , j−1 , k ))+[Tzok+12(Poi , j ,k +1−γ o (Z i . j , k+1−Z i , j , k ))+Tzo
k−12(Poi , j ,k−1−γo (Zi , j , k−Zi , j , k−1) )]−¿
[Tzok+12
+Tzok−
12 ] (Poi , j , k−γ o (Z i , j , k+1−Z i , j , k−1 ))=C 10 Δt (Po )+C 11Δt (S0 )+qosc
2) Expansión de la ecuación asociada al gas.
∂∂ x [ AxK xK rg
μgBg ( ∂Pg∂x−γ g
∂Z∂x )+ A xK xK roR s
μoBo ( ∂ Po∂ x−γ o
∂Z∂ x )]∆ x+¿
∂∂ y ( A yK y K rg
μgBg ( ∂Pg∂ y−γg
∂Z∂ y )+ A y K yK roRs
μoBo ( ∂Po∂ y−γ o
∂ Z∂ y ))∆ y
+∂∂ z ( A z K zK rg
μgBg ( ∂Pg∂ z−γ g
∂Z∂ z )+ A z K zK roR s
μoBo ( ∂Po∂ z−γ o
∂Z∂z ))=V b
αc
∂∂ t ( ϕSgBo +
ϕ R sSoBo )+qgcn
Relaciones adicionales
So+Sg=1
Pcog=Pg−PoPcog se denomina presión capilar entre el petróleo y el gas.2.1.a) Expansión de la ecuación en la dirección X :
∂∂ x [ AxK xK rg
μgBg ( ∂Po∂ x+∂ Pcog∂ x
−γ g∂Z∂x )+ A xK xK roR s
μoBo ( ∂ Po∂ x−γo
∂Z∂ x )]∆ x
Agrupando términos semejantes
1∆ x [ A xK xK rg
μg Bg ( ∂ Po∂ x )+ A xK xK roR sμoBo ( ∂ Po∂ x )+ AxK xK rg
μgBg ( ∂ Pcog∂x )− Ax K x K rg
μgBgγ g∂ Z∂ x
−AxK xK roR sμoBo
γ o∂ Z∂ x ]∆ x
( A xK xK rg
μgBg∆ x )i+12
(Poi+1 , j , k−Poi , j ,k )−( AxK xK rg
μgBg∆ x )i−12
(Poi , j , k−Poi−1 , j ,k )+( Ax K x K roRsμo Bo∆ x )i+1
2
(Poi+1 , j ,k−Poi , j ,k )−¿
( A xK xK roRs
μoBo∆ x )i−12
(Poi , j ,k−Poi−1 , j , k )+( AxK xK rg
μgBg∆x )i+12
(Pcogi+1 , j , k−Pcogi , j , k )−( AxK xK rg
μgBg∆ x )i−12
(Pcogi , j ,k−P cogi−1, j , k )−¿
( A xK xK rg
μgBg∆ x )i+12
γ g (Z i+1, j , k−Zi , j , k )+( AxK xK rg
μg Bg∆ x )i−12
γ g (Z i , j ,k−Z i−1, j , k )−( Ax K x K ro
μoBo∆ x )i+12
R s γo (Z i+1 , j ,k−Z i , j ,k )+¿
( A xK xK ro
μoBo∆ x )i−12
R s γo (Zi , j , k−Zi−1 , j ,k )
2.1.b) definición de transmisibilidades
Txgi+1
2
=( AxK xK rg
μg Bg∆ x )i+12
T xgi−1
2
=( Ax K x K rg
μgBg∆ x )i−12
Expansión de las transmisibilidades para bloque centrado:
Txgi+1
2
=( 2∗0.001127 Axi+1K xi+1 K rgi+1 AxiK xiK rgi
μgi+1Bgi+1∆ x i+1 AxiK xiK rgi+μgiBgi∆ x i Axi+1K xi+1 K rgi+1)
Txgi−1
2
=( 2∗0.001127 Axi−1 K xi−1K rgi−1 AxiK xiK rgi
μgi−1Bgi−1∆ x i−1 AxiK xiK rgi+μgiBgi∆ x i Axi−1K xi−1 K rgi−1)
Expansión en la dirección X en términos de las transmisibilidades:
(Txgi+12
+R sTxoi+12)Poi+1 , j ,k−(Txgi+1
2
+Txgi−1
2
+R sTxo i+12
+R sTxoi−12)Poi , j , k+¿
(Txgi−12
+R sTxoi−12)Poi−1, j , k+Txgi+1
2
Pcogi+1 , j , k−(Txgi+12
−Txgi−1
2)Pcogi , j ,k+Txgi−12
Pcogi−1, j , k−¿
(γ gTxgi+12
+γo RsTxoi+12)Z i+1 , j ,k+(γ gTxg i+1
2
+γ gTxgi−12
+γ oR sTxoi+12
+γ o RsTxoi−12)Z i+1 , j , k−¿
(γ gTxgi−12
+γ oR sTxo i−12)Z i−1 , j , k
2.2.a) Expansión de la ecuación en la dirección Y.
∂∂ y [ A y K yK rg
μgBg ( ∂Po∂ y+∂Pcog∂ y
−γ g∂Z∂ y )+ A yK yK roR s
μoBo ( ∂ Po∂ y−γ o
∂Z∂ y )]∆ y
1∆ y [ A yK y K rg
μgBg ( ∂Po∂ y )+ A y K yK roR sμoBo ( ∂Po∂ y )+ A yK yK rg
μgBg ( ∂ Pcog∂ y )− A yK yK rg
μgBgγ g∂Z∂ y
−A yK yK roR sμoBo
γ o∂ Z∂ y ]∆ y
( A y K yK rg
μgBg∆ y ) j+12
(Poi , j+1 , k−Poi , j ,k )−( Ay K y K rg
μg Bg∆ y ) j−12
(Poi, j , k−Poi , j−1 ,k )+( A y K yK roR sμoBo∆ y ) j+1
2
(Poi , j+1 ,k−Poi , j ,k )−¿
( A y K yK roRs
μoBo∆ y ) j−12
(Poi , j ,k−Poi , j−1 ,k )+( A yK yK rg
μgBg∆ y )j+12
(Pcogi , j+1, k−Pcogi , j , k )−( A yK yK rg
μgBg∆ y )j−12
(Pcogi , j ,k−Pcogi , j−1 , k )−¿
( A y K yK rg
μgBg∆ y ) j+12
γ g (Z i , j+1 , k−Zi , j ,k )+( A yK yK rg
μgBg∆ y )j−12
γ g (Z i , j ,k−Z i , j−1 ,k )−( Ay K y K ro
μoBo∆ x ) j+12
R s γ o (Z i , j+1 , k−Z i , j , k )+¿
( A y K yK ro
μoBo∆ y ) j−12
R s γo (Zi , j , k−Zi , j−1 ,k )
2.2.b) definición de transmisibilidades
Tygi+ 1
2
=( Ay K y K rg
μg Bg∆ y ) j+12
Tygi−1
2
=( Ay K y K rg
μg Bg∆ y ) j−12
Expansión de las transmisibilidades para bloque centrado:
Tygj+1
2
=( 2∗0.001127 A y j+1K y j−1K rg j+1 A y jK y j K rg j
μg j+1Bg j+1∆ y j+1 A y j K y jK rg j+μg jBg j∆ y j A y j+1K y j+1K rgj+1)
Tygj−1
2
=( 2∗0.001127 A y j−1K y j−1K ro j−1 A y j K y j K ro j
μg j−1Bg j−1∆ y j−1 A y j K y j K rg j+μg jBg j∆ y j A y j−1K y j−1K rg j−1)
Expansión en la dirección Y en términos de las transmisibilidades:
(Tyg j+12
+R sTyo j+12)Poi , j+1, k−(Tyg j+1
2
+Tygj−1
2
+R sTyo j+12
+R sTyo j−12)Poi , j ,k+¿
(Tyg j−12
+RsTyo j−12)Poi , j−1 ,k+Tyg j+1
2
Pcogi , j+1 , k−(Tyg j+12
−Tygj−1
2)Pcogi , j , k+Tyg j−12
Pcogi , j−1 , k−¿
(γ gTyg j+12
+γ oR sTyo j+12 )Z i , j+1, k+( γgTyg j+1
2
+γ gTyg j−12
+γo RsTyo j+12
+γ oR sTyo j−12)Z i , j ,k−¿
(γ gTyg j−12
+γ oR sTyo j−12 )Z i , j−1 ,k
2.3.a) Expansión de la ecuación en la dirección Z.
∂∂Z [ A z K z K rg
μgBg ( ∂ Po∂ z+∂Pcog∂ z
−γ g∂ Z∂z )+ A z K z K roR s
μoBo ( ∂ Po∂ z −γo∂Z∂ z )]∆ Z
1∆ z [ A zK z K rg
μgBg ( ∂Po∂ z )+ A zK z K roRsμo Bo ( ∂Po∂ z )+ A z K z K rg
μgBg ( ∂P cog∂ z )− A zK z K rg
μgBgγ g∂ Z∂z
−A z K z K roR sμoBo
γ o∂ Z∂z ]∆ z
( A zK z K rg
μgBg∆ z )k+12
(Poi , j ,k+1−Poi , j ,k )−( A zK z K rg
μgBg∆ z )k−12
(Poi , j , k−Poi , j ,k−1 )+( A z K zK roRsμo Bo∆ z )k+1
2
(Poi , j , k+1−Poi , j ,k )−¿
( A zK z K roRs
μo Bo∆ z )k−12
(Poi , j ,k−Poi , j ,k−1 )+( A z K zK rg
μg Bg∆ z )k+ 12
(Pcogi , j , k+1−Pcogi , j , k )−( A z K zK rg
μgBg ∆z )k−12
(Pcogi , j ,k−Pcogi , j , k−1 )−¿
( A zK z K rg
μgBg∆ z )k+12
γ g (Z i , j ,k +1−Zi , j , k )+( A zK z K rg
μgBg∆ z )k−12
γ g (Z i , j , k−Z i , j , k−1 )−( A yK yK roR sμoBo∆ z )k+ 1
2
γ o (Z i , j , k+1−Z i , j , k )+¿
( A zK z K rgRsμoBo∆ z )k−1
2
γ o (Zi , j , k−Z i , j , k−1)
2.3.b) definición de transmisibilidades
Tzgk+1
2
=( A z K zK rg
μgBg∆z )k +12
Tzgi−1
2
=( A zK z K rg
μgBg∆ z )k−12
Expansión de las transmisibilidades para bloque centrado:
Tzgk+1
2
=( 2∗0.001127 A zk+1 K z k−1K rgk+1 A z kK zk K rgk
μgk+1Bgk +1∆ zk+1 A z kK zkK rgk+μgkBgk∆ zk zk+1K zk+1K rgk +1)
Tzgk−1
2
=( 2∗0.001127 A zk−1 K z k−1 K rgk−1 A zkk zkK rgk
μgk−1Bgk−1∆ zk−1 A zkK zkK rgk+μgkBgk∆zk A zk−1K zk−1K rgk−1)
Expansión en la dirección Z en términos de las transmisibilidades:
(Tzgk +12
+R sTzok+12)Poi , j , k+1−(Tzgk+1
2
+Tzgk−1
2
+R sTzok+12
+R sTzok−12)Poi , j , k+¿
(Tzgk−12
+RsTzok−12 )Poi , j , k−1+Tzgk+1
2
Pcogi , j ,k+1−(Tzgk+12
−Tzgk−1
2)Pcogi , j , k+Tzgk−12
Pcogi , j , k−1−¿
(γ gTzgk +12
+γ oR sTzok+12 )Z i , j , k+1+(γ gTzgk+1
2
+γ gTzgk−12
+γ o RsTzok +12
+γ oR sTzok−12)Z i , j ,k−¿
(γ gTzgk−12
+γ oR sTzok−12 )Z i , j , k−1
2.4.a) Expansión del término que depende del tiempo.
V b
α c
∂∂ t ( ϕ SgBo +
ϕ Rs SoBo )
[ 11]
[ 12 ]
[ 13 ]
Al llevar [ 12 ] y [ 13 ] ala ecuación [11 ] se tiene :
Definición de constantes
C20=Son [∅ n+1 (boR s ) +(boR s )
n∅ bC r ]+Sgn [∅ n+1b g+bgn∅ bCr ]
;
;
;
Uniendo las expansiones en términos de las transmisibilidades para las coordenadas X,Y,Z y para el tiempo correspondientes al gas. Los efectos gravitacionales son cero.
(Txgi+12
+R sTxoi+12)Poi+1 , j ,k−(Txgi+1
2
+Txgi−1
2
+R sTxo i+12
+R sTxoi−12)Poi , j , k+¿
(Txgi−12
+R sTxoi−12)Poi−1, j , k+Txgi+1
2
Pc ogi+1 , j ,k−(Txg i+12
−Txgi−1
2)Pcogi , j , k+Txg i−12
Pcogi−1 , j ,k
+(Tyg j+12
+R sTyo j+12)Poi , j+1, k−(Tyg j+1
2
+Tygj−1
2
+R sTyo j+12
+R sTyo j−12)Poi , j ,k+¿
(Tyg j−12
+RsTyo j−12)Poi , j−1 ,k+Tyg j+1
2
Pco gi , j+1 ,k−(Tyg j+12
−Tygj−1
2 )Pcogi , j ,k+Tyg j−12
Pcogi , j−1 ,k−¿
(Tzgk +12
+R sTzok+12)Poi , j , k+1−(Tzgk+1
2
+Tzgk−1
2
+R sTzok+12
+R sTzok−12)Poi , j , k+¿
(Tzgk−12
+RsTzok−12 )Poi , j , k−1+Tzgk+1
2
Pcogi , j ,k+1−(Tzgk+12
−Tzgk−1
2)Pcogi , j , k+Tzgk−12
Pcogi , j , k−1
¿C 20Δ (Po )+C 21Δ (So )+C 22∆ t Pcog+qgsc−Vb∆ t ( ϕBo )
n+1
R sn+1
Al unir las expresiones del aceite y el gas, y agrupando términos semejantes nos queda:
(Tyg j−12
+RsTyo j−12
+Tyoj−1
2)Poi , j−1 , k+(Txgi−12
+RsTxoi−12
+Txoi−1
2)Poi−1, j , k−¿
(Tyg j+12
+Tygj−1
2
+RsTyo j+12
+R sTyo j−12
+Txgi+1
2
+Txgi−1
2
+R sTxo i+12
+RsTxoi−12
+Tyoj+1
2
+Tyoj−1
2
+Txoi+1
2
+Txoi−1
2
+Tzok +1
2
+Tzok−1
2
+Tzgk +1
2
+Tzgk−1
2
+RsTzok+12
+RsTzok−12 )Poi , j ,k+(Txg i+1
2
+RsTxoi+12
+Txoi+1
2 )Poi+1 , j , k
(Tyg j+12
+R sTyo j+12
+Tyoj+1
2 )Poi , j+1 , k+Tyg j−12
Pcogi , j−1 , k+Txgi−12
Pcogi−1 , j , k
−(Txg i+12
+Txgi−
12
+Tygj+
12
−Tygj−
12
−Tzgk+
12
+Tzgk−
12)Pcogi , j , k+Txgi+1
2
Pcogi+1 , j , k+Tygj+
12
Pcogi , j+1 , k+(Tzgk +12
+R sTzok +
12
+Tzok+
12 )Poi , j ,k +1+(Tzgk−1
2
+R sTzok−
12
+Tzok−
12)Poi , j ,k−1+Tzg
k +12
Pcogi , j , k+1+Tzgk−
12
Pcogi , j ,k−1=qosc+qgSC+C 10Δt (Po )+C 11 Δt (So )+C 20Δt (Po )+C 21 Δt (S0 )+C 22Δt (Pcog ) −Vb∆ t ( ϕBo )
n+1
R sn+1
Llevamos esta ecuación general en términos de los Esténcils:
Si , j ,k Poi , j−1 ,k+W i , j , kPoi−1 , j ,k+C i , j , kPoi , j , k+Ei , j ,k Poi+1, j , k+
N i , j ,k Poi , j+1 , k+A i , j ,k Poi , j ,k +1+ABi , j ,k Poi , j ,k−1=
qosc+qgSC+C 10Δt (Po )+C 11Δt (So )+C 20 Δt (Po )+C 21 Δt (S0 )+C 22 Δt (Pcog )+capilar −Vb∆ t ( ϕBo )
n+1
R sn+1
METODO IMPIS (implicite pressure implicite saturation)
Métodos Secuenciales
El método calcula simultáneamente las presiones para las fases. Considera la saturación implícita Se aplica a fluidos incompresibles (flujo petróleo y gas) Requiere resolver a cada tiempo (iteración) un sistema de 2N ecuaciones (N=#de bloques)
i) Sistema de ecuaciones
Transmisibilidades
Txoi+1
2
=( 2∗0.001127 A xi+1K xi+1K roi+1 A xi K xi K roi
μoi+1Boi+1∆ x i+1 AxiK xi K roi+μoiBoi∆ x i Axi+1 K xi+1K roi+1)
Txoi−1
2
=( 2∗0.001127 A xi−1K xi−1 K roi−1 A xi K xi K roi
μoi−1Boi−1∆ x i−1 Axi K xi K roi+μoi Boi∆ x i A xi−1K xi−1 K roi−1)
Tyoj+1
2
=( 2∗0.001127 A y j+1K y j−1 K ro j+1 A y j K y jK ro j
μo j+1Bo j+1∆ y j+1 A y jK y j K ro j+μo jBo j∆ y j A y j+1 K y j+1K roj+1)
Tyoj−1
2
=( 2∗0.001127 A y j−1K y j−1 K ro j−1 A y jK y jK roj
μo j−1Bo j−1∆ y j−1 A y jK y jK roj+μo jBo j∆ y j A y j−1K y j−1K ro j−1)
Tzok+1
2
=( 2∗0.001127 A zk +1K zk−1K rok +1 A zk K z kK rok
μok+1Bok+1∆ zk+1 A zkK zk K rok+μokBok∆ zk zk+1K zk+1 K rok +1)
Tzok−1
2
=( 2∗0.001127 A zk−1K zk−1K rok−1 A zk k zkK rok
μok−1Bok−1∆zk−1 A zkK zkK rok+μokBok∆zk A zk−1K zk−1 K rok−1)
Txgi+1
2
=( 2∗0.001127 Axi+1K xi+1 K rgi+1 AxiK xiK rgi
μgi+1Bgi+1∆ x i+1 AxiK xiK rgi+μgiBgi∆ x i Axi+1K xi+1 K rgi+1)
Txgi−1
2
=( 2∗0.001127 Axi−1 K xi−1K rgi−1 AxiK xiK rgi
μgi−1Bgi−1∆ x i−1 AxiK xiK rgi+μgiBgi∆ x i Axi−1K xi−1 K rgi−1)
Tygj+1
2
=( 2∗0.001127 A y j+1K y j−1K rg j+1 A y jK y j K rg j
μg j+1Bg j+1∆ y j+1 A y j K y jK rg j+μg jBg j∆ y j A y j+1K y j+1K rgj+1)
Tygj−1
2
=( 2∗0.001127 A y j−1K y j−1K ro j−1 A y j K y j K ro j
μg j−1Bg j−1∆ y j−1 A y j K y j K rg j+μg jBg j∆ y j A y j−1K y j−1K rg j−1)
Tzgk+1
2
=( 2∗0.001127 A zk+1 K z k−1K rgk+1 A z kK zk K rgk
μgk+1Bgk +1∆ zk+1 A z kK zkK rgk+μgkBgk∆ zk zk+1K zk+1K rgk +1)
Tzgk−1
2
=( 2∗0.001127 A zk−1 K z k−1 K rgk−1 A zkk zkK rgk
μgk−1Bgk−1∆ zk−1 A zkK zkK rgk+μgkBgk∆zk A zk−1K zk−1K rgk−1)
Txoi+1
2
=( 2∗0.001127 A xi+1K xi+1K roi+1 A xi K xi K roi
μoi+1Boi+1∆ x i+1 AxiK xi K roi+μoiBoi∆ x i Axi+1 K xi+1K roi+1)Rs i , j , k
Txoi−1
2
=( 2∗0.001127 A xi−1K xi−1 K roi−1 A xi K xi K roi
μoi−1Boi−1∆ x i−1 Axi K xi K roi+μoi Boi∆ x i A xi−1K xi−1 K roi−1)Rsi , j ,k
Tyoj+1
2
=( 2∗0.001127 A y j+1K y j−1 K ro j+1 A y j K y jK ro j
μo j+1Bo j+1∆ y j+1 A y jK y j K ro j+μo jBo j∆ y j A y j+1 K y j+1K roj+1)Rs i , j , k
Tyoj−1
2
=( 2∗0.001127 A y j−1K y j−1 K ro j−1 A y jK y jK roj
μo j−1Bo j−1∆ y j−1 A y jK y jK roj+μo jBo j∆ y j A y j−1K y j−1K ro j−1)Rsi , j ,k
Tzok+1
2
=( 2∗0.001127 A zk +1K zk−1K rok +1 A zk K z kK rok
μok+1Bok+1∆ zk+1 A zkK zk K rok+μokBok∆ zk zk+1K zk+1 K rok +1)Rs i , j , k
Tzok−1
2
=( 2∗0.001127 A zk−1K zk−1K rok−1 A zk k zkK rok
μok−1Bok−1∆zk−1 A zkK zkK rok+μokBok∆zk A zk−1K zk−1 K rok−1)Rsi , j ,k
En diferencias finitas:
∆ (T o∆ Po )=qosc+V b
∆ t∆ t (∅ Sobo )
∆ (T o∆ Pg+Rs∆T o∆ Po )=qgsc+V b
∆ t∆ t [∅ gSgbg+R sboSo∅ ]
Como ya se demostró anteriormente, se tiene:
∆ (T o∆ Po )=qosc+C 10∆ t Po+C 11∆ t So
∆ (T o∆ Pg+Rs∆T o∆ Po )=qgsc+C 20∆t Po+C 21∆ t So+C 22∆ t Pcog
Paso 1: Expresar ecuaciones en términos de la presión de una de las fases.
∆ (T o∆ Po )=qosc+C 10∆ t Po+C 11∆ t So
∆ (T g∆Po )+∆ (T g ∆Pcog )+∆ (T o Rs∆ Po )=qgsc+C 20∆ t Po+C 21∆ t So+C 22∆ t Pcog
Paso 2: Eliminar Saturaciones.
Sumando las ecuaciones anteriores y multiplicando por (a=−C 21
C 11
) queda:
a ∆ (To ∆Po )+∆ (T g∆ Po )+∆ (T g∆ Pcog )+∆ (T oR s∆ Po )=aqosc+qgsc+(aC 10+C 20 )∆ t Po+C 22∆ t Pc−Vb∆ t ( ϕBo )
n+1
R sn+1
Definiendo
T=aT o+T oR s+T g=(a+R s )T o+T g
C=aC 10+C 20+C 22
D=C 22
q=a qosc+qgsc
Llevando estas tres últimas ecuaciones a la ecuación, se tiene:
∆ (T ∆ Po )+∆ (T g∆ Pc og )−q=C∆ t Po+D∆t Pcog−Vb∆ t ( ϕBo )
n+1
R sn+1
Esta ecuación es aplicada a todos los bloques de la malla del sistema de ecuaciones a resolver en el cual las incógnitas son, en este caso, las presiones en los bloques de la fase petróleo
Para resolver el sistema de ecuaciones las saturaciones se toman al tiempo tn; o sea que el sistema de ecuaciones se puede representar como
∆ (T ∆ Po )n+1+∆ (T g∆ Pcog )n−qn=(C ∆ t Po )+ (D∆t Pcog ) −Vb∆ t ( ϕBo )
n+1
R sn+1
Expansión de la ecuación anterior es la siguiente:
( (a+R s )i−1 , j ,kn
T xo,i−1 /2n +T xg ,i−1/2
n )Poi−1, j,k
n+1 +( (a+R s )i , j−1 ,kn
T yo, j−1/2n +T yg , j−1 /2
n )Poi, j−1 ,k
n+1 +((a+R s )i , j ,k−1n
T zo, k−1/2n +T zg ,k−1 /2
n )Poi , j ,k−1
n+1 −[( (a+R s )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+R s )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+((a+R s )i , j−1, kn
T yo , j−1 /2n +T yg, j−1 /2
n )+( (a+R s )i , j+1 , kn
T yo , j+1/2n +T yg , j+1 /2
n )+( (a+R s )i , j ,k−1n
T zo ,k−1 /2n +T zg , k−1 /2
n )+((a+Rs ) i , j , k+1n
T zo ,k +1/2n +T zg, k+1 /2
n )+Ci , j , kn ]Poi, j, kn+1
+
( (a+R s )i+1 , j , k
nT x o , i+1/2n +T xg, i+1 /2
n )Poi+1, j ,k
n+1 +( (a+Rs )i , j+1 ,k
nT yo , j+1 /2n +T yg, j+1 /2
n )Poi , j+1 ,k
n+1 +((a+R s )i , j ,k+1
nT zo ,k +1/2n +T zg ,k+1/2
n )Poi, j,k +1
n+1 =(aqoscn +qgscn )−T xg ,i−1/2
n Pcogi−1 , j ,k
n −T yg , j−1 /2n Pcogi, j−1, j ,k
n −T zg ,k−1 /2n Pcogi, j ,k−1
n +(T xg, i−1 /2n +T yg , j−1 /2
n +T zg , k−1 /2n +T xg ,i+1/2
n +T yg , j+1/2n +T zg ,k+1/2
n +Di , j , kn )Pcogi, j, k
n −T xg, i+1 /2n Pcogi+1 , j,k
n −T yg , j+1 /2n Pcogi, j+1,k
n −T zg ,k+1/2n Pcogi , j ,k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Ecuación del sistema por el método IMPIS, al expandir implícitamente sobre la presión encontramos un sistema heptadiagonal:
Si , j ,k Poi , j−1 ,k
n+1+W i , j , kPoi−1, j ,k
n+1+C i , j , kPoi, j,k
n+1 +E i , j , kPoi+1 , j,k
n+1+
N i , j ,k Poi , j+1 ,k
n+1 +A i , j ,k Poi, j ,k+1
n+1 +ABi , j ,k Poi, j ,k−1
n+1 =Fi , j , k
Donde:
S= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )W=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )C=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1, kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+((a+R s )i , j , k+1n
T zo ,k +1/2n +T zg ,k+1/2
n )+Ci , j , kn ]E= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )N= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )A = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n ) AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )F=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T xg, i+1 /2
n +T yg, j+1 /2n +T zg , k+1 /2
n +Di , j ,kn )Pcogi , j,k
n −T xg,i+1/2n Pcogi+1, j ,k
n −T yg, j+1/2n Pcogi , j+1 ,k
n −T zg , k+1 /2n Pcogi, j,k +1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Descripción del sistema de ecuaciones por el método LSOR
Se aplica criterio Von Newman, para el yacimiento cerrado (fronteras cerradas), recorriendo por filas, se obtiene:
W i , j , kPoi−1, j ,k
¿+C i , j , kPoi, j,k
¿ +E i , j , kPoi+1 , j,k
¿ =F i , j ,k
−Si , j , kPoi , j−1 ,k
n+1 −N i , j ,k Poi, j+1 ,k
n −Ai , j , kPoi , j ,k+1
n −ABi , j ,kPoi, j, k−1
n+1
Donde:
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1, kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+((a+R s )i , j , k+1n
T zo ,k +1/2n +T zg ,k+ 1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n ) AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T xg, i+1 /2
n +T yg, j+1 /2n +T zg , k+1 /2
n +Di , j ,kn )Pcogi , j,k
n −T xg,i+1/2n Pcogi+1, j ,k
n −T yg, j+1/2n Pcogi , j+1 ,k
n −T zg , k+1 /2n Pcogi, j,k +1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
1. CAPAS DE L FONDO
(1,1,1):
Poi , j,k¿ =Poi−1 , j ,k
¿ =Poi, j−1 ,k
n+1 =Poi , j,k−1
n+1 →Poi , j,kn+1=Poi−1 , j ,k
n+1 =Poi, j−1 ,k
n+1 =Poi , j,k−1
n+1 →Si , j ,k=W i , j ,k=ABi , j , k=0
Ei , j , k=((a+R s )i+1 , j ,kn T xo, i+1 /2
n +T xg, i+1 /2n )
N i , j ,k=((a+Rs ) i , j+1 ,kn T yo, j+1 /2
n +T yg, j+1 /2n )
C i , j , k=((a+R s )i+1 , j , k
nTxo ,i+1
2
n +Txg ,i+1
2
n )+((a+Rs )i , j+1 ,k
nTyo , j+1
2
n +Tyg, j+1
2
n )+((a+R s )i , j , k+1
nTzo, k+1
2
n +Tzg , k+1
2
n )Ai , j , k=((a+R s )i , j , k+1
n T zo ,k +1/2n +T zg ,k+1/2
n )
F i , j , k=(aqoscn +qgscn )+(T xg, i+1 /2
n +T yg, j+1 /2n +T z g ,k +1/2
n +Di , j , kn )Pcogi, j ,k
n −T xg ,i+1 /2n Pcogi+1, j ,k
n −T yg, j+1 /2n Pcogi, j+1, k
n −T zg ,k +1/2n Pcogi , j,k+1
n −Vb∆ t ( ϕBo )
n+1
Rsn+1
(Nx,1,1):
Poi , j,k¿ =Poi+1 , j,k
¿ =Poi, j−1 ,k
n+1 =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi+1 , j,k
n+1 =Poi, j−1,k
n+1 =Poi, j,k−1
n+1 →Si , j , k=Ei , j , k=ABi , j , k=0
Wi,j,k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )
C i , j , k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )+( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )+( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
Ai,j,k = ((a+Rs )i , j , k+1
nTzo ,k+1
2
n +Tzg , k+1
2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n +(T xg, i−1/2n +T yg , j+1/2
n +T zg ,k +1/2n +Di , j , k
n )Pcogi, j ,kn −T yg, j+1 /2
n Pcogi, j+1, k
n −T zg ,k +1/2n Pcogi , j,k+1
n −Vb∆ t ( ϕBo )
n+1
Rsn+1
(1,Ny,1):
Poi , j,k¿ =Poi, j+1 ,k
n =Poi−1 , j,k
¿ =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi, j+1,k
n+1 =Poi−1 , j,k
n+1 =Poi, j,k−1
n+1 →N i , j , k=W i , j , k=ABi , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Ci,j,k=
−[( (a+Rs )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j , k+1n
T zo ,k+1 /2n +T zg , k+1 /2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Ai,j,,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
Fi,j,k=
(aqoscn +qgscn )−T yg, j−1/2
n Pcogi , j−1 , j,k
n +(T yg , j−1 /2n +T xg ,i+1 /2
n +T zg , k+1 /2n +Di , j ,k
n )Pcogi , j,kn −T xg,i+1/2
n Pcogi+1, j ,k
n −T zg , k+1 /2n Pcogi, j, k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
(Nx,Ny,1):
Poi , j,k¿ =Poi, j+1 ,k
n =Poi+1 , j,k
¿ =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi, j+1,k
n+1 =Poi+1 , j,k
n+1 =Poi, j ,k−1
n+1 →N i , j , k=Ei , j , k=ABi , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j−1 ,kn
T yo, j−1/2n +T yg, j−1/2
n )+((a+R s )i , j ,k+1n
T zo ,k +1/2n +T zg ,k +1/2
n )+Ci , j , kn ]Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n ) Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n +(T xg,i−1 /2n +T yg, j−1/2
n +T zg ,k +1/2n +D i , j , k
n )Pcogi, j ,kn −T zg , k+1 /2
n Pcogi, j,k +1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
( i,1,1), 1< i < Nx
Poi , j,k¿ =Poi, j−1 ,k
n+1 =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi, j−1 ,k
n+1 =Poi, j,k−1
n+1 →Si , j , k=ABi , j , k=0
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
Ai,j,k = ((a+Rs )i , j , k+1
nTzo ,k+1
2
n +Tzg , k+1
2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )++( (a+R s )i , j+1 , kn
T yo, j+1/2n +T yg , j+1/2
n )++( (a+R s )i , j ,k +1n
T zo , k+1 /2n +T zg ,k +1/2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Wi,j,k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n +(T xg, i−1/2n +T xg,i+1/2
n +T yg , j+1/2n +T zg ,k +1/2
n +D i , j , kn )Pcogi, j ,k
n −T xg ,i+1 /2n Pcogi+1, j,k
n −T yg, j+1 /2n Pcogi, j+1,k
n −T zg ,k +1/2n Pcogi , j,k+1
n −Vb∆t ( ϕBo )
n+1
Rsn+1
(i,Ny,1) 1< i < Nx
Poi , j,k¿ =Poi, j+1 ,k
n =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi, j+1,k
n+1 =Poi, j, k−1
n+1 →N i , j , k=ABi , j , k=0
Wi,j,k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )C=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j , k+1n
T zo ,k+1 /2n +T zg , k+1 /2
n )+C i , j ,kn ]
Ai,j,k = ((a+Rs )i , j , k+1
nTzo ,k+1
2
n +Tzg , k+1
2
n )Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n +(T xg,i−1 /2n +T yg, j−1/2
n +T xg, i+1 /2n +T zg ,k +1/2
n +Di , j , kn )Pcogi, j ,k
n −T xg ,i+1 /2n Pcogi+1, j, k
n −T zg ,k +1/2n Pcogi , j,k+1
n −Vb∆ t ( ϕBo )
n+1
Rsn+1
(1,j,1) 1< j < Ny
Poi , j,k¿ =Poi−1 , j ,k
¿ =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi−1 , j,k
n+1 =Poi, j,k−1
n+1 →W i , j , k=ABi , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )Ci,j,k=
−[+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1/2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1 ,kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k+1n
T zo ,k+1 /2n +T zg , k+1 /2
n )+C i , j ,kn ]
Ai,j,k = ((a+Rs )i , j , k+1
nTzo ,k+1
2
n +Tzg , k+1
2
n )Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )Fi,j,k=
(aqoscn +qgscn )−T yg, j−1/2
n Pcogi , j−1 , j,k
n +(T yg , j−1 /2n +T xg ,i+1 /2
n +T yg, j+1/2n +T zg, k+1 /2
n +Di , j , kn )Pcogi, j,k
n −T xg, i+1 /2n Pcogi+1 , j,k
n −T yg , j+1/2n Pcogi, j+1 ,k
n −T zg, k+1 /2n Pcogi, j ,k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
(Nx,j,1) 1<j <NyPoi , j,k
¿ =Poi+1 , j,k
¿ =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi+1 , j,k
n+1 =Poi, j, k−1
n+1 →E i , j , k=ABi , j ,k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j−1 ,kn
T yo, j−1/2n +T yg, j−1/2
n )+((a+R s )i , j+1 ,kn
T yo, j+1 /2n +T yg, j+1/2
n )+((a+R s )i , j ,k+1n
T zo ,k +1/2n +T zg ,k+1/2
n )+Ci , j , kn ]Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n +(T xg,i−1 /2n +T yg, j−1/2
n +T yg, j+1 /2n +T zg , k+1/2
n +Di , j ,kn )Pcogi , j ,k
n −T yg , j+1/2n Pcogi , j+1 ,k
n −T zg , k+1 /2n Pcogi, j ,k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
(1,j,1) 1< j <Nx
Poi , j,k¿ =Poi, j,k−1
n+1 →Poi , j,kn+1=Poi, j,k−1
n+1 →ABi , j ,k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1, kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k+1n
T zo, k+1 /2n +T zg , k+1 /2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Ai,j,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n +(T xg,i−1 /2n +T yg, j−1/2
n +T xg, i+1 /2n +T yg, j+1 /2
n +T zg , k+1 /2n +Di , j ,k
n )Pcogi , j,kn −T xg,i+1/2
n Pcogi+1, j ,k
n −T yg, j+1/2n Pcogi , j +1 ,k
n −T zg , k+1 /2n Pcogi, j,k +1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
CAPAS INTERMEDIAS. Para (1,1,k) 1<k<Nz
Poi , j,k¿ =Poi−1 , j ,k
¿ =Poi, j−1 ,k
n+1 →Poi , j,kn+1=Poi−1 , j,k
n+1 =Poi, j−1 ,k
n+1 →W i , j , k=Si , j ,k=0
ABi , j , k=( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
Ci,j,k=
−[( (a+Rs )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j+1 , kn
T yo, j+1/2n +T yg , j+1/2
n )+( (a+R s )i , j ,k−1n
T zo ,k−1/2n +T zg ,k−1 /2
n )+( (a+R s )i , j , k+1n
T zo, k+1 /2n +T zg , k+1 /2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
Ai,j,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
Fi,j,k=
(aqoscn +qgscn )−T zg ,k−1 /2
n Pcogi, j, k−1
n +(T zg ,k−1/2n +T xg, i+1 /2
n +T yg, j+1 /2n +T zg , k+1 /2
n +Di , j ,kn )Pcogi , j,k
n −T xg,i+1/2n Pcogi+1, j ,k
n −T yg, j+1/2n Pcogi , j +1 ,k
n −T zg , k+1 /2n Pcogi, j,k +1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (Nx,1,k) 1<k<Nz
Poi , j,k¿ =Poi+1 , j,k
¿ =Poi, j−1 ,k
n+1 →Poi , j,kn+1=Poi+1 , j,k
n+1 =Poi, j−1,k
n+1 →E i , j , k=Si , j , k=0
Wi,j,k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )
Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j+1 ,kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+((a+R s )i , j ,k+1n
T zo ,k +1/2n +T zg ,k+1/2
n )+Ci , j , kn ]Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T zg ,k−1 /2n Pcogi, j ,k−1
n +(T xg, i−1 /2n +T zg , k−1/2
n ++T yg , j+1/2n +T zg ,k +1/2
n +D i , j , kn )Pcogi, j ,k
n −T yg, j+1 /2n Pcogi, j+1 ,k
n −T zg ,k +1/2n Pcogi, j,k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (1,Ny,k) 1<k<Nz
Poi , j,k¿ =Poi−1 , j ,k
¿ =Poi, j+1 ,k
n →Poi , j,kn+1=Poi−1 , j,k
n+1 =Poi, j+1,k
n+1 →W i , j , k=N i , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Ci,j,k=
−[( (a+Rs )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j , k−1n
T zo , k−1/2n +T zg ,k−1 /2
n )+( (a+R s )i , j ,k +1n
T zo, k+1 /2n +T zg , k+1 /2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Ai,j,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T yg, j−1/2
n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi , j,k−1
n +(T yg, j−1 /2n +T zg ,k−1 /2
n +T yg, j+1/2n +T zg, k+1 /2
n +Di , j ,kn )Pcogi, j,k
n −T xg, i+1/2n Pcogi+1 , j,k
n −T zg, k+1 /2n Pcogi, j ,k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (Nx,Ny,k) 1<k<Nz
Poi , j,k¿ =Poi+1 , j,k
¿ =Poi, j+1,k
n →Poi , j,kn+1=Poi+1 , j,k
n+1 =Poi, j+1,k
n+1 →E i , j ,k=N i , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j−1 ,kn
T yo, j−1/2n +T yg, j−1/2
n )+((a+R s )i , j ,k−1n
T zo, k−1/2n +T zg ,k−1 /2
n )+( (a+R s )i , j ,k +1n
T zo , k+1 /2n +T zg , k+1/2
n )+C i , j ,kn ]
Ai,j,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T zg ,k +1/2
n +D i , j , kn )Pcogi, j ,k
n −T zg , k+1 /2n Pcogi, j,k +1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (i,1,k) 1<i<Nx 1<k<Nz
Poi , j,k¿ =Poi, j−1 ,k
n+1 →Poi , j,kn+1=Poi, j−1 ,k→
n+1 Si , j , k=0
Wi,j,k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )
Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j+1 , kn
T yo, j+1/2n +T yg , j+1/2
n )+( (a+R s )i , j ,k−1n
T zo ,k−1/2n +T zg ,k−1 /2
n )+( (a+R s )i , j , k+1n
T zo, k+1 /2n +T zg , k+1 /2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
Ai,j,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T zg ,k−1 /2n Pcogi, j ,k−1
n +(T xg, i−1 /2n +T zg , k−1/2
n +T xg,i+1/2n +T yg , j+1/2
n +T zg ,k +1/2n +D i , j , k
n )Pcogi, j ,kn −T xg ,i+1 /2
n Pcogi+1, j, k
n −T yg, j+1 /2n Pcogi, j+1,k
n −T zg ,k +1/2n Pcogi , j,k+1
n −Vb∆t ( ϕBo )
n+1
Rsn+1
Para (i,Ny,k) 1<i<Nx 1<k<Nz
Poi , j,k¿ =Poi, j+1 ,k
n →Poi , j,kn+1=Poi, j+1,k
n+1 →N i , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j , k−1n
T zo , k−1 /2n +T zg , k−1/2
n )+((a+R s )i , j ,k+1n
T zo ,k +1/2n +T zg ,k+1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n ) AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T xg, i+1 /2
n +T zg ,k +1/2n +Di , j , k
n )Pcogi, j ,kn −T xg ,i+1 /2
n Pcogi+1, j, k
n −T zg ,k +1/2n Pcogi , j,k+1
n −Vb∆ t ( ϕBo )
n+1
Rsn+1
Para (1,j,k) 1<j<Ny 1<k<Nz
Poi , j,k¿ =Poi−1 , j ,k
¿ →Poi , j,k¿ =Poi−1 , j,k
¿ →W i , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Ci,j,k=
−[( (a+Rs )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1, kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+((a+R s )i , j , k+1n
T zo ,k +1/2n +T zg ,k+1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n ) AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T yg, j−1/2
n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi , j,k−1
n +(T yg, j−1 /2n +T zg ,k−1 /2
n +T xg ,i+1 /2n +T yg, j+1/2
n +T zg, k+1 /2n +Di , j , k
n )Pcogi, j,kn −T xg, i+1 /2
n Pcogi+1 , j,k
n −T yg , j+1/2n Pcogi, j+1 ,k
n −T zg, k+1 /2n Pcogi, j ,k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (Nx,j,k) 1<j<Ny 1<k<Nz
Poi , j,k¿ =Poi+1 , j,k
¿ →Poi , j,kn+1=Poi+1 , j,k
n+1 →E i , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j−1 ,kn
T yo, j−1/2n +T yg, j−1/2
n )+((a+R s )i , j+1 ,kn
T yo, j+1 /2n +T yg, j+1/2
n )+((a+R s )i , j ,k−1n
T zo, k−1/2n +T zg ,k−1 /2
n )+( (a+R s )i , j ,k +1n
T zo , k+1 /2n +T zg , k+1/2
n )+C i , j ,kn ]
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
Ai,j,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T yg, j+1 /2
n +T zg , k+1 /2n +Di , j ,k
n )Pcogi , j ,kn −T yg , j+1/2
n Pcogi , j+1 ,k
n −T zg , k+1 /2n Pcogi, j ,k+1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (i,j,k) 1<i<Nx 1<j<Ny 1<k<Nz
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1, kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+((a+R s )i , j , k+1n
T zo ,k +1/2n +T zg ,k+ 1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )Ai,j,k = ( (a+R s )i , j ,k +1
n T zo , k+1 /2n +T zg ,k +1/2
n ) AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T xg, i+1 /2
n +T yg, j+1 /2n +T zg , k+1 /2
n +Di , j ,kn )Pcogi , j,k
n −T xg,i+1/2n Pcogi+1, j ,k
n −T yg, j+1/2n Pcogi , j+1 ,k
n −T zg , k+1 /2n Pcogi, j,k +1
n −Vb∆ t ( ϕBo )
n+1
R sn+1
CAPA SUPERIOR
Para (1,1,Nz)
Poi , j,k¿ =Poi−1 , j ,k
¿ =Poi, j−1 ,k
n+1 ¿Poi, j,k +1
n →Poi, j,kn+1 =Poi−1 , j,k
n+1 =Poi, j−1,k
n+1 ¿Poi, j ,k+1
n+1 →W i , j ,k=S i , j , k=TC i , j ,k=0
Ci,j,k=
−[( (a+Rs )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j+1 , kn
T yo, j+1/2n +T yg , j+1/2
n )+( (a+R s )i , j ,k−1n
T zo ,k−1/2n +T zg ,k−1 /2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T zg ,k−1 /2
n Pcogi, j, k−1
n +(T zg ,k−1/2n +T xg, i+1 /2
n +T yg, j+1 /2n +Di , j ,k
n )Pcogi, j,kn −T xg,i+1/2
n Pcogi+1 , j,k
n −T yg , j+1/2n Pcogi , j+1 ,k
n −Vb∆ t ( ϕBo )
n+1
Rsn+1
Para (Nx,1,Nz)
Poi , j,k¿ =Poi+1 , j,k
¿ =Poi, j−1 ,k
n+1 ¿Poi, j, k+1
n →Poi, j,kn+1 =Poi+1, j,k
n+1 =Poi, j−1,k
n+1 ¿ Poi , j ,k+1
n+1 →Ei , j ,k=S i , j ,k=TC i , j ,k=0
Wi,j,k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )
Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j+1 ,kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+Ci , j , kn ]Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T zg ,k−1 /2n Pcogi, j ,k−1
n +(T xg, i−1 /2n +T zg , k−1/2
n +Di , j , kn )Pcogi, j ,k
n −T yg, j+1 /2n Pcogi, j+1, k
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (1,Ny,Nz)
Poi , j,k¿ =Poi−1 , j ,k
¿ =Poi, j+1 ,k
n ¿Poi, j, k+1
n →Poi, j,kn+1 =Poi−1 , j,k
n+1 =Poi, j+1,k
n+1 ¿ Poi , j ,k+1
n+1 →W i , j ,k=N i , j ,k=TC i , j ,k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Ci,j,k=
−[( (a+Rs )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T yg, j−1/2
n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi , j,k−1
n +(T yg, j−1 /2n +T zg ,k−1 /2
n +T xg ,i+1 /2n +Di , j , k
n )Pcogi, j,kn −T xg, i+1 /2
n Pcogi+1 , j,k
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (Nx,Ny,Nz)
Poi , j,k¿ =Poi−1 , j ,k
¿ =Poi, j+1 ,k
n ¿Poi, j, k+1
n →Poi, j,kn+1 =Poi−1 , j,k
n+1 =Poi, j+1,k
n+1 ¿Poi , j ,k+1
n+1 →Ei , j ,k=N i , j ,k=TC i , j ,k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j−1 ,kn
T yo, j−1/2n +T yg, j−1/2
n )+((a+R s )i , j ,k−1n
T zo, k−1/2n +T zg ,k−1 /2
n )+C i , j ,kn ]
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +Di , j ,k
n )Pcogi , j ,kn −Vb
∆ t ( ϕBo )n+1
Rsn+1
Para (i,1,Nz) 1<i<Nx
Poi , j,k¿ =Poi, j−1 ,k
n+1 ¿Poi, j, k+1
n+1 →Poi, j,kn+1 =Poi, j−1,k
n+1 ¿Poi, j ,k+1
n+1 →S i , j ,k=TC i , j ,k=0
Wi,j,k=( (a+R s )i−1 , j ,kn T xo,i−1 /2
n +T xg ,i−1/2n )
Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j+1 , kn
T yo, j+1/2n +T yg , j+1/2
n )+( (a+R s )i , j ,k−1n
T zo ,k−1/2n +T zg ,k−1 /2
n )+C i , j ,kn ]
Ei,j,k= ( (a+R s )i+1 , j , kn T xo ,i+1 /2
n +T xg ,i+1 /2n )
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T zg ,k−1 /2n Pcogi, j ,k−1
n +(T xg, i−1 /2n +T zg , k−1/2
n +T xg,i+1/2n +T yg , j+1/2
n +Di , j ,kn )Pcogi , j ,k
n −T xg ,i+1/2n Pcogi+1, j ,k
n −T yg, j+1/2n Pcogi , j+1 ,k
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (i,Ny,Nz) 1<i<Nx
Poi , j,k¿ =Poi, j−1 ,k
n+1 ¿Poi, j, k+1
n →Poi, j,kn+1 =Poi, j−1,k
n+1 ¿Poi, j ,k+1
n+1 →N i , j ,k=TC i , j ,k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j , k−1n
T zo , k−1 /2n +T zg , k−1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n ) AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T xg, i+1 /2
n +Di , j ,kn )Pcogi , j,k
n −T xg,i+1/2n Pcogi+1, j ,k
n −Vb∆t ( ϕBo )
n+1
Rsn+1
Para (1,j,Nz) 1<j<Ny
Poi , j,k¿ =Poi−1 , j ,k
¿ ¿Poi, j, k+1
n →Poi, j,kn+1 =Poi−1 , j,k
n+1 ¿ Poi, j ,k+1
n+1 →W i , j ,k=TCi , j ,k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Ci,j,k=
−[( (a+Rs )i+1 , j , kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1, kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )Ni,j,k= ( (a+R s )i , j+1 , k
n T yo, j+1/2n +T yg , j+1/2
n )AB = ( (a+R s )i , j ,k−1
n T zo ,k−1 /2n +T zg ,k−1 /2
n )Fi,j,k=
(aqoscn +qgscn )−T yg, j−1/2
n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi , j,k−1
n +(T yg, j−1 /2n +T zg ,k−1 /2
n +T xg ,i+1 /2n +T yg, j+1/2
n +D i, j , kn )Pcogi, j ,k
n −T xg ,i+1 /2n Pcogi+1, j,k
n −T yg, j+1 /2n Pcogi, j+1,k
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (Nx,j,Nz) 1<j<Ny
Poi , j,k¿ =Poi+1 , j,k
¿ ¿Poi, j, k+1
n →Poi, j,kn+1 =Poi+1, j, k
n+1 ¿Poi , j ,k+1
n+1 →Ei , j ,k=TCi , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i , j−1 ,kn
T yo, j−1/2n +T yg, j−1/2
n )+((a+R s )i , j+1 ,kn
T yo, j+1 /2n +T yg, j+1/2
n )+((a+R s )i , j ,k−1n
T zo, k−1/2n +T zg ,k−1 /2
n )+C i , j ,kn ]
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T yg, j+1 /2
n +Di , j ,kn )Pcog i, j,k
n −T yg , j+1 /2n Pcogi, j+1,k
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Para (i,j,Nz) 1<i<Nx 1<j<Ny
Poi , j,k¿ ¿Poi, j, k+1
n →Poi, j,kn+1 ¿ Poi , j ,k+1
n+1 →TCi , j , k=0
Si,j,k= ((a+Rs )i , j−1 ,k
nTyo, j−1
2
n +Tyg , j−1
2
n )Wi,j,k=( (a+R s )i−1 , j ,k
n T xo,i−1 /2n +T xg ,i−1/2
n )Ci,j,k=
−[( (a+Rs )i−1 , j ,kn
T xo, i−1/2n +T xg,i−1 /2
n )+( (a+Rs )i+1 , j ,kn
T xo,i+1/2n +T xg,i+1/2
n )+( (a+R s )i , j−1 ,kn
T yo , j−1 /2n +T yg , j−1 /2
n )+( (a+Rs )i , j+1, kn
T yo , j+1/2n +T yg, j+1 /2
n )+( (a+Rs )i , j , k−1n
T zo ,k−1 /2n +T zg , k−1/2
n )+Ci , j , kn ]Ei,j,k= ( (a+R s )i+1 , j , k
n T xo ,i+1 /2n +T xg ,i+1 /2
n )
Ni,j,k= ( (a+R s )i , j+1 , kn T yo, j+1/2
n +T yg , j+1/2n )
Ai,j,k = ( (a+R s )i , j ,k +1n T zo , k+1 /2
n +T zg ,k +1/2n )
AB = ( (a+R s )i , j ,k−1n T zo ,k−1 /2
n +T zg ,k−1 /2n )
Fi,j,k=
(aqoscn +qgscn )−T xg, i−1 /2
n Pcogi−1, j, k
n −T yg, j−1/2n Pcogi , j−1 , j,k
n −T zg, k−1/2n Pcogi, j,k−1
n +(T xg ,i−1 /2n +T yg, j−1/2
n +T zg ,k−1 /2n +T xg, i+1 /2
n +T yg, j+1 /2n +Di , j ,k
n )Pcogi, j,kn −T xg, i+1/2
n Pcogi+1 , j,k
n −T yg , j+1/2n Pcog i, j+1 ,k
n −Vb∆ t ( ϕBo )
n+1
R sn+1
Solución del sistema de ecuaciones
Para la solución del sistema de ecuaciones, se usara las ecuaciones halladas al recorrer la malla, por el
método LSOR y usando Thomas se halla las (P¿
) intermedias se da inicio al proceso iterativo, con:
Pi , j ,k(m+1 )=(1−ω )Pi , j , k
m +ωPi , j , k¿ (m+1)
Si Pm+1=Pm, se tiene la presión de la fase aceite.
Una vez calculadas las presiones de la fase petróleo se va a la ecuación (6.107) y de ahí se
despeja así:
Si , j ,kn+1 =(1−Sg)i , j ,k−T xo, i−1 /2
n Poi−1, j,k
n +T xo,i+1/2n Poi+1, j ,k
n +T yo, j−1/2n Poi , j−1 ,k
n +T yo, j+1 /2n Poi, j+1,k
n +T zo , k−1/2n Poi , j ,k−1
n +T zo ,k+1/2n Poi , j ,k+1
n −(T xo,i−1 /2n +T xo, i+1 /2
n +T yo, j−1/2n +T yo, j+1 /2
n +T zo ,k−1 /2n +T zo , k+1 /2
n )Poi, j ,kn −qosc
n −−Vb∆ t ( ϕBo )
n+1
Rsn+1
La saturación del gas al tiempo tn+1 se calcula de
Conocida la saturación de Petróleo al tiempo n+1 se calcula la presión capilar a este tiempo de la relación disponible para presión capilar en función de la saturación de petróleo o de fase líquida y Conocida la presión capilar al tiempo tn+1 y la presión de la fase petróleo al mismo tiempo, se puede calcular la presión de la fase gas al tiempo tn+1.
DIAGRAMAS DE BLOQUES.
Leer datos
Se crea malla y se fijan condiciones iniciales
Se crea malla fantasma
Suponer Sg
Calcular Kr de curvas
Se calculan transmisibilidades
Plantear Stencils para P y S por método IMPIS
Plantear Sistema de Ecuaciones para resolver por LSOR y suponer condiciones (VN- YC)
Crear matriz heptadiagonal para P*
Resolver por Thomas para hallar P*
Suponer Pn (&)
Aplicar LSOR y cacular Pn+1
Comparar con Pn supuesta, converge?
SI
Pn+1=Pn Fase aceiteIMPRIMIR
Calcular So al tiempo n+1
Calcular Pc al tiempo n+1
Con Pc y Po se tiene Pg al tiempo n+iIMPRIMIR
NO
Pn+1 = Pn supuesta (nueva).Repetir desde (&)
ANEXO
ALGORITMOS (Fortlan)
MODELO COMPUTACIONAL.
DEFINICION DE VARIABLES!*********************************************************************
!h = Espesor Yto en Pies!LX = Longitud del yacimiento - dirección X en Pies!LY = Longitud del yacimiento - dirección Y en Pies!LZ = Longitud del yacimiento - dirección Z en Pies!PW = Numero de pozos productores!DX = longitud de los bloques - dirección X(i)!DY = longitud de los bloques - dirección Y(j)!DZ = longitud de los bloques - dirección Z(k)!NPX = numero de perforaciones - dirección X(i) !NPY = numero de perforaciones - dirección Y(j) !NPZ = numero de perforaciones - dirección Z(k) !KX = permeabilidad absoluta - dirección X(i) !KY = permeabilidad absoluta - dirección Y(j) !KZ = permeabilidad absoluta - dirección Z(k) !MD(X) = matriz longitudes de los bloques - dirección X(i) !MD(Y) = matriz longitudes de los bloques - dirección Y(j)!MD(Z) = matriz longitudes de los bloques - dirección Z(k) !MK(X) = matriz permeabilidades absoluta - dirección X(i) !MK(Y) = matriz permeabilidades absoluta - dirección Y(j)!MK(Z) = matriz permeabilidades absoluta - dirección Z(k) !M(PN) = matriz Presión al tiempo n!M(SG) = matriz saturaciones del gas¡KRO = permeabilidad relativa al aceite¡KRG = permeabilidad relativa al gas!TRXOPLUSS = Transmisibilidad en dirección x para el aceite i+1/2!TRXOLESS = Transmisibilidad en dirección x para el aceite i-1/2 !TRYOPLUSS = Transmisibilidad en dirección y para el aceite j+1/2!TRYOLESS = Transmisibilidad en dirección y para el aceite j-1/2 !TRZOPLUSS = Transmisibilidad en dirección z para el aceite k+1/2!TRZOLESS = Transmisibilidad en dirección z para el aceite k-1/2 !TRXGPLUSS = Transmisibilidad en dirección x para el gas i+1/2!TRXGLESS = Transmisibilidad en dirección x para el gas i-1/2 !TRYGPLUSS = Transmisibilidad en dirección y para el gas j+1/2!TRYGLESS = Transmisibilidad en dirección y para el gas j-1/2 !TRZGPLUSS = Transmisibilidad en dirección z para el gas k+1/2!TRZGLESS = Transmisibilidad en dirección z para el gas k-1/2 !TRZGLESS = Transmisibilidad en dirección z para el gas k-1/2 !ES = stencils dirección y (sur) j-1/2 !EN = stencils dirección y (norte) j+1/2 !EW = stencils dirección x (oeste) i-1/2 !EE = stencils dirección x (este) i+1/2 !EA = stencils dirección z (arriba) k+1/2 !EAB = stencils dirección z (abajo) k-1/2 !EC = stencils central i,j,k
!EF = stencils términos independientes i,j,k !M(QG) = matriz caudales de gas!M(QO) = matriz caudales de aceiteP(K) = presión al tiempo kP(K1) = presión al tiempo k+1!ES(PC) = stencils para la presión capilar dirección y (sur) para j-1/2 !EN(PC) = stencils para la presión capilar dirección y (norte) j+1/2 !EW(PC) = stencils para la presión dirección x (oeste) i-1/2 !EE(PC) = stencils para la presión capilar dirección x (este) i+1/2 !EA(PC) = stencils para la presión capilar dirección z (arriba) k+1/2 !EAB(PC) =stencils para la presión capilar dirección z (abajo) k-1/2 !EC(PC) = stencils para la presión capilar central i,j,k !EF(PC) = stencils para la presión capilar términos independientes i,j,k
SUBROUTINE B_Fantasmas
USE General
IMPLICIT NONE
!* MALLA IRREGULAR (VARIACION DE LA LONGITUD DE LOS BLOQUES)
DO I = 1,NX
M_DX(I,:,:) = DX(I)
END DO
DO J = 1,NY
M_DY(:,J,:) = DY(J)
END DO
DO K = 1,NZ
M_DZ(:,:,K) = DZ(K)
END DO
! *MALLA IRREGULAR (VARIACION DE LA PERMEABILIDAD)
DO I = 1,NX
M_KX(I,:,:) = KX(I)
END DO
DO J = 1,NY
M_KY(:,J,:) = KY(J)
END DO
DO K = 1,NZ
M_KZ(:,:,K) = KZ(K)
END DO
! *MALLA BLOQUES FANTASMAS (VARIACION PERMEABLIDADES)
DO J = 0,NY+1
DO K = 0,NZ+1
M_KX(0,J,K) = M_KX(1,J,K)
M_KX(NX+1,J,K)= M_KX(NX,J,K)
M_KY(0,J,K) = M_KY(1,J,K)
M_KY(NX+1,J,K)= M_KY(NX,J,K)
M_KZ(0,J,K) = M_KZ(1,J,K)
M_KZ(NX+1,J,K)= M_KZ(NX,J,K)
END DO
END DO
DO I = 0,NX+1
DO K = 0,NZ+1
M_KX(I,0,K) = M_KX(I,1,K)
M_KX(I,NY+1,K)= M_KX(I,NY,K)
M_KY(I,0,K) = M_KY(I,1,K)
M_KY(I,NY+1,K)= M_KY(I,NY,K)
M_KZ(I,0,K) = M_KZ(I,1,K)
M_KZ(I,NY+1,K)= M_KZ(I,NY,K)
END DO
END DO
DO I = 0,NX+1
DO J = 0,NY+1
M_KX(I,J,0) = M_KX(I,J,1)
M_KX(I,J,NZ+1)= M_KX(I,J,NZ)
M_KY(I,J,0) = M_KY(I,J,1)
M_KY(I,J,NZ+1)= M_KY(I,J,NZ)
M_KZ(I,J,0) = M_KZ(I,J,1)
M_KZ(I,J,NZ+1)= M_KZ(I,J,NZ)
END DO
END DO
! * MALLA BLOQUES FANTASMAS (VARIACION DE LA LONGITUDES DE LOS BLOQUES)
DO J = 0,NY+1
DO K = 0,NZ+1
M_DX(0,J,K) = M_DX(1,J,K)
M_DX(NX+1,J,K)= M_DX(NX,J,K)
M_DY(0,J,K) = M_DY(1,J,K)
M_DY(NX+1,J,K)= M_DY(NX,J,K)
M_DZ(0,J,K) = M_DZ(1,J,K)
M_DZ(NX+1,J,K)= M_DZ(NX,J,K)
END DO
END DO
DO I = 0,NX+1
DO K = 0,NZ+1
M_DX(I,0,K) = M_DX(I,1,K)
M_DX(I,NY+1,K)= M_DX(I,NY,K)
M_DY(I,0,K) = M_DY(I,1,K)
M_DY(I,NY+1,K)= M_DY(I,NY,K)
M_DZ(I,0,K) = M_DZ(I,1,K)
M_DZ(I,NY+1,K)= M_DZ(I,NY,K)
END DO
END DO
DO I = 0,NX+1
DO J = 0,NY+1
M_DX(I,J,0) = M_DX(I,J,1)
M_DX(I,J,NZ+1)= M_DX(I,J,NZ)
M_DY(I,J,0) = M_DY(I,J,1)
M_DY(I,J,NZ+1)= M_DY(I,J,NZ)
M_DZ(I,J,0) = M_DZ(I,J,1)
M_DZ(I,J,NZ+1)= M_DZ(I,J,NZ)
END DO
END DO
! * INICIALIZACION CAUDALES.
M_QO = 0.0D0
M_QG = 0.0D0
DO I=1,PW
M_QO(PW(X)(I),PW(Y)(I),PW(Z)(I)) =QP*(1-FW)
M_QW)(PW(X)(I),PW(Y)(I),PW(Z)(I)) =QP*(FW)}
END DO
END SUBROUTINE B_Fantasmas
SUBROUTINE Curvas_Kr_Pc
USE General
IMPLICIT NONE
! CURVAS DE PERMEABILIDAD DEL PETROLEO Y DEL GAS
DO I =0,NX+1
DO J =0,NY+1
DO K =0,NZ+1
KRO(I,J,K)=14.32*(M_SO_SUP(I,J,K)**4) - 26.534*(M_SO_SUP(I,J,K)**3) + &
& 18.534*(M_SO_SUP(I,J,K)**2) - 6.2752*(M_SO_SUP(I,J,K)) - 0.9691
KRG(I,J,K)=0.6125*(M_SG_SUP(I,J,K)**4) - 1.3316*(M_SG_SUP(I,J,K)**3) + &
& 1.4776*(M_SG_SUP(I,J,K)**2) - 0.2697*(M_SG_SUP(I,J,K)) - 0.0002
PCOG(I,J,K) = 1257.7*(M_SG_SUP(I,J,K)**5) - 2041.4*(M_SG_SUP(I,J,K)**4) - &
& 1233.4*(M_SG_SUP(I,J,K)**3) - 334.49*(M_SG_SUP(I,J,K)**2) + 37.937*(M_SG_SUP(I,J,K)) - 1.0247
END DO
END DO
END DO
END SUBROUTINE Curvas_Kr_Pc
SUBROUTINE Generación_Estenciles
USE General
IMPLICIT NONE
DO I =1,NX
DO J =1,NY
DO K =1,NZ
! ESTENCIL NORTE
EN(I,J,K) = (a+(RS)(I,J+1,K)*TYOPLUS(I,J+1/2,K) + TYGPLUS(I,J+1/2,K)
! ESTENCIL SUR
ES(I,J,K) = (a+(RS))(I,J-1,K)*TYOLESS(I,J-1/2,K) + TYGLESS(I,J-1/2,K)
! ESTENCIL ESTE
EE(I,J,K) = (a+(RS))(I+1,J,K)*TXOPLUS(I + 1/2,J,K) + TXGPLUS(I + 1/2,J,K)
! ESTENCIL OESTE
EW(I,J,K) = (a+(RS))(I-1,J,K)*TXOLESS(I - 1/2,J,K) + TXGLESS(I - 1/2,J,K)
! ESTENCIL ARRIBA
EA(I,J,K) = (a+(RS)(I,J,K+1)*TZOPLUS(I,J,K+1/2) + TZGPLUS(I,J,K+1/2)
! ESTENCIL ABAJO
EAB(I,J,K) = (a+(RS)(I,J,K-1)*TZOLESS(I,J,K-1/2) + TZGLESS(I,J,K-1/2)
! ESTENCIL CENTRAL
EC(I,J,K) = -(EE(I,J,K) + EW(I,J,K) + ES(I,J,K) + EN(I,J,K) + EA(I,J,K) &
& - EAB(I,J,K)+2*M_DX(I,J,K)*M_DY(I,J,K)*M_DZ(I,J,K)*PORO/(5.615*DT))
! ESTENCIL F
EF(I,J,K)=(a*M_QG(I,J,K) + M_QO(I,J,K))-(TYGPLUS(I,J+1/2,K)*PCOG(I,J+1,K)) &
-(TYGLESS(I,J-1/2,K)*PCOG(I,J-1,K)) -(TXGPLUS(I + 1/2,J,K)*PCOG(I+1,J,K)) &
-TXGLESS(I - 1/2,J,K)*PCOG(I-1,J,K))-(TZGPLUS(I,J,K+1/2)*PCOG(I,J,K+1)) -(TZGLESS(I,J,K-1/2)*PCOG(I,J,K-1)) &
-(TYGPLUS(I,J+1/2,K) + TYGLESS(I,J-1/2,K) + TXGLESS(I - 1/2,J,K) &
+ TXGPLUS(I + 1/2,J,K) + TZGPLUS(I,J,K+1/2)+TZGLESS(I,J,K-1/2)+D(I,J,K))*PCOG(I,J,K))-
(DX(I,J,K)*DY(I,J,K)*DZ(I,J,K)*PORO(RS)/(5.615*DT)*(M_PN(I,J,K))
END DO
END DO
END DO
END SUBROUTINE
MODULE General
INTEGER,PUBLIC:: NX,NY,NZ,NPP
INTEGER,PUBLIC:: I,J,K,X
INTEGER,PUBLIC,DIMENSION(:),ALLOCATABLE::NPX,NPY,NPZ
REAL*8,PUBLIC,DIMENSION(:),ALLOCATABLE::KX,KY,KZ,KB,KC
REAL*8,PUBLIC,DIMENSION(:),ALLOCATABLE::DX,DY,DZ
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: M_DY,M_DZ,M_DX
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: M_KY,M_KZ,M_KX
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: M_PN,M_SG
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: KRO,KRG,SO_CAL,M_SG_CAL,M_SO_SUP
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TXOPLUS,TXOLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TYOPLUS,TYOLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TZOPLUS,TZOLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TRSXOPLUS,TRSXOLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TRSYOPLUS,TRSYOLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TRSZOPLUS,TRSZOLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TXGPLUS,TXGLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TYGPLUS,TYGLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: TZGPLUS,TZGLESS
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: ES,EN,EW,EE,EA,EAB,EC,EF
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: M_QG,M_QO,M_SG_SUP
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: P_K,P_K1
REAL*8,PUBLIC,DIMENSION(:,:,:),ALLOCATABLE:: M_PN_OLD,PCOG,RS
REAL*8,PUBLIC,DIMENSION(:),ALLOCATABLE:: BETA,GAMA
REAL*8,PUBLIC,DIMENSION(:),ALLOCATABLE:: PT,ERROR_LSOR
REAL*8, PUBLIC:: PORO,CPORO,PI,MIU_O,MIU_G,BG,BO,CG,CO,PPR,PPC,API
REAL*8, PUBLIC:: TFINAL,DT,SGI,GAMA_G,GAMA_O,QP,TPR,TPC,TEM
REAL*8, PUBLIC :: DENO, NUME,TETA,C1=0.001127,TOLERANCE_SAT,ERRORMAX_SAT
REAL*8, PUBLIC:: OMEGA,TOLERANCE,ERRORMAX,RESIDUO
INTEGER,PUBLIC:: ITERATION_LSOR,I1,I2,I3,I4,ITERATION_SAT,TTT
END MODULE General
! Oil_Gas_IMPIS_LSOR.f90
! FUNCTIONS:
! Oil_Gas_IMPIS_LSOR
!| PROGRAM: IMPIS-LSOR FLUJO PETROLEO-GAS 3D |
!| PURPOSE: RESOLVER SISTEMA DE ECUACIONES PLANTEADAS POR EL MÉTODO IMPIS USANDO EL MÉTODO LSOR PARA FLUJO PETRÓLEO-GAS 3D|
program Oil_Gas_IMPIS_LSOR
USE General
implicit none
! GENERACION MALLA GENERAL
ALLOCATE(M_DX(0:NX+1,0:NY+1,0:NZ+1),M_DY(0:NX+1,0:NY+1,0:NZ+1),M_DZ(0:NX+1,0:NY+1,0:NZ+1))
ALLOCATE(M_KX(0:NX+1,0:NY+1,0:NZ+1),M_KY(0:NX+1,0:NY+1,0:NZ+1),M_KZ(0:NX+1,0:NY+1,0:NZ+1))
ALLOCATE(M_SG(0:NX+1,0:NY+1,0:NZ+1),KRO(0:NX+1,0:NY+1,0:NZ+1),KRG(0:NX+1,0:NY+1,0:NZ+1))
ALLOCATE(M_QG)(NX,NY,NZ),(M_QO)(NX,NY,NZ),(M_PN)(0:NX+1,0:NY+1,0:NZ+1))
ALLOCATE M_SG_SUP((0:NX+1,0:NY+1,0:NZ+1),SO_CALC(NX,NY,NZ))
ALLOCATE(PCOG(0:NX+1,0:NY+1,0:NZ+1))
ALLOCATE(TXOPLUS(1 + 1/2:NX + 1/2,NY,NZ),TXOLESS(1-1/2:NX - 1/2,NY,NZ))
ALLOCATE(TYOPLUS(NX,1+1/2:NY + 1/2,NZ),TYOLESS(NX,1-1/2:NY - 1/2,NZ))
ALLOCATE(TZOPLUS(NX,NY,1 + 1/2:NZ + 1/2),TZOLESS(NX,NY,1-1/2:NZ - 1/2))
ALLOCATE(TRSXOPLUS(1 + 1/2:NX + 1/2,NY,NZ),TRSXOLESS(1-1/2:NX - 1/2,NY,NZ))
ALLOCATE(TRSYOPLUS(NX,1+1/2:NY + 1/2,NZ),TRSYOLESS(NX,1-1/2:NY - 1/2,NZ))
ALLOCATE(TRSZOPLUS(NX,NY,1 + 1/2:NZ + 1/2),TRSZOLESS(NX,NY,1-1/2:NZ - 1/2))
ALLOCATE(TXGPLUS(1 + 1/2:NX + 1/2,NY,NZ),TXGLESS(1-1/2:NX - 1/2,NY,NZ))
ALLOCATE(TYGPLUSS(NX,1 + 1/2:NY + 1/2,NZ),TYGLESS(NX,1-1/2:NY - 1/2,NZ))
ALLOCATE(TZGPLUSS(NX,NY,1 + 1/2:NZ + 1/2),TZGLESS(NX,NY,1-1/2:NZ - 1/2))
ALLOCATE(M_SG_CALC(0:NX+1,0:NY+1,0:NZ+1),(M_PN_OLD(0:NX+1,0:NY+1,0:NZ+1))
ALLOCATE(ES(NX,NY,NZ),EN(NX,NY,NZ),EW(NX,NY,NZ),EF(NX,NY,NZ))
ALLOCATE(EC(NX,NY,NZ),EE(NX,NY,NZ),EA(NX,NY,NZ),EAB(NX,NY,NZ))
ALLOCATE(P_K(NX,NY,NZ),P_K1(NX,NY,NZ),ERROR_SAT_NX)
ALLOCATE(BETA)(NX),GAMA)(NX),PT_LSOR)_NX),ERROR_LSOR_NX,SFL_NX)
ALLOCATE(EN(Pc)(NX,NY,NZ),ES(Pc)(NX,NY,NZ),EE(Pc)(NX,NY,NZ))
ALLOCATE(EW(Pc)(NX,NY,NZ),EA(Pc)(NX,NY,NZ),EAB(Pc)(NX,NY,NZ),EC(Pc)(NX,NY,NZ))
MK(X)=0.0D0; MK(Y)=0.0D0; MK(Z)=0.0D0
CALL B_Fantasmas
OMEGA_LSOR = 0.5
TOLERANCE_LSOR = 0.0005
ITERATION_LSOR = 0
ERRORMAX_LSOR = 1.0
RESIDUO_LSOR = 0.0D0
TOLERANCE_SAT = 0.005
ITERATION_SAT = 0
ERRORMAX_SAT = 1.0
P_K1_LSOR = 0.0D0
P_K_LSOR = PI
! PRESIONES INICIALES
M_SG = SGI
M_PN_OLD = PI
M_PN = PI
SO_CAL = 0.0D0
EW(I,J,K)P_ast(I-1,J,Kk)+EC(I,J,K)P_ast(I,J,K)+EE(I,J,K)P_ast(I+1,J,K)=EF(I,J,K)-S(I,J,K)P_k1(I,J-1,K) &
-EN(I,J,K)P_k1(I,J+1,K)-EA(I,J,K)P_K(I,J,K+1)-EAB(I,J,K)P_K1(I,J,K-1)
!CALCULO ESTENCILES
DO K=1,NZ
DO J=1,NY
DO I=1,NX
EW(I,J,K) = (a+(RS))(I-1,J,K)*TXOLESS(I - 1/2,J,K) + TXGLESS(I - 1/2,J,K)
ES(I,J,K) = (a+(RS))(I,J-1,K)*TYOLESS(I,J-1/2,K) + TYGLESS(I,J-1/2,K)
EAB(I,J,K) = (a+(RS)(I,J,K-1)*TZOLESS(I,J,K-1/2) + TZGLESS(I,J,K-1/2)
EC(I,J,K) = -(EE(I,J,K) + EW(I,J,K) + ES(I,J,K) + EN(I,J,K) + EA(I,J,K) &
& - EAB(I,J,K)+2*M_DX(I,J,K)*M_DY(I,J,K)*M_DZ(I,J,K)*PORO/(5.615*DT))
EN(I,J,K) = (a+(RS)(I,J+1,K)*TYOPLUS(I,J+1/2,K) + TYGPLUS(I,J+1/2,K)
EE(I,J,K) = (a+(RS))(I+1,J,K)*TXOPLUS(I + 1/2,J,K) + TXGPLUS(I + 1/2,J,K)
EA(I,J,K) = (a+(RS)(I,J,K+1)*TZOPLUS(I,J,K+1/2) + TZGPLUS(I,J,K+1/2)
EF(I,J,K)=(a*M_QG(I,J,K) + M_QO(I,J,K))-(TYGPLUS(I,J+1/2,K)*PCOW(I,J+1,K)) &
-(TYGLESS(I,J-1/2,K)*PCOW(I,J-1,K)) -(TXGPLUS(I + 1/2,J,K)*PCOW(I+1,J,K)) &
-TXGLESS(I - 1/2,J,K)*PCOW(I-1,J,K))-(TZGPLUS(I,J,K+1/2)*PCOW(I,J,K+1)) -(TZGLESS(I,J,K-1/2)*PCOW(I,J,K-1)) &
-(TYGPLUS(I,J+1/2,K) + TYGLESS(I,J-1/2,K) + TXGLESS(I - 1/2,J,K) &
+ TXGPLUS(I + 1/2,J,K) + TZGPLUS(I,J,K+1/2)+TZGLESS(I,J,K-1/2)+D(I,J,K))*PCOW(I,J,K))-
(DX(I,J,K)*DY(I,J,K)*DZ(I,J,K)*PORO(BG/BO)/(5.615*DT)*(M_PN(I,J,K))
END DO
END DO
END DO
!Bloques de las esquinas
EW(1,1,1)=0
ES(1,1,1)=0
EAB(1,1,1)=0
ES(NX,1,1)=0
EAB(NX,1,1)=0
EE(NX,1,1)=0
EW(1,NY,1)=0
EN(1,NY,1)=0
EAB(1,NY,1)=0
EAB(NX,NY,1)=0
EE(NX,NY,1)=0
EN(NX,NY,1)=0
EW(1,1,NZ)=0
ES(1,1,NZ)=0
EA(1,1,NZ)=0
ES(NX,1,NZ)=0
EE(NX,1,NZ)=0
EA(NX,1,NZ)=0
EW(1,NY,NZ)=0
EN(1,NY,NZ)=0
EA(1,NY,NZ)=0
EE(NX,NY,NZ)=0
EN(NX,NY,NZ)=0
EA(NX,NY,NZ)=0
!BORDES J=1 y J=NY
DO Y=2,NX-1
ES(I,1,1)=0
EA(I,1,1)=0
EN(I,NY,1)=0
EAB(I,NY,1)=0
ES(I,1,NZ)=0
EA(I,1,NZ)=0
EN(I,NY,NZ)=0
EA(I,NY,NZ)=0
END DO
!BORDES I=1 e I=NX
DO J=2,NY-1
EW(1,J,1)=0
EAB(1,J,1)=0
EE(NX,J,1)=0
EAB(NX,J,1)=0
EW(1,J,NZ)=0
EA(1,J,NZ)=0
EE(NX,J,NZ)=0
EA(NX,J,NZ)=0
END DO
!Bloques internos K=1 y K=NZ
DO J=2,NY-1
DO I=2,NX-1
EAB(I,J,1)=0
EA(I,J,NZ)=0
END DO
END DO
!Bloques internos J=1 y J=NY
DO K=2,NZ-1
DO I=2,NX-1
ES(I,1,K)=0
EN(I,NY,K)=0
END DO
END DO
!Bloques internos I=1 e I=NX
DO K=2,NZ-1
DO J=2,NY-1
EW(1,J,K)=0
EE(NX,J,K)=0
END DO
END DO
! ALGORITMO DE THOMAS WP
DO K = 1, NZ
DO J = 1,NY
DO I = 1,NX
EFL(I) = EF(I,J,K)
END DO
BETA(1) = EE(1,J,K)/EC(1,J,K)
GAMA(1) = EFL(1)/EC(1,J,K)
DO I1 = 2, NX
BETA(I1) = EE(I1,J,K)/(EC(I1,J,K)-EW(I1,J,K)*BETA(I1-1))
GAMA(I1) = (EFL(I1)-EW(I1,J,K)*GAMA(I1-1))/(EC(I1,J,K)-EG(I1,J,K)*BETA(I1-1))
END DO
PT(NX) = GAMA(NX)
DO I2 = NX-1, 1, -1
PT(I2) = GAMA(I2) - BETA(I2)*PT(I2+1)
END DO
DO I3 = 1, NX
P_K1(I3,J,K) = (1-OMEGA)*P_K(I3,J,K) + PT(I3)*OMEGA
END DO
DO I4 = 1, NX
ERROR(I4) = ABS((P_K1(I4,J,K)-P_K(I4,J,K)))
END DO
ERRORMAX = MAXVAL(ERROR)
IF (ERRORMAX .EQ. 0.0) THEN
ERRORMAX = 1.0
END IF
RESIDUO = ERRORMAX
END DO
END DO
ITERATION = ITERATION
P_K= P_K1
! CALCULO SATURACION
DO K = 1, NZ
DO J = 1,NY
DO I = 1,NX
SG_CALC(I,J,K) = (1-M_SO(I,J,K)) - ((TYOPLUS(I,J+1/2,K)*M_PN(I,J+1,K) + TYOLESS(I,J-1/2,K)*M_PN(I,J-1,K) + &
& TXOPLUS(I+1/2,J,K)*M_PN(I+1,J,K) + TXOLESS(I-1/2,J,K)*M_PN(I-1,J,K) + &
& TZOPLUS(I,J,K+1/2)*M_PN(I,J,K+1) + TZOLESS(I,J,K-1/2)*M_PN(I,J,K-1) - &
& -((TYOPLUS(I,J+1/2,K) + TYOLESS(I,J-1/2,K) + TXOPLUS(I+1/2,J,K) +TXOLESS(I-1/2,J,K) &
& + TZOPLUS(I,J,K+1/2) + TZOLESS(I,J,K-1/2))*M_PN(I,J,K)) - &
& 2*M_QO(I,J,K) )*(2*DT/(M_DY(I,J,K)*M_DX(I,J,K)*M_DZ(I,J,K)))
END DO
END DO
END DO
! ITERACION SATURACIONES
DO K = 1, NZ
DO J = 1,NY
DO I = 1,NX
ERROR_SAT(I) = ABS((M_SG_CALC(I,J,K)-M_SG(I,J,K)))
ERRORMAX_SAT = MAXVAL(ERROR_SAT)
IF (ERRORMAX_SAT .EQ. 0.0) THEN
ERRORMAX_SAT = 1.0
END IF
END DO
END DO
END DO
ITERATION_SAT = ITERATION_SAT + 1
IF (ERRORMAX_LSOR > TOLERANCE_LSOR) THEN
M_PN = M_PN_OLD
P_K = M_PN_OLD
M_SG_SUP = MAT_SG_CALC
END IF
END DO
PAUSE
end program Oil_Gas_IMPIS_LSOR
SUBROUTINE PVT
USE General
IMPLICIT NONE
! CALCULO DE PROPIEDADES A LA PRESION SUPUESTA.
TPC = 187 + 330*GAMA_G - 71.5*(GAMA_G**2)
PPC = 706 - 51.7*GAMA_G - 11.1*(GAMA_G**2)
TPR = TEM/TPC
KA =((9.379+0.01607*29*GAMA_G)*(TEM**1.5))/(209.2 + 19.26*29*GAMA_G + TEM)
KB =3.448 +986.14/TEM +0.01009*29*GAMA_G
KC=2.447 - 0.224*KB
DO I=0,NX+1
DO J=0,NY+1
DO K=0,NZ+1
! STANDING CORRELATIONS
PPR(I,J,K) = P(I,J,K)/PPC
Z(I,J,K) = PPR(I,J,K)*(-0.0284*TPR + 0.0625) + 0.4714*TPR - 0.0011
BG(I,J,K) = (14.7*Z(I,J,K)*TEM)/(520*P(I,J,K))
DG(I,J,K)=(PPR(I,J,K)*29*GAMA_G)/(Z(I,J,K)*10.73*TEM)
! CORRELATION GLASO
UG(I,J,K)=0.0001*KA*((EXP)**(KB*(DG(I,J,K)**KC)))
END DO
END DO
END DO
! CALCULO DE LAS PROPIEDADES INICIALES
API = (141.5/GAMA_O) - 131.5
DO I=0,NX+1
DO J=0,NY+1
DO K=0,NZ+1
! STANDING
X = 0.0125*API - 0.00091*(TEM-460)
RS(I,J,K)=GAMA_G*((((PI/18.2) + 1.4)*(10**X) )**1.2048)
END DO
END DO
END DO
END SUBROUTINE PVT
!************************************************************************
! CALCULO DE TRANSMISIBILIDADES DEL ACEITE CON GAS EN SOLUCIÓN EN EL EJE X
DO I =1,NX-1
DO J =1,NY
DO K = 1,NZ
NUM= 2*0.001127*M_DY(I,J,K)*M_DZ(I,J,K)*M_KBX(I,J,K)*M_KBX(I+1,J,K)*KRO(I+1,J,K)*KRO(I,J,K)
DEN= BO*MIU_O*M_DX(I,J,K)*(M_KBX(I,J,K)*KRO(I,J,K) + M_KBX(I+1,J,K)*KRO(I+1,J,K))
TRSXOPLUS(I + 1/2,J,K)=(NUM/DEN)*RS
END DO
END DO
END DO
DO I =2,NX
DO J =1,NY
DO K = 1,NZ
NUM= 2*0.001127*M_DY(I,J,K)*M_DZ(I,J,K)*M_KBX(I,J,K)*M_KBX(I-1,J,K)*KRO(I-1,J,K)*KRO(I,J,K)
DEN= BO*MIU_O*M_DX(I,J,K)*(M_KBX(I,J,K)*KRO(I,J,K) + M_KBX(I-1,J,K)*KRO(I-1,J,K))
TRSXOLESS(I - 1/2,J,K)=(NUM/DEN)*RS
END DO
END DO
END DO
!************************************************************************
!CALCULO DE TRANSMISIBILIDADES DEL ACEITE CON GAS EN SOLUCIÓN EN EL EJE Y
!************************************************************************
DO K = 1,NZ
DO I =1,NX
DO J =1,NY-1
NUM= 2*0.001127*M_DX(I,J,K)*M_DZ(I,J,K)*M_KBY(I,J,K)*M_KBY(I,J+1,K)*KRO(I,J+1,K)*KRO(I,J,K)
DEN= BO*MIU_O*M_DY(I,J,K)*(M_KBY(I,J,K)*KRO(I,J,K) + M_KBY(I,J+1,K)*KRO(I,J+1,K))
TRSYOPLUS(I,J+1/2,K)=(NUM/DEN)*RS
END DO
END DO
END DO
DO I =1,NX
DO J =2,NY
DO K = 1,NZ
NUM= 2*0.001127*M_DX(I,J,K)*M_DZ(I,J,K)*M_KBY(I,J,K)*M_KBY(I,J-1,K)*KRO(I,J-1,K)*KRO(I,J,K)
DEN= BO*MIU_O*M_DY(I,J,K)*(M_KBY(I,J,K)*KRO(I,J,K) + M_KBY(I,J-1,K)*KRO(I,J-1,K))
TRSYOLESS(I,J-1/2,K)=(NUM/DEN)*RS
END DO
END DO
END DO
!************************************************************************
!CALCULO DE TRANSMISIBILIDADES DEL ACEITE CON GAS EN SOLUCIÓN EN EL EJE Z
!************************************************************************
DO I =1,NX
DO J =1,NY
DO K = 1,NZ-1
NUM= 2*0.001127*M_DX(I,J,K)*M_DY(I,J,K)*M_KBZ(I,J,K)*M_KBZ(I,J,K+1)*KRO(I,J,K+1)*KRO(I,J,K)
DEN= BO*MIU_O*M_DZ(I,J,K)*(M_KBZ(I,J,K)*KRO(I,J,K) + M_KBZ(I,J,K+1)*KRO(I,J,K+1))
TRSZOPLUS(I,J,K+1/2)=(NUM/DEN)*RS
END DO
END DO
END DO
DO I =1,NX
DO J =1,NY
DO K = 2,NZ
NUM= 2*0.001127*M_DX(I,J,K)*M_DY(I,J,K)*M_KBZ(I,J,K)*M_KBZ(I,J,K-1)*KRO(I,J,K-1)*KRO(I,J,K)
DEN= BO*MIU_O*M_DZ(I,J,K)*(M_KBZ(I,J,K)*KRO(I,J,K) + M_KBZ(I,J,K-1)*KRO(I,J,K-1))
TRSZOLESS(I,J,K-1/2)=(NUM/DEN)*RS
END DO
END DO
END DO
!*************************************************
!CALCULO DE TRANSMISIBILIDADES DEL GAS EN EL EJE X
!*************************************************
DO I =1,NX-1
DO J =1,NY
DO K = 1,NZ
NUM= 2*0.001127*M_DY(I,J,K)*M_DZ(I,J,K)*M_KBX(I,J,K)*M_KBX(I+1,J,K)*KRG(I+1,J,K)*KRG(I,J,K)
DEN= BG*MIU_G*M_DX(I,J,K)*(M_KBX(I,J,K)*KRG(I,J,K) + M_KBX(I+1,J,K)*KRG(I+1,J,K))
TXGPLUS(I + 1/2,J,K)= NUM/DEN
END DO
END DO
END DO
DO I =2,NX
DO J =1,NY
DO K = 1,NZ
NUM= 2*0.001127*M_DY(I,J,K)*M_DZ(I,J,K)*M_KBX(I,J,K)*M_KBX(I-1,J,K)*KRG(I-1,J,K)*KRG(I,J,K)
DEN= BG*MIU_G*M_DX(I,J,K)*(M_KBX(I,J,K)*KRG(I,J,K) + M_KBX(I-1,J,K)*KRG(I-1,J,K))
TXGLESS(I - 1/2,J,K)= NUM/DEN
END DO
END DO
END DO
!*************************************************
!CALCULO DE TRANSMISIBILIDADES DEL GAS EN EL EJE Y
!*************************************************
DO I =1,NX
DO J =1,NY-1
DO K = 1,NZ
NUM= 2*0.001127*M_DX(I,J,K)*M_DZ(I,J,K)*M_KBY(I,J,K)*M_KBY(I,J+1,K)*KRG(I,J+1,K)*KRG(I,J,K)
DEN= BG*MIU_G*M_DY(I,J,K)*(M_KBY(I,J,K)*KRG(I,J,K) + M_KBY(I,J+1,K)*KRG(I,J+1,K))
TYGPLUS(I,J+1/2,K)= NUM/DEN
END DO
END DO
END DO
DO I =1,NX
DO J =2,NY
DO K = 1,NZ
NUM= 2*0.001127*M_DX(I,J,K)*M_DZ(I,J,K)*M_KBY(I,J,K)*M_KBY(I,J-1,K)*KRG(I,J-1,K)*KRG(I,J,K)
DEN= BG*MIU_G*M_DY(I,J,K)*(M_KBY(I,J,K)*KRG(I,J,K) + M_KBY(I,J-1,K)*KRG(I,J-1,K))
TYGLESS(I,J-1/2,K)= NUM/DEN
END DO
END DO
END DO
!*************************************************
!CALCULO DE TRANSMISIBILIDADES DEL GAS EN EL EJE Z
!*************************************************
DO I =1,NX
DO J =1,NY
DO K = 1,NZ-1
NUM= 2*0.001127*M_DX(I,J,K)*M_DY(I,J,K)*M_KBZ(I,J,K)*M_KBZ(I,J,K+1)*KRG(I,J,K+1)*KRG(I,J,K)
DEN= BG*MIU_G*M_DZ(I,J,K)*(M_KBZ(I,J,K)*KRG(I,J,K) + M_KBZ(I,J,K+1)*KRG(I,J,K+1))
TZGPLUS(I,J,K+1/2)= NUM/DEN
END DO
END DO
END DO
top related