Sunteți pe pagina 1din 45

Notas CFD (Metodo de Volumen Finito y

Diferencias Finitas)

Saul Piedra y Jose Nunez


Contents

1 Introduccion 3
1.1 Conceptos basicos de programacion en Fortran . . . . . . . . . . . . . . . . 3
1.1.1 Estructura general de un codigo . . . . . . . . . . . . . . . . . . . . 3
1.2 Repaso basico de metodos numericos . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Raz de una funcion . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Problema de valor inicial . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Ecuaciones basicas de la dinamica de fluidos . . . . . . . . . . . . . . . . . 10
1.3.1 Conservacion de masa . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Conservacion de cantidad de movimiento . . . . . . . . . . . . . . . 10
1.3.3 Conservacion de energa . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Metodo de volumen Finito 11


2.1 Ecuacion general de Adveccion-Difusion . . . . . . . . . . . . . . . . . . . 11
2.2 Ecuaciones discretas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Implementacion de la condiciones de frontera: naturales y esenciales 14
2.2.2 Solucion de ecuaciones de Laplace y Poisson para 1D, 2D y 3D . . . 15
2.3 El metodo de volumen finito para problemas de Adveccion-difusion . . . . 17
2.4 Discretizacion del termino convectivo . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Esquema central . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2 Esquema upwind . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Ejemplos de trabajo en 1D . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 El metodo de volumen Finito para resolver ecuaciones en 2D . . . . . . . . 19
2.6.1 Ejemplo # 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6.2 Ejemplo # 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7 Discretizacion del termino temporal . . . . . . . . . . . . . . . . . . . . . . 20

1
2.7.1 Explicit or Forward Euler . . . . . . . . . . . . . . . . . . . . . . . 20
2.7.2 Implicit or Backward Euler . . . . . . . . . . . . . . . . . . . . . . 20
2.7.3 The implicit Crank-Nicolson method . . . . . . . . . . . . . . . . . 20
2.7.4 Alternating Direction Implicit (ADI) method . . . . . . . . . . . . . 21
2.7.5 Higher ordes methods: Adams-Bashforth . . . . . . . . . . . . . . . 21
2.7.6 Higher ordes methods: Runge kutta . . . . . . . . . . . . . . . . . . 21
2.8 Solucion de sistemas de ecuaciones lineales: Metodos directos . . . . . . . . 22
2.8.1 Tridiagonal matrix algorithm - TDMA (Thomas algorithm) . . . . 22
2.9 Solucion de sistemas de ecuaciones lineales: Metodos iterativos . . . . . . . 22
2.9.1 Metodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Solucion de las ecuaciones de Navier-Stokes 23


3.1 El arreglo de las variables en la malla . . . . . . . . . . . . . . . . . . . . . 23
3.2 Acoplamiento presion velocidad . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Metodo SIMPLE-SIMPLEC . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 Esquema explicito de avance temporal: Proyeccion de Chorin . . . . . . . . 29
3.5 Condiciones de frontera para las ecuaciones de Navier-Stokes . . . . . . . . 29

4 El metodo de diferencias finitas 30

5 Problemas de dinamica de fluidos y Magnetohidrodinamica 41


5.1 Problemas de dinamica de fluidos . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.1 Flujo de Poiseuille . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.2 Lid Driven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.3 Conveccion natural . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Problemas de Magnetohidrodinamica . . . . . . . . . . . . . . . . . . . . . 44
5.2.1 Flujo de Hartmann . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2.2 Obstaculo magnetico . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2.3 Flujo Dipolar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Chapter 1

Introduccion

El objetivo general de este curso es la implementacion del metodo de volumen finito para
resolver la ecuaciones de la mecanica de fluidos. Este trabajo consiste principalmente
en la solucion de ecuaciones diferenciales parciales. Con el metodo de volumen finito,
las ecuaciones se escriben de forma discretizada, con lo que se obtiene un sistema de
ecuaciones lineales.
Se deberan escribir los algoritmos en un codigo fuente para un lenguaje de programacion y
como recomendacion se puede utilizar Fortran 90/95. La habilidad que se tenga del manejo
de cualquier otro lenguaje de programacion y el conocimiento sobre la implementacion
de algoritmos sera muy util. Primera comenzaremos con un repaso basico sobre estos
aspectos y para finalizar se enuncian las ecuaciones a resolver que tenemos como objetivo

1.1 Conceptos basicos de programacion en Fortran


Fortran en un lenguaje de programacion de proposito general, de alto nivel que te per-
mite expresar los algoritmos matematicos de una manera muy adecuada especialmente
adaptado al calculo numerico y a la computacion cientfica. La version mas actual de For-
tran lo convierte en un lenguaje multiparadigma que soporta , programacion de arreglos,
programacion modular y programacion orientada a objetos y programacion generica.

1.1.1 Estructura general de un codigo


La estructura general de un codigo en Fortran es:

[PROGRAM name]
[specification-part]
[execution-part]
[CONTAINS
[internal-subprogram-part]

3
END [PROGRAM [name]]
[external-subprogram-part]

* name: Es el nombre del programa


* specification-part: Es la parte donde se escriben las sentencias de especificacion, como
son, declaracion de variables, interfaces de procesos o funciones externas, accesos a mdulos
y bibliotecas.
* execution-part: Esta constituido de una o mas sentencias ejecutorias.
* internal-subprogram-part: Son los subprogramas de acceso interno.
* external-subprogram-part: Subprogramas externos. Hay muchas cosas que se necesitan
saber para entender un lenguaje de programacion:

Variables, declaraciones y tipos

Expresiones Logicas

Condicionales

Ciclos

Arreglos

Entrada/salida Basica

Procedimientos

Es aqu donde los conocimientos previo de cualquier otro lenguaje son de utilidad, ya que
la implementacion en Fortran de cada una de estas caractersticas es muy similar.

Variables, declaraciones y tipos

Fortran incluye los siguientes tipos de variables:

INTEGER: Existen cuatro tipos de datos enteros, INTEGER*1, INTEGER*2, IN-


TEGER*4, INTEGER*8

REAL: Existen tres tipos de datos real, REAL*4, REAL*8, REAL*16

COMPLEX: Existen tres tipos de datos complejos, COMPLEX*8, COMPLEX*16,


COMPLEX*32

LOGICAL

CHARACTER

Derived Type
Expresiones Logicas

Operator Relationship
.LT. or < Less than
.LE. or <= Less than or equal to
.EQ. or = = Equal to
.NE. or /= Not equal to
.GT. or > Greater than
.GE. or >= Greater than or equal to

Condicionales

Un caso de un condicional es el bloque sentencia IF, que se realiza de la siguiente manera

IF (expr) THEN
[statements]
ELSE IF (expr) THEN
[statements]...
ELSE
[statements]
END IF

El siguiente ejemplo muestra el uso del bloque IF

IF (x==0)THEN
z=y/x
END IF

para seleccionar varias opciones se utiliza el bloque sentencia SELECT CASE que se
realiza de la siguiente manera

SELECT CASE (expr)


CASE (case-value [, case-value] ...)
[statements] ...
[CASE DEFAULT
[statements]
END SELECT

El siguiente ejemplo muestra el uso del bloque SELECT CASE

SELECT CASE (ITEST .EQ. 1)


CASE (.TRUE.)
CALL SUB1 ()
CASE (.FALSE.)
CALL SUB2 ()
END SELECT
Ciclos

Los ciclos se ejecutan con el bloque sentencia Do

DO [loop-control]
[statements]
END DO

El siguiente ejemplo muestra el uso del bloque Do para calcular el factorial

s=1
DO j = 2, 10, 1
s = s*j
END DO

Tambien se puede combinar un ciclo con un condicional con el bloque DO WHILE

Do While [condition]
[statements]
END DO

El siguiente ejemplo muestra el uso del bloque DO WHILE para sumar un incremento
unitario

s=0
DO While (s<20)
s = s+1
END DO

Para el manejo mas optimo de arreglos se puede utilizar un ciclo FORALL

FORALL (triplet-spec [,triplet-spec] ...[, mask-expr])


[forall-body-stmt]
END FORALL

Ejemplo

FORALL(I = 1:N, J = 1:N, A(I, J) .NE. 0.0)


B(I, J) = 1.0 / A(I, J)
END FORALL
Arreglos

Los arreglos son variables como si se trataran de matrices de un tipo de datos, como por
ejemplo real o integer

REAL X(3)
REAL, DIMENSION (2, 5) :: D
INTEGER L(2:11,3)

Las propiedades del arreglo L son las siguientes

Data type: INTEGER


Rank: 2 (two dimensions)
Bounds: First dimension: 2 to 11
Second dimension: 1 to 3
Size: 30; the product of the extents: 10 x 3
Shape: (/10,3/) (or 10 by 3); a vector of the extents 10 and 3

En los arreglos anteriores se supone memoria de tamano conocida y a lo cual se llama


memoria estatica. La manera para crear arreglos de tamano variable es declarandolos de
tipo ALLOCATABLE, la cual se conoce como memoria dinamica

INTEGER, ALLOCATABLE :: matrix(:,:)


REAL, ALLOCATABLE :: vector(:)

Despues de se asigna su tamano con la sentencia

ALLOCATE(matrix(10:25), vector(3), STAT=ERR)

Si se decide cambiar el tamano del arreglo, primero se libera la memoria con la sentencia

DEALLOCATE(matrix, vector, STAT = ALLOC_ERR)

Entrada/salida Basica

Las sentencias basicas de input/output en Fortran 90/95 son: READ, WRITE

WRITE (eunit, format [, err]) [io-list]


READ (eunit, format [, err] [, end]) [io-list]
Examples
write(*,*)x,y
Read(*,*)n
Write(*,*)"Hello world"
Read(*,*)Vector(1:3)
Write(unit=2,*)x,y,z
eunit: Es la unidad de escritura, * es el valor default, salida a consola, unit=2 es la salida
a un archivo fort.2.
format: Es el formato de lectura o escritura, * es el formato libre.

Procedimientos

Fortran se caracteriza por el uso de procedimientos, que son subprogramas, esto permite
organizar el codigo por procesos y funcionalidades. Los procesos basicos se construyen en
un bloque SUBROUTINE o FUNCTION

SUBROUTINE name [([d-arg-list])]


[specification-part]
[execution-part]
END SUBROUTINE

[type]FUNCTION name [([d-arg-list])]


[specification-part]
[execution-part]
END FUNCTION

Las Subrutinas se invocan utilizando la sentencia

CALL sub [( [a-arg [, a-arg] ...] )]

Examples
CALL PNTOUT(A,N,ABCD)
CALL EXIT

Una funcion se invoca asignado su valor con el tipo de variable correspondiente

CHARACTER*(*) FUNCTION REDO(CARG)


CHARACTER*1 CARG
DO I=1,LEN(REDO)
REDO(I:I) = CARG
END DO
END FUNCTION

CHARACTER*1000 REDO, MANYAS, MANYZS


MANYAS = REDO(A)
MANYZS = REDO(Z)
1.2 Repaso basico de metodos numericos
Para resolver las ecuaciones que son nuestro objetivo, son de utilidad los conocimien-
tos sobre la implementacion de algun metodo numerico para resolver cualquier tipo de
problema matematico. A continuacion tomaremos algunos problemas matematicos e im-
plementaremos sus algoritmos de solucion en Fortran 90/95

1.2.1 Raz de una funcion


El proceso de encontrar una raz de una ecuacion, es la solucion de una ecuacion de la
forma f (x) = 0, la raz de la ecuacion tambien ese le conoce como un cero de la funcion.
Utilizaremos el metodo de Newton-Raphson para encontrar el cero de una funcion.

La aproximacion xn+1 a la raz de f (x) = 0 se calcula de la aproximacion xn usando la


ecuacion
f (xn )
xn+1 = xn 0
f (xn )
Ejemplo: Sea
f (x) = x2 2

Hallar su raz. Solucion: x = 2

1.2.2 Problema de valor inicial


Ahora vamos a encontrar una solucion aproximada al problema
dy
= f (y, t), atb
dt
con la condicion inicial y(a) = . La tecnica que utilizaremos sera el metodo de Euler.
Con este metodo podemos calcular una solucion aproximada en N+1 puntos {t0 , t1 , ...tN }
donde
ba
ti = a + ih, h=
N
La implementacion del metodo de Euler es la siguiente:
w0 =
wi+1 = wi + h f (ti , wi )
para i = 0, 1, ..., N 1

Ejemplo: Resolver el problema de valor inicial


dy
= y, 0t1
dt
con la condicion inicial y(0) = 1. Solucion y = et
1.3 Ecuaciones basicas de la dinamica de fluidos
Para finalizar este capitulo escribiremos las ecuaciones de la dinamica de fluidos para un
fluido incompresible.

1.3.1 Conservacion de masa


Para un fluido incompresible la ecuacion de conservacion de masa es la siguiente

~u = 0 (1.1)

1.3.2 Conservacion de cantidad de movimiento


La ecuacion de conservacion de cantidad de movimiento o ecuaciones de Navier-Stokes
son
~u
+ (~u ) ~u = p/ + 2~u + f~ (1.2)
t

1.3.3 Conservacion de energa


T
+ (~u ) T = 2 T. (1.3)
t
Se trata de un conjunto de ecuaciones diferenciales parciales acopladas.
Chapter 2

Metodo de volumen Finito

2.1 Ecuacion general de Adveccion-Difusion


Para comenzar las ecuaciones de balance se escriben de una manera general como una
ecuacion de adveccion - difusion

+ (~u) = () + S, (2.1)
t
donde

= variable dependiente generalizada

= Coeficiente de difusion generalizado

S= Termino fuente

Con la definicion adecuada de los parametros, las ecuaciones de conservacion tiene la


forma requerida, como se puede ver en la siguiente tabla

Ecuacion S
Masa 1 0 0
p
x-Momentum ux 1 x
p
y-Momentum uy 1 y
p
z-Momentum uz 1 z
Energa T 0

Table 2.1: Coeficientes y parametros de la ecuacion general en cilndricas

11
2.2 Ecuaciones discretas
La discretizacion de las ecuaciones se obtiene integrando sobre el volumen de control cada
uno de los terminos de la ecuacion 2.1.

La integral del termino temporal es la siguiente


Z
V
dV = (P 0P ) (2.2)
t t
La integral del termino convectivo es
Z Z
(~u)dV = (~u) ndS =

(u)e Se e (u)w Sw w + (v)n Sn n (v)s Ss s + (w)f Sf f (w)b Sb b (2.3)

La integral del termino difusivo es


Z Z    

()dV = () ndS = Se Sw +
x e x w
       

Sn Ss + Sf Sb (2.4)
y n y s z f z b

La integral del termino fuente es


Z
SdV = SP V. (2.5)

Aproximacion de los terminos convectivos:Los terminos convectivos de la ecuacion general


deben de tratarse con mayor cuidado, debido a que representan la parte no lineal de las
ecuaciones. Para poder calcular el valor de en las caras del volumen se utilizo un valor
promedio central que provee una aproximacion de segundo orden
E + P W + P
e = w =
2 2
N + P S + P
n = s =
2 2
F + P B + P
f = b =
2 2
Aproximacion de los terminos difusivos: La discretizacion de la parte difusiva de la
ecuacion general se hizo mediante diferencias centrales que proveen una aproximacion
de segundo orden
   
E P P W
= =
x e x x w x

   
N P P S
= =
y n y y s y
   
F P P B
= =
z f z y b z
Volumen de control
V = xyz
Superficie de control

Se = Sw = yz; Sn = xz; Ss = xz; Sf = Sb = xy

Sustituyendo
V E + P W + P N + P
(P 0P ) + (u)e Se ( ) (u)w Sw ( ) + (v)n Sn ( )
t 2 2 2
S + P F + P B + P
(v)s Ss ( ) + (w)f Sf ( ) (w)b Sb ( )=
 2  2  2  
E P P W N P P S
Se Sw + Sn Ss +
x x y y
   
F P P B
Sf Sb (2.6)
z z

Al final de aplicar el metodo de volumen de control llegamos a un sistema de ecuaciones


como el siguiente

aP P = aE E + aW W + aN N + aS S + aF F + aB B + SP . (2.7)

Este sistema representa la forma discreta de las ecuaciones de balance, donde los coefi-
cientes aP s son los siguientes

Se (u)e Se
aE = (2.8)
x 2
Sw (u)w Sw
aW = + (2.9)
x 2
Sn (v)n Sn
aN = (2.10)
y 2
Ss (v)s Ss
aS = + (2.11)
y 2
Sf (w)f Sf
aF = (2.12)
z 2
Sb (w)b Sb
aB = + (2.13)
z 2
V
aP = aE + aW + aN + aS + aF + aB + (2.14)
t
V
SP = 0P + SP V. (2.15)
t
La ecuacion de continuidad en su forma discreta es la siguiente

(u)e Se (u)w Sw + (v)n Sn (v)s Ss + (w)f Sf (w)b Sb = 0 (2.16)

Con las condiciones de frontera del problema implementadas en las ecuaciones discretizadas,
el sistema de ecuaciones puede ser resuelto y se logra tener la solucion numerica de la
ecuacion.

2.2.1 Implementacion de la condiciones de frontera: naturales


y esenciales
Las condiciones de frontera del problema generalmente son representadas por una cierta
distribucion de temperatura o velocidad en las paredes (condiciones de frontera de primer
tipo, llamadas condiciones tipo Dirichlet) o una distribucion de flujo de calor (condiciones
de frontera de segundo tipo, llamadas condiciones tipo Neumann). La forma discreta de
aplicar las condiciones de frontera en el metodo de volumen finito es la siguiente

Condiciones tipo Dirichlet

Consideremos el caso de una distribucion de temperatura uniforme sobre la frontera norte


n . Al aplicar la discretizacion en el nodo adyacente el valor de N se interpola utilizando
el valor de frontera n
N + P
n = b N = 2b P . (2.17)
2
Sustituyendo en la ecuacion 3.1 se obtiene

aP P = aN N + aS S + aW W + aE E + aF F + aB B + SP , (2.18)

donde
aP = aP + aN ; aN = 0; SP = SP + 2aN b

Condiciones tipo Neumann

En esta caso la razon de cambio de la variable en la frontera es conocida 0b . El valor de


N se interpola de la siguiente forma
 
0 N P
b = N = P + y0b . (2.19)
y n y

Sustituyendo en la ecuacion 3.1 se obtiene

aP P = aN N + aS S + aW W + aE E + aF F + aB B + SP , (2.20)

donde
aP = aP aN ; aN = 0; SP = SP + aN y0b

2.2.2 Solucion de ecuaciones de Laplace y Poisson para 1D, 2D


y 3D
En esta seccion vamos a ver una pequena descripcion de los pasos a realizar para im-
plementar el metodo de volumen finito, para resolver ecuaciones basicas en fsica como
son la ecuacion de Laplace y Poisson. Estas ecuaciones pueden describir procesos fsicos
como son la transferencia de calor en estado permanente (Laplace) con generacion de
calor (Poisson).
Considere la ecuacion
 
d d
k +q =0 (2.21)
dx dx

Paso 1: Generacion de la malla.

El primer paso en el metodo de volumen finito es dividir el dominio en un conjunto discreto


de volumenes de control. El valor de de aproxima en el centro del volumen de control.
Si la longitud del dominio es L y lo dividimos en N x volumenes de control
L
dx =
Nx
Paso 2: discretizacion

El paso clave del metodo de volumen finito es la integracion de la ecuacion gobernante


sobre un volumen de control, con lo que obtenemos la ecuacion discreta en el volumen.
Para la ecuacion 2.21 , = k y S = q, ~u = 0 y t
= 0. La discretizacion de la ecuacion
general de Adveccion difusion se vio en la seccion 2.1. Entonces la forma discreta de la
ecuacion 2.21 es:
aP P = aE E + aW W + SP . (2.22)
Este sistema representa la forma discreta de las ecuaciones de balance, donde los coefi-
cientes aP s son los siguientes
Se
aE = (2.23)
x
Sw
aW = (2.24)
x
aP = aE + aW (2.25)
SP = SP V. (2.26)

El sistema de ecuaciones se complementa con las condiciones de frontera.

Paso 2: Solucion del sistema de ecuaciones

El sistema de ecuaciones lineales que se obtiene se debe resolver y entonces obtenemos la


distribucion de en los centros de los volumenes de control.

Ejemplo 1: ecuacion de Laplace para 1D

Considerese la ecuacion diferencial


 
d dT
k =0 (2.27)
dx dx

en el dominio 0 x L. Con las condiciones de frontera

T = TA , x = 0; T = TB , x = L; (2.28)

con k=1000 W/mK, L=0.5 m, TA = 100 K, TB = 500 K y el rea transversal es A =


1 102 .

Solucion:
TB TA
T = TA + x (2.29)
L
Ejemplo 2: ecuacion de Poisson para 1D

Considere la ecuacion  
d dT
k +q =0 (2.30)
dx dx
en el dominio 0 x L. Con las condiciones de frontera

T = TA , x = 0; T = TB , x = L; (2.31)

con k=0.5 W/mK, L=0.02 m,TA = 100 K, TB = 200 K, q = 1000kW/m3 .

Solucion:
q TB TA
T = TA x(x L) + x (2.32)
2k L

Ejemplo 3: Conductividad variable

Considere la ecuacion  
d dT
k =0 (2.33)
dx dx
en el dominio 1 x 1. Con las condiciones de frontera

T = TA , x = 1; T = TB , x = 1; (2.34)

donde TA = 1.0 K, TB 0.5 K y

k = k1, x < 0; k = k2, x 0; (2.35)

con k1=1.0, k2=10.0.

Solucion:
T = TA + a(x + 1) x<0 (2.36)
T = TB + b(x + 1) x0 (2.37)

TB TA b
b= ; a = k2 (2.38)
1 + k2/k1 k1

2.3 El metodo de volumen finito para problemas de


Adveccion-difusion
En esta seccion veremos la implementacion del metodo de volumen finito, para resolver
ecuaciones de adveccion-difusion. Estas ecuaciones describen la transferencia de calor en
un fluido que se mueve con una velocidad.
2.4 Discretizacion del termino convectivo
La ecuacion que queremos resolver es un caso particular de la ecuacion general de ad-
veccion difusion. En 1D la forma discreta de la ecuacion es

aP P = aE E + aW W + SP . (2.39)

La aproximacion de los flujos se realizo usando un esquema central. Los coeficientes aP s


son los siguientes

2.4.1 Esquema central

Se (u)e Se
aE = (2.40)
x 2
Sw (u)w Sw
aW = + (2.41)
x 2
aP = aE + aW (2.42)
SP = SP V. (2.43)

El esquema central es una aproximacion de segundo orden. Pero si la velocidad del fluido
es muy grande la aproximacion lineal para el flujo no es muy buena.

2.4.2 Esquema upwind

Se
aE = min((u)e Se , 0) (2.44)
x
Sw
aW = + max((u)w Sw , 0) (2.45)
x
aP = aE + aW (2.46)
SP = SP V. (2.47)

2.5 Ejemplos de trabajo en 1D


Considerese la ecuacion diferencial
 
d d d
(u) = (2.48)
x dx dx

donde u es el campo de velocidades del flujo, el cual debe satisfacer la ecuacion de con-
tinuidad.
2.6 El metodo de volumen Finito para resolver ecua-
ciones en 2D

2.6.1 Ejemplo # 1
Para mostrar la forma de aplicar el metodo de volumen finito a problemas bidimensionales,
consideremos la ecuacion de Poisson 2D
2 2
2 = + = s(x, y) (2.49)
x2 y 2
sea una funcion definida en el intervalo 1 x 1 1 y 1, tal que

2 = 2y + 2x (2.50)

con las condiciones de frontera

(1, y) = y y 2 + 1; 1 y 1 (2.51)

(1, y) = y + y 2 + 1; 1 y 1 (2.52)
(x, 1) = x x2 + 1; 1 x 1 (2.53)
(x, 1) = x + x2 + 1; 1 x 1 (2.54)
La solucion de este problema es la siguiente. Si

= x2 y + xy 2 + 1 (2.55)

entonces
2 2
2 = 2 2 2 2
 
x y + xy + 1 + x y + xy + 1 = 2y + 2x (2.56)
x2 y 2
Por lo tanto es la solucion de ecuacion, porque ademas satisface las condiciones de
frontera.

Vamos a implementar el metodo de volumen finito para resolver de forma numerica la


ecuacion (1) y despues compararemos con la solucion.

2.6.2 Ejemplo # 2
sea una funcion definida en el intervalo 0 x 1 0 y 1, tal que

+ (~u) = () + S (2.57)
t
con las condiciones de frontera

(0, y) = 0; 0y1 (2.58)
x

(1, y) = 0; 0y1 (2.59)
x
(x, 0) = 0; 0x1 (2.60)
(x, 1) = 1; 0x1 (2.61)
donde ~u es la velocidad del fluido definida de la siguiente manera

u(x, y) = sin(x) cos(y) (2.62)

v(x, y) = cos(x) sin(y) (2.63)


tomando = 1/P e, donde Pe es el numero de Peclet

P e = U L/ (2.64)

donde U y L son la velocidad y longitud caracterstica y es la difusividad termica


k
= (2.65)
cp

P e << 1 el flujo es dominado por la difusion.


P e >> 1 el flujo es dominado por la adveccion.

2.7 Discretizacion del termino temporal


Todo el contenido de esta seccion trata sobre el manejo del termino temporal de la ecuacion
d
= f (t, ) (2.66)
dt

2.7.1 Explicit or Forward Euler


n+1 n
= f (tn , n ) (2.67)
dt

2.7.2 Implicit or Backward Euler


n+1 n
= f tn+1 , n+1

(2.68)
dt

2.7.3 The implicit Crank-Nicolson method


n+1 n 1
f (tn , n ) + f tn+1 , n+1

= (2.69)
dt 2
2.7.4 Alternating Direction Implicit (ADI) method
Considerese la ecuacion de difusion en dos dimensiones
 2
u 2u

u
= + (2.70)
t x2 y 2

La idea detras del metodo ADI es dividir las ecuaciones en dos pasos, uno donde la
derivada con respecto de x se toma implcita, la derivada con respecto de y explicita, en
el siguiente paso la derivada con respecto a x se toma explicita y la derivada con respecto
a y se toma implcita.
un+1/2 un
 2 n+1/2
2 un

u
= + (2.71)
t/2 x2 y 2

un+1 un+1/2 2 un+1/2 2 un+1


 
= + (2.72)
t/2 x2 y 2
El sistema de ecuaciones resultante es tridiagonal (bandeado, con tres bandas) y se re-
suelve tpica mente usando el tridiagonal matrix algorithm.

2.7.5 Higher ordes methods: Adams-Bashforth


3T 4T n + T n1 1 2
+ 2~un T n ~un1 T n1 = T (2.73)
2t Pe

2.7.6 Higher ordes methods: Runge kutta


Definamos un problema de valor inicial como:

y 0 = f (t, y), y(t0 ) = y0 (2.74)

Entonces el metodo RK4 para este problema esta dado por la siguiente ecuacion:
h
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) (2.75)
6
Donde
k1 = f (tn , yn ) (2.76)
 
h h
k2 = f tn + , yn + k1 (2.77)
2 2
 
h h
k3 = f tn + , yn + k2 (2.78)
2 2
k4 = f (tn + h, yn + hk3 ) (2.79)
2.8 Solucion de sistemas de ecuaciones lineales: Metodos
directos

2.8.1 Tridiagonal matrix algorithm - TDMA (Thomas algorithm)


El metodo TDMA se utiliza para resolver un sistema de ecuaciones lineales Ax=d, con A
una matriz tridiagonal
b1 c1 0 ... 0 0
a2 b2 c2 ... 0 0
A=
... ... ... ... ... ...
0 0 0 ... an bn
Algoritmo del TDMA

for k=2 to n
m=a(k)/b(k-1)
b(k)=b(k)-m*c(k-1)
d(k)=d(k)-m*d(k-1)
end loop

x(n)=b(n)/d(n)

for k=n-1 to 1
x(k)=(d(k)-c(k)*x(k+1))/b(k)
end loop

2.9 Solucion de sistemas de ecuaciones lineales: Metodos


iterativos

2.9.1 Metodo de Gauss-Seidel


El metodo de Gauss-Seidel es una tecnica iterativa para resolver un sistema de ecuaciones
lineales de nxn, AX=b comienza con una aproximacion inicial X (0) a la solucion X y
genera una secuencia de vectores {X (k) }k=1 que converge a X.

Pi1  (k)
 P
n

(k1)

j=1 aij xj j=i+1 aij xj + bi
(k)
xi =
aii
Chapter 3

Solucion de las ecuaciones de


Navier-Stokes

Las componentes de la velocidad ui satisfacen las ecuaciones de balance de cantidad de


movimiento, las cuales son casos particulares de la ecuacion general de advenccion difu-
sion. El campo de velocidades puede ser obtenido resolviendo la ecuacion general con
definida como la componente de la velocidad ur , u o uz , en ese sentido el procedimiento
de calculo ha sido descrito. Los coeficientes de la discretizacion dependen del campo de
velocidades creando una manera de no linealidad que debera ser manejada en cada it-
eracion.

Existen otras dificultades relacionadas con el manejo de la ecuacion de cantidad de


movimiento. Un hecho conocido es que si las componentes de la velocidad y la presion son
calculadas en el mismo punto se pueden obtener soluciones no realistas fsicamente. Un
remedio para esto son las mallas desfasadas, usando este metodo las componentes de las
velocidades se calculan en las caras de los volumenes de control y las variables escalares
se calculan en los centros.

3.1 El arreglo de las variables en la malla


El metodo de volumen finito comienza simpre con la discretizacion sobre el domino y
las ecuaciones de transporte de las propiedades relevantes. La tecnica que comunmente
se emplea es una staggered grid, la idea es evaluar las variables escalares, como presion
temperatura, etc en puntos nodales pero calcular las velocidades centradas en las caras
del volumen.

23
Para empezar a resolver el problema del flujo de fluidos debemos conocer la geometria
xL, YL y propiedades fisicas . El dominio se dividide en NX * Ny volumenes
de control, V=dx*dy*dz. Las variables de estudio son las componente de la velocidad
u, v y la presion del fluido P y el problema puede estar acoplado a la transferenca
de calor que se determina apartir de campo escalar T de temperaturas. En base a su
dependencia temporal los problemas se clasifican en estacionario y no estacionario. El
modelo discreto se reduce a resolver un sistema de ecuaciones, lo mas comun es el uso de
tecnicas iterativas.

Las variables discretas son:

P(0:Nx+1,0:Ny+1), T(0:Nx+1,0:Ny+1)

u(0:Nx,0:Ny+1), v(0:Nx+1,0:Ny)
Donde

T(0,:), T(Nx+1,:), T(:,0), T(:,Ny+1)

se usan para almacenar las condiciones de frontera.

Ecuacion discreta para la variable


Al aplicar el metodo de volumen finito para la conservacion de la variable la ecuacion
resultante es de la siguiente forma:

aP P = aE E + aW W + aN N + aS s + aF F + aB B + SP (3.1)

donde
aP = aE + aW + aN + aS + aF + aB (3.2)
Los Coeficientes contienen combinaciones de terminos convectivos y difusivos. Empleando
un esquema hibrido se escriben de la siguiente manera:

M ax FE , DE F2E  , 0
  
aE
aW M ax FW , DW + F2W , 0 
FN
aN M ax F N , DN FS2 ,0
aS M ax FS , DS + 2 , 0 
aT M ax FT , DT F2T , 0
aB M ax FB , DB + F2B , 0

En estas expresiones los valores de F y D son calculados con las siguientes formulas

Face e w n s t b
F (u)e Ae (u)w Aw (u)n An (u)s As (u)t At (u)b Ab

D A
dx e
A
dx w
A
dy n
A
dy s
A
dz t
A
dz b

Para la ecuacion de balance de momentum en x los flujos convectivos en las caras de los
volumenes de control
u(i, j) + u(i + 1, j) u(i, j) + u(i 1, j)
ue = ; uw =
2 2
v(i, j) + v(i + 1, j) v(i, j 1) + v(i + 1, j 1)
vn = ; vs =
2 2
Para la cantidad de movimiento en y
u(i, j) + u(i, j + 1) u(i 1, j) + u(i 1, j + 1)
ue = ; uw =
2 2
v(i, j) + v(i, j + 1) v(i, j) + v(i, j 1)
vn = ; vs =
2 2
Condiciones de frontera
La discretizacion de las ecuaciones, por ejemplo la ecuacion de balance de cantidad de
movimiento en X para u involucra los valores de u en la frontera para i { 1, Nx-1}
ademas los valores para j { 1, Ny}. En total requerimos los valores

u0,j ; uN x,j ; j = 1, 2, .., N y

vi,0 ; vi,N y ; i = 1, 2, .., N x


en la frontera asi como los valores

ui,0 ; ui,N y+1 ; i = 1, 2, .., N x

v0,j ; vN x+1,j ; j = 1, 2, .., N y


Fuera del dominio.

i) No slip condition

En este caso la velocidad se hace ceo en la frontera, para los valores que caen direc-
tamente en la frontera

u0,j = 0; uN x,j = 0; j = 1, 2, .., N y

vi,0 = 0; vi,N y = 0; i = 1, 2, .., N x


Como la frontera horizontal no contiene valores de v y la frontera vertical no contiene
valores de u la condicion de frontera se utiliza para interpolar un valor para los valores
que estan fuera
ui,0 = ui,1 ; ui,N y+1 = ui,N y ; i = 1, 2, .., N x
v0,j = v1,j ; vN x+1,j = vN x,j ; j = 1, 2, .., N y
3.2 Acoplamiento presion velocidad
Otro detalle es que la ecuacion de balance de cantidad de movimiento contiene el gradiente
de presion como parte del termino fuente y este termino no es expresable en terminos de ui
o de , entonces no pueden ser resueltas hasta que el gradiente de presion sea especificado.
La constriccion que determina el gradiente de presion es la ecuacion de continuidad. El
enunciado empleado para referir esto es el siguiente:

Se obtiene el gradiente de presion correcto cuando al resolver la ecuacion de cantidad de


movimiento resulta que el campo de velocidad satisface la ecuacion de continuidad

Entonces es necesario un metodo para determinar la presion. El proceso que se realiza


para calcular la presion se describe en la siguiente seccion La ecuacion 3.1 puede ser escrita
como X
an un = anb unb + b + An (pP pN ), (3.3)
donde b incluye los terminos fuente adicionales y Ae es el area sobre la cual actua la fuerza
de presion. Las expresiones de los coeficientes anb y b son identicas a las expresiones de la
ecuacion discretizadas excepto que la geometra de la malla desfasada debe considerarse
en el calculo de los coeficientes. Ecuaciones similares se pueden escribir para las otras
direcciones.
Es posible resolver las ecuaciones de cantidad de movimiento para un campo de presion
dado. Sea u el campo de velocidades basado en la presion estimada p , esto implica
X
an un = anb unb + b + An (pP pN ). (3.4)

En general la componente de la velocidad u no satisface la ecuacion de continuidad y la


estrategia que se sigue es calcular correcciones de la presion que resultan en correcciones
de la velocidad asegurandonos que satisface la ecuacion de continuidad.
Sea p0 la correccion de la presion, la correccion correspondiente de u es u0 , entonces
p = p + p0 y u = u + u0 . (3.5)
Restando la ecuacion 3.3 y 3.4 se obtiene
X
an u0n = anb u0nb + An (p0P p0N ). (3.6)

anb u0nb definen una serie de


P
Las simplificaciones razonablemente elegidas del termino
metodos con raz generica SIMPLE.

3.3 Metodo SIMPLE-SIMPLEC


anb u0nb , entonces la ecuacion se
P
La ecuacion 3.6 se simplifica despreciando el termino
escribe como
un = u + dn (p0P p0N ), (3.7)
donde
An
dn =. (3.8)
an
La ecuacion 3.7 es llamada ecuacion de correccion de la velocidad. Formas similares
pueden ser escritas para las otras componentes de la velocidad. Sustituyendo las formu-
las de la correccion de la velocidad en la ecuacion de continuidad en su forma discreta
obtenemos una ecuacion para la correccion de la presion

aP p0P = aN p0N + aS p0s + aW p0W + aE p0E + aF p0F + ab p0B + bp , (3.9)

donde
Ae
aE = Ae de ; de =
ae
aP = aE + aW + aN + aS + aF + aB
bp = (u )e Ae (u )w Aw + (ur )n An (ur )s As + (uz )f Af (uz )b Ab

anb u0n y despreciando


P
En este caso la ecuacion 3.6 se simplifica restando el termino
anb (u0nb u0n ), entonces la ecuacion se escribe como
P

X X
(an anb )u0n = anb (u0nb u0n ) + An (p0P p0N ), (3.10)

un = u + dn (p0P p0N ), (3.11)


donde
An
dn =
P . (3.12)
an anb
Sustituyendo en la ecuacion de continuidad obtenemos la ecuacion de correccion de la
presion.

Resumen del proceso a seguir en el metodo SIMPLEC


1. Se inicia con valores aproximados para toda las variables relevantes ux , uy , p , T
2. Se calculan los coeficientes en la ecuacion de balance de cantidad de movimiento
3. Se resuelven las ecuaciones de las componentes de la velocidad
4. Se calculan los coeficientes de la ecuacion de correccion de la presion
5. Se resuelve la ecuacion de correccion a la presion p0
6. Se corrige la presion mediante p = p0 + p
7. Se corrige la velocidad
8. Se resuelven las ecuaciones para las demas variables T
9. Se itera hasta alcanzar la convergencia
3.4 Esquema explicito de avance temporal: Proyeccion
de Chorin
The standard backward Euler time discretization of the equations leads to the following
scheme:
~u ~un 1 2 ~n
+ ~un ~un = ~u + f in (3.13)
t Re
~u = 0 in (3.14)
in the second step, we enforce

~un+1 ~u
= pn+1 in (3.15)
t
un+1 = 0 in (3.16)
~un+1 = 0 in (3.17)
The quantity p enforces the incompressibility in the second step which is not the exact
pressure. It satisfies the following equation

2 p = ~u in (3.18)

with the consistent Neumann boundary condition


p
=0 on (3.19)
n

3.5 Condiciones de frontera para las ecuaciones de


Navier-Stokes
Dado un conjunto de ecuaciones diferenciales parciales, se tienen asocidas condiciones de
frontera que pueden ser de alguno de los siguientes tipos

1. Condiciones dirichelt

2. Condiciones Newwman

3. Condiciones Robin

4. Conidicones periodicas

5. Condiciones de Outflow
Chapter 4

El metodo de diferencias finitas

Ecuaciones de Navier-Stokes
Las ecuaciones se muetran en forma adimensional en 2D.
Ecuacion de Conservacion de masa:
u v
+ =0 (4.1)
x y
Ecuaciones de conservacion de cantidad de movimiento 1 :
1 2u 2u (u2 ) (uv)
 
u p
+ = + + gx (4.2)
t x Re x2 y 2 x y
1 2v 2v (v 2 ) (uv)
 
v p
+ = + + gy (4.3)
t y Re x2 y 2 y x

Tratamiento Numerico
En analisis numerco, el termino discretizacion se refiere a pasar de un problema con-
tinuo a uno en que se considera unicamente un numero finito de puntos. En particu-
lar, la discretizacion se utiliza en la solucion numerica de ecuaciones diferenciales re-
duciendolas a un sistema de ecuaciones algebraicas. Esto determina los valores de la
solucion solamente en puntos discretizados. Existen diversos metodos para discretizar,
como volumen finito, elemento finito, diferencias finitas, metodos espectrales, entre otros.
Nosotros usaremos el metodo de diferencias finitas.
1
En donde hemos usado:
du 1 du2 1 d (~u ~u)
u = =
dx 2 dx 2 dx
entonces
u2
 
u u (~u ~v ) u u u v
u +v = + =u +v +u +
x y x y x y x y
| {z }
~
u

30
Discretizacion en una dimension
El intervalo sobre el cual la ecuacion diferencial se va a resolver es dividido en imax
subintervalos de igual tama no, x = a/imax . Entonces obtenemos una malla constituida
por los puntos xi := ix, i = 0, .. ,imax , en las fronteras de los subintervalos.

f ig3.1
Ahora la ecuacion diferencial solo va a ser considerada solo en estos puntos. Por
definicion tenemos que la derivada:
du u (x + x) u (x)
:= lim
dx x0 x
de la funcion diferenciable u. Ahora aproximamos el operador diferencial continuo du/dx
en el punto xi por el operador discreto:
 der
du u (xi+1 ) u (xi )
:=
dx i x
Aqui xi+1 = xi + x es el punto adyacente a la derecha. Ademas de esta diferencia
adelantada, podemos hacer la diferencia atrasada
 izq
du u (xi ) u (xi1 )
:=
dx i x
y la diferencia central  c
du u (xi+1 ) u (xi1 )
:=
dx i 2x
Evidentemente refinando la malla obtenemos una mejor aproxiacion del cociente difer-
encial. De hecho, el error en la discretizacion de las diferencias adelantada y atrasada
son de orden O (x), lo que implica que si reducimos al paso a la mitad el error decrece
a la mitad a lo mas. Si usamos diferencias centrales el error es de orden O (x)2 y si
reducimos el paso a la mitad, el error se reduce en un factor de cuatro. Esto se cumple
cuando la funcion es suficientemente suave.
2
Para aproximar la segunda derivada ddxu2 de una funcion u en un punto de la malla xi ,
hacemos las primeras derivadas por diferencias centrales en los puntos xi+ 1 := xi + x/2
2
y xi 1 := xi x/2 usando la mitad del paso. Estas primeras derivadas a su vez son
2
aproximadas usando diferencias centrales tambien con la mitad del paso. Entonces nos
queda:
 2   c  c !
du 1 du du
2
:=
dx i x dx i+ 1 dx i 1
2 2
 
1 u (xi+1 ) u (xi ) u (xi ) u (xi1 )
=
x x x
u (xi+1 ) 2u (xi ) + u (xi1 )
=
x2
Cuando en problemas de difusion-conveccion 2 en donde domina el efecto convectivo se
utilizan diferencias centrales para discretizar ocurren problemas de estabilidad. Esto re-
sulta en oscilaciones sin significado fisico de la solucion. La razon de esto es que para x
muy grandes, algunas comportamientos de la ecuacion continua ya no son correctamente
capturados por la ecuacion discreta. Entonces, si queremos mantener la estabilidad de
problemas altamente convectivos es necesario tener un espaciado muy pequ no, provo-
cando el manejo de sistemas de ecuaciones excesivamente elevalos, especialmente en dos
y tres dimensiones.
Si reemplazamos la aproximacion por diferencias centrales de du dx
por diferencias en una
sola direccion, i.e., diferencias atrasadas para valores positivos de k y diferencias adelan-
tadas para k negativos. Asi:
 up
du (1 + ) (ui ui1 ) + (1 ) (ui+1 ui )
:= con  := signo (k)
dx i 2x

El precio de utilizar el esquema de discretizacion upwind es la reduccion del orden de


O (x2 ) a O (x), por lo que x debe ser peque na.
Otra posibilidad para evitar problemas de estabilidad es discretizar con el esquema de
donnor-cell, que tambien tiene un bajo orden de aproximacion. Es aplicado mayormente
en la discretizacion de los terminos convectivos de la forma d(ku)
dx
. Supongamos que u
esta dado en los puntos de la malla, pero asumamos que k esta dado en los puntos medios
del intervalo, como se muestra:
f igura3.3

La discretizacion donnor-cell del termino convectivo en el punto xi esta dado entonces


por:
 dc
d (ku) kr ur kl ul
:=
dx i x
donde k indica el sentido o direccion preferencial del flujo, y ur y ul se escogen dependi-
endo del signo of kr y kl :
( (
ui , kr > 0, ui1 , kl > 0,
ur := ul :=
ui+1 , kr < 0, ui , kl < 0,

Si kl > 0 , kr > 0 tenemos un flujo hacia la derecha:

d (ku) kr ui kl ui1
:=
dx x
2
Ecuaciones diferenciales ordinarios de la forma:
d2 u du
+k =f
dx2 dx
donde k es el coeficiente difusivo.
y obtenemos la discretizacion de diferencias atrasadas. Si kl < 0 , kr < 0 tenemos
un flujo hacia la izquierda:
d (ku) kr ui+1 kl ui
:=
dx x
y obtenemos la discretizacion de diferencias adelantadas. Si kl < 0 , kr > 0 tenemos
una fuente en el punto xi por lo que el pasado es el mismo para ambas direcciones, ui :

d (ku) kr ui kl ui
:=
dx x
Si kl > 0 , kr < 0 tenemos un sumidero en el punto xi :

d (ku) kr ui+1 kl ui1


:=
dx x

Para evitar estas distinciones, lo anterior puede escribirse como:


 dc
d (ku) 1
= ((kr |kr |) ui+1
dx i 2x
+ (kr + |kr | kl + |kl |) ui + (kl |kl |) ui1 )
1
= (kr (ui + ui+1 ) kl (ui1 + ui )
2x
+ |kr | (ui ui+1 ) |kl | (ui1 ui ))

Discretizacion
Cuando se resuelven las ecuaciones de Navier-Stokes el dominio es usualmente discretizado
usando una malla desfasada, en la cual las diferentes variables desconocidas no estan lo-
calizadas en los mismos puntos de la malla. En la malla que usaremos la presion pr esta
localizada en el centro de la celda, la velocidad horizontal u en la mitad de las fronteras
verticales de la celda, y la velocidad vertical v en la mitad de las fronteras horizontales
de la celda como se muestra en la Fig. (4.1).3

3
La idea de un arreglo desfasado de las variables viene del metodo de volumen finito, en que la
ecuacion de continuidad es discretizada en cada celda de volumen considerando el flujo de masa a traves
del borde de la celda determinado por las velocidades en esas fronteras.
Figure 4.1: Malla desfasada

Como resultado, los valores discretizados de u, v y p estan localizados en tres mallas sep-
aradas, cada una desplazada medio espaciamiento () de malla hacia abajo, a la izquierda,
y hacia abajo y a la izquierda respectivamente.
Consecuentemente, no todos los puntos extremos de la malla quedan incluidos en los
limites del dominio. Por ejemplo, las fronteras verticales no poseerian valores de v, al
igual que las fronteras horizontales no tendrian valores para u. Por esta razon, una
franja extra de celdas es introducida, Fig. (4.2), de tal manera que las condiciones de
frontera se pueden obener promediando los puntos adyacentes en cada lado. Este arreglo
desfasado de incognitas previene posibles oscilaciones de la presion que pueden ocurrir
si se evaluaran las tres variables u, v y p en el mismo punto.
Figure 4.2: Dominio con franja extra

La ecuacion de continuidad (4.1) es discretizada en el centro de cada celda (i, j), i =


1, ..., imax , j = 1, ..., jmax , remplazando las derivadas espaciales u/x y v/y por difer-
encias finitas en la mitad de las fronteras horizontales y verticales respectivamente:
   
u ui,j ui1,j v vi,j vi,j1
:= , :=
x i,j x y i,j y

La ecuacion de conservacion de cantidad de movimiento para u ,(4.2), es discretizada en


la mitad de las fronteras verticales de las celdas, mientras que para v, (4.3), en la mitad
de las fronteras horizontales de las celdas.
En las segundas derivadas, i.e. para los terminos difusivos, se utiliza la siguiente dis-
cretizacion:
 2 
u ui+1,j 2ui,j + ui1,j
:=
x2 i,j (x)2

mientras que la discretizacion espacial para la presion es tratada por diferencias centrales:
 
p pi+1,j pi,j
:=
x i,j x
 
p pi,j+1 pi,j
:=
y i,j y

La discretizacion de los terminos convectivos, sin embargo, tienen algunas dificultades


que se solucionan tomando valores promedio en la mitad de las fronteras. Utilizando
una mezcla de diferencias centrales y la discretizacion donnr-cell (analogo al esquema
Crank-Nicholson) obtenemos:
   
(uv) 1 (vi,j + vi+1,j ) (ui,j ui,j+1 ) (vi,j1 + vi+1,j1 ) (ui,j1 ui,j )
:=
y i,j y 2 2 2 2
 
1 |vi,j + vi+1,j | (ui,j ui,j+1 ) |vi,j1 + vi+1,j1 | (ui,j1 ui,j )
+
y 2 2 2 2

El parametro toma valores entre 0 y 1. Para = 0 tenemos un descretizacion por


diferencias centrales, y para = 1, un esquema puramente de donnor-cell. debe es-
cogerse tal que:
 
ui,j t vi,j t
maxi,j ,
x y

En la ecuacion (4.2) para u en la mitad del borde derecho de la celda (i, j), i = 1, .., imax 1,
j = 1, .., jmax , tenemos:
2  2 !
(u2 )
  
1 ui,j + ui+1,j ui1,j + ui,j
:=
x i,j x 2 2
 
1 |ui,j + ui+1,j | (ui,j ui+1,j ) |ui1,j + ui,j | (ui1,j ui,j )
+
x 2 2 2 2
   
(uv) 1 (vi,j + vi+1,j ) (ui,j ui,j+1 ) (vi,j1 + vi+1,j1 ) (ui,j1 ui,j )
:=
y i,j y 2 2 2 2
 
1 |vi,j + vi+1,j | (ui,j ui,j+1 ) |vi,j1 + vi+1,j1 | (ui,j1 ui,j )
+
y 2 2 2 2
 2 
u ui+1,j 2ui,j + ui1,j
:=
x2 i,j (x)2
 2 
u ui,j+1 2ui,j + ui,j1
:=
2
y i,j (y)2
(4.4)

y en la ecuacion (4.3) para v en la mitad del borde superior de la celda (i, j), i = 1, .., imax ,
j = 1, .., jmax 1, tenemos:
2 2 !
(v 2 )
   
1 vi,j + vi,j+1 vi,j1 + vi,j
:=
y i,j y 2 2
 
1 |vi,j + vi,j+1 | (vi,j vi,j+1 ) |vi,j1 + vi,j | (vi,j1 vi,j )
+
y 2 2 2 2
   
(uv) 1 (ui,j + ui,j+1 ) (vi,j + vi+1,j ) (ui1,j + ui1,j+1 ) (vi1,j vi,j )
:=
x i,j x 2 2 2 2
 
1 |ui,j + ui,j+1 | (vi,j vi+1,j ) |ui1,j + ui1,j+1 | (vi1,j vi,j )
+
x 2 2 2 2
2v
 
vi+1,j 2vi,j + vi1,j
:=
x2 i,j (x)2
2v
 
vi,j+1 2vi,j + vi,j1
:=
y 2 i,j (y)2
(4.5)

Por ultimo en la discretizacion temporal de la velocidad se usa:


 (n+1)  (n+1)
u u(n+1) u(n) v v (n+1) v (n)
:= , := (4.6)
t t t t

Condiciones de Frontera
Para la discretizacion requerimos los valores:
u0,j , uimax ,j , j = 1, .., jmax
vi,0 , vi,jmax , i = 1, .., imax
en la frontera, ademas los valores
ui,0 , ui,jmax +1 , i = 1, .., imax
v0,j , vimax +1,j , j = 1, .., imax
fuera del dominio. Estos valores se obtienen de la discritizacion de las condiciones de
frontera del problema continuo. Las condiciones de de fonteras son las siguientes:

1. Condicion de no penetracion y no deslizamiento: La velocodad debe ser


cero en la frontera para satisfacer esta condicion4 . Para los valores que coinciden
con la frontera:
u0,j = 0, uimax ,j = 0, j = 1, .., jmax
vi,0 = 0, vi,jmax = 0, i = 1, .., imax
4
En el caso de fronteras moviles, las velocidades deben ser las de la velocidad de la frontera.
Como las fronteras verticales no contienen valores de la velocidad v y las fronteras
horizontales no contienen valores de u, esta condicion se cumple promediando los
valores en ambos lados de la frontera, por ejemplo:
vf luido + vimaginaria
vf ontera := = 0 vf luido = vimaginaria (4.7)
2
por lo tanto, para las cuatro fronteras tenemos:
v0,j = v1,j , vimax +1,j = vimax ,j , j = 1, .., jmax
ui,0 = ui,1 , ui,jmax +1 = ui,jmax , i = 1, .., imax

2. Condicion de deslizamiento y no penetracion: En este caso, la componente


normal de la velocidad en la frontera y la derivada normal de la componente tan-
gencial en la frontera deben ser cero. En nuestro caso los valores de las componentes
normales coinciden con la frontera, por lo que:
u0,j = 0, uimax ,j = 0, j = 1, .., jmax
vi,0 = 0, vi,jmax = 0, i = 1, .., imax
v
En el caso de una frontera vertical, la derivada normal n de la velocidad tangencial
v vimaginaria
en el punto Q de la frontera puede discretizarse por la expresion f luido x ;
v
entonces el requerimiento n = 0 lleva a la condicion:
vf luido = vimaginaria
Entonces obtenemos las siguientes condiciones de frontera:
v0,j = v1,j , vimax +1,j = vimax ,j , j = 1, .., jmax
ui,0 = ui,1 , ui,jmax +1 = ui,jmax , i = 1, .., imax

3. Condiciones de salida: En este caso las derivadas normales de ambas compo-


nentes de la velocidad se hacen cero en las condiciones, lo que significa que la veloci-
dad total no cambia en la direccion normal a la frontera. En el caso discreto esto se
obtiene hiciendo los valores de la velocidad en la frontera iguales a las velocidades
adyacentes que estan dentro del dominio, i.e.,
u0,j = u1,j , uimax ,j = uimax 1,j , j = 1, .., jmax
v0,j = v1,j , vimax +1,j = vimax ,j ,
ui,0 = ui,1 , ui,jmax +1 = ui,jmax , i = 1, .., imax
vi,0 = vi,1 , vi,jmax = vi,jmax 1

4. Condiciones de entrada: para este caso las velocidades se dan explicitamente;


esto se impone a las velocidades normales a la frontera (ejemplo, u en la frontera
izquierda) fijando directamente sus valores en la frontera. Para las velocidades tan-
genciales a la frontera (ejemplo, v en la frontera izquierda) lo logramos promediando
los valores de la velocidad como se hace en (4.7).
5. Condiciones de frontera periodicas: para este tipo de condicion en la di-
reccion x, en los que los valores de las fronteras izquierda y derecha coinciden, el
valor de u, v, y p se definen como sigue:

u0,j = uimax 1,j , uimax ,j = u1,j , P1,j = Pimax ,j


v0,j = vimax 1,j , v1,j = vimax ,j , vimax +1,j = v2,j

En contraste al problema continuo, en el que los mismos valores se daban en x = 0


y x = a, las fronteras del dominio se enciman en la longitud de una celda asi que
el dominio debe tener una celda extra. El caso de condiciones periodicas en la
direccion y se trata de manera analoga.

Algoritmo
Comenzamos llevando a cabo la sustitucion de la discretizacion temporal (4.6), u/t y
v/t, en las ecuaciones de conservacion de cantidad de movimiento (4.2) y (4.3):

1 2u 2u (u2 ) (uv)
   
(n+1) (n) p
u = u + t + + gx
Re x2 y 2 x y x
1 v 2v
 2
(v 2 ) (uv)
  
(n+1) (n) p
v = v + t + + gy
Re x2 y 2 y x y
podemos escribir:

1 2u 2u (u2 ) (uv)
   
(n)
F = u + t + + gx (4.8)
Re x2 y 2 x y
1 2v 2v (v 2 ) (uv)
   
(n)
G = v + t + + gy
Re x2 y 2 y x

obteniendo:
p
u(n+1) = F t (4.9)
x
p
v (n+1) = G t
y

Para completar la discretizacion temporal de las ecuaciones de conservacion de cantidad


de movimiento, los terminos del segundo miembro de (4.9) deben asociarse con un nivel
de tiempo: evaluamos F y G al tiempo tn mientras los terminos que involucran la presion
al tiempo tn+1 .Esto nos da la discretizacion de (4.2) y (4.3):

p(n+1)
u(n+1) = F (n) t (4.10)
x
p(n+1)
v (n+1) = G(n) t
y
Esta manera de discretizar se caracteriza por ser explicita para las velocidades e implicita
para la presion; i.e. el campo de velocidad al tiempo tn+1 puede calcularse una vez
conocida la presion correspondiente. Esto se logra evaluando la ecuacion de continuidad
(4.1) al tiempo tn+1 . Sustituimos (4.10) en la ecuacion de continuidad (4.1) y obtenemos:

u(n+1) v (n+1) F (n) 2 p(n+1) G(n) 2 p(n+1)


0= + = t + t
x y x x2 y y 2
que, despues de reacomodar los terminos, es la Ecuacion de Poisson para la presion
p(n+1) al tiempo tn+1 :2

2 p(n+1) 2 p(n+1) 1 F (n) G(n)


 
+ = ++ (4.11)
x2 y 2 t x y

En resumen, el (n + 1)-esimo paso en el tiempo consta de los siguentes pasos:

1. Calcular F (n) , G(n) de acuerdo a (4.8) a partir de las velocidades u(n) , v (n) .

2. Resolver la Ecuacion de Poisson (4.11) para la presion p(n+1) .

3. Calcular el nuevo campo de valocidades usando (4.10) con los valores de p(n+1)
calculados en el paso 2.

2
Esta ecuacion junto con (4.10) aseguran un campo de velocidades con divergencia cero.
Chapter 5

Problemas de dinamica de fluidos y


Magnetohidrodinamica

5.1 Problemas de dinamica de fluidos

5.1.1 Flujo de Poiseuille

5.1.2 Lid Driven


En las figuras 1-12 se presentan los campos de velocidades del flujo para un Re = 1000 y
un dt = 0.0001s, el metodo de desacople para resolver las ecuaciones de Navier-Stokes es
el de proyeccion y la malla usada en las simulaciones fue de 50X50.

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.1: t=1.4 s Figure 5.2: t=2.4 s

41
1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.3: t=3.4 s Figure 5.4: t=4.4 s

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.5: t=5.4 s Figure 5.6: t=6.4 s

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.7: t=7.4 s Figure 5.8: t=8.4 s


1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.9: t=9.4 s Figure 5.10: t=12.6 s

0.8
0.8

0.6
0.6

0.4
0.4

0.2

0.2

0
0 0.2 0.4 0.6 0.8 1

0
0 0.2 0.4 0.6 0.8 1

Figure 5.12: Steady state


Figure 5.11: t=15 s
En las figuras 13-18 se presentan los campos de velocidad en estado estacionario del flujo
en la cavidad para diferentes numeros de Reynolds (Re = 1, 10, 100, 1000, 5000, 10000).

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.13: Re=1 Figure 5.14: Re=10


1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.15: Re=100 Figure 5.16: Re=1000

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

Figure 5.17: Re=5000 Figure 5.18: Re=10000

5.1.3 Conveccion natural

5.2 Problemas de Magnetohidrodinamica

5.2.1 Flujo de Hartmann

5.2.2 Obstaculo magnetico

5.2.3 Flujo Dipolar

S-ar putea să vă placă și