Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cursoluis PDF
Cursoluis PDF
2 de junio de 2009
Índice
1. Convección 2
1.1. Ecuación general de transporte . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Convección natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Ecuaciones adimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Convección natural turbulenta . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5. Función de estructura selectiva . . . . . . . . . . . . . . . . . . . . . . . 8
2. Método numérico 9
2.1. Método de residuos pesados . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2. Método de volumen finito . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4. Difusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.1. Difusión estacionaria en 1D . . . . . . . . . . . . . . . . . . . . . 12
2.4.2. Difusión estacionaria en 2D y 3D . . . . . . . . . . . . . . . . . . 16
2.5. Linealización del término fuente . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Condiciones de frontera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7. Consideraciones geométricas . . . . . . . . . . . . . . . . . . . . . . . . . 21
3. MVF : Advección–Difusión 22
3.1. Aproximación de los términos difusivos . . . . . . . . . . . . . . . . . . . 24
3.2. Aproximación de los términos advectivos . . . . . . . . . . . . . . . . . . 25
3.2.1. Upwind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.2. Diferencias centrales (CDS) . . . . . . . . . . . . . . . . . . . . . 26
3.2.3. QUICK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
ÍNDICE 1
4. Acoplamiento presión-velocidad 28
4.1. Mallas desplazadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2. Ecuación de corrección a la presión . . . . . . . . . . . . . . . . . . . . . 30
4.3. SIMPLEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6. Problemas no estacionarios 36
6.1. Esquema Explı́cito: Forward Euler . . . . . . . . . . . . . . . . . . . . . . 37
6.2. Esquema Implı́cito: Backward Euler . . . . . . . . . . . . . . . . . . . . . 37
6.3. Esquema Crank-Nicolson: Centred Differencing . . . . . . . . . . . . . . 38
7. Paradigmas de programación 39
7.1. Programación Orientada a Objetos . . . . . . . . . . . . . . . . . . . . . 39
7.2. Programación Genérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8. Programación paralela 40
8.1. Organización de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.2. Modelos de programación . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.3. Comunicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.4. Descomposición del problema . . . . . . . . . . . . . . . . . . . . . . . . 43
8.5. Métricas y otros factores . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.6. Balance de carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.7. Métricas de rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.8. Sobreposición de la comunicación y los cálculos . . . . . . . . . . . . . . 45
8.9. Ley de Amdahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.10. Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.Casos de estudio 53
10.1. Convección forzada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
10.2. Convección Natural: régimen laminar . . . . . . . . . . . . . . . . . . . . 54
10.2.1. Benchmark: de Vahl Davis . . . . . . . . . . . . . . . . . . . . . . 54
10.3. Convección Natural: régimen turbulento . . . . . . . . . . . . . . . . . . 55
10.4. Convección forzada en paralelo . . . . . . . . . . . . . . . . . . . . . . . 59
2 ÍNDICE
1. Convección
Considérese los siguientes eventos: el movimiento imperceptible de las placas conti-
nentales de la corteza terrestre, las violentas tormentas magnéticas en la atmósfera solar,
las sorprendentes y destructivas fuerzas que provoca un huracán tropical, el movimiento
del aire en un horno de cocina, el crecimiento de cristales semiconductores usados en la
construcción de microchips. Todos estos fenómenos involucran el movimiento de fluidos
(lı́quidos, gases, plasmas) a escalas muy diferentes. Este movimiento se conoce como
convección: movimiento de partı́culas individuales de fluidos el cual ocurre a través de
procesos de difusión y advección.
Dado que el fenómeno de convección aparece en muchos procesos naturales e indus-
triales, no es sorprendente que en las últimas décadas se haya puesto mucha atención
en entender el movimiento de fluidos y el transporte de cantidades fı́sicas generado o
alterado por la convección.
La convección se clasifica en natural (libre) y forzada. En la primera, el movimiento
del fluido se debe a fuerzas naturales, como por ejemplo el efecto de flotación, el cual se
manifiesta cuando existe una diferencia de temperaturas o densidades en presencia de la
fuerza de gravedad. En la segunda, el fluido se obliga a fluir mediante el uso de fuerzas
externas como un ventilador o el movimiento de una de las paredes que contenga al
fluido. Es posible que exista convección natural y forzada en algunos procesos, en este
caso se le suele llamar convección mixta.
El modelo matemático que describe la convección se basa en las ecuaciones de balance
de masa, cantidad de movimiento y energı́a, ası́ como en las ecuaciones de estado del
fluido. La obtención de estas ecuaciones se puede revisar por ejemplo en [7, 6].
En la sección que sigue, se describe el modelo matemático desde un punto de vista
general y posteriormente se reduce a casos particulares.
∂(ρφ)
+ ∇ · ρφu = ∇ · (Γ∇φ) + S, (1)
∂t
donde ρ representa la densidad, u es la velocidad del flujo, Γ es un coeficiente de difusión
y S es el término fuente.
La ecuación (1) se conoce como la ecuación general de transporte para la propiedad
φ. El primer término del lado derecho de esta ecuación es la razón de cambio de φ
con respecto al tiempo, mientras que el segundo término es la componente advectiva
que representa el transporte de φ debido a la velocidad del flujo. En el lado derecho se
tiene el término debido al transporte por difusión y el último término es la contribución
ocasionada por fuentes de φ dentro del campo. La ecuación general de transporte (1) es
usada como punto de partida para desarrollar algunos métodos numéricos, especialmente
el método de volumen finito.
En notación tensorial estas ecuaciones se escriben como sigue:
∂(ρφ) ∂ ∂ ∂φ
+ ρuj φ = Γ + S, para j = 1, 2, 3, (2)
∂t ∂xj ∂xj ∂xj
donde φ puede representar a la temperatura (T ), la densidad (ρ) o a alguna compo-
nente de la velocidad ((u1 , u2 , u3 ) ≡ (u, v, w)). El término fuente contiene el gradiente
presiones y términos provenientes de las fuerzas de cuerpo. En esta notación xj repre-
senta coordenadas cartesianas para la posición, y se utiliza la convención de Einstein en
donde ı́ndices repetidos se suman.
∂uj
= 0, (3)
∂xj
∂ui ∂ui ∂p ∂ 2 ui
ρ0 + uj =− +µ + ρbi , (4)
∂t ∂xj ∂xi ∂xj ∂xj
∂T ∂T ∂2T
+ uj =α , (5)
∂t ∂xj ∂xj ∂xj
donde ρ es la densidad, ρ0 es una densidad de referencia, µ es la viscosidad dinámica y
α es la difusividad térmica. En la ecuación (5) se ha considerado que la energı́a interna
se puede escribir como cV T , con cV el calor especı́fico a volumen constante. También
4 ÍNDICE
∂T
se utiliza la ley de conducción de calor de Fourier, es decir qj = −κ ∂x j
, siendo κ el
coeficiente de conductividad térmica.
Las ecuaciones (3), (4) y (5), se deben complementar con una ecuación de estado
para poder ser resueltas. En general se considera la siguiente relación:
ρ = ρ0 [1 − β(T − T0 )] ,
donde β es el coeficiente de expansión volumétrica y T0 es el valor de la temperatura
cuando ρ = ρ0 . β se define como:
1 ∂ρ
β=− .
ρ0 ∂T T =T0
Esta última ecuación describe satisfactoriamente la relación entre la densidad y la
temperatura para un fluido incompresible.
x′j t′ u′j p′ T ′ − TC 1
xj = , t= 2 , uj = , p= 2
, T = − ,
H H /α α/H ανρ0 /H ∆T 2
donde localmente se han utilizado variables primadas (′) para representar a las variables
con dimensiones. En este escalamiento H es una longitud caracterı́stica, ν la viscosidad
cinemática (ν = µ/ρ0 ) y ∆T = TH − TC representa una diferencia de temperaturas.
Usando el escalamiento anterior tenemos que las ecuaciones, en forma adimensional
se escriben como sigue:
∂uj
= 0, (6)
∂xj
∂ui ∂ui ∂p ∂ 2 ui
+ uj =− + Pr + bi , (7)
∂t ∂xj ∂xi ∂xj ∂xj
∂T ∂T ∂2T
+ uj = , (8)
∂t ∂xj ∂xj ∂xj
donde la ecuación (6) se conoce como la ecuación de continuidad, las ecuaciones (7)
son las ecuaciones de Navier-Stokes y la ecuación (8) es la ecuación de energı́a. bi es
el término fuente que representa a las fuerzas de cuerpo externas que intervienen en el
1.4 Convección natural turbulenta 5
gβ∆T L3y
Ra = ,
αν
donde g es la magnitud de la aceleración de la gravedad.
Las ecuaciones (6), (7) y (8) se pueden poner en la forma de la ecuación general (2)
como sigue:
∂ρ ∂
+ uj ρ = 0, (9)
∂t ∂xj
∂ui ∂ ∂p ∂ ∂ui
+ (uj ui ) = − + Pr + Si , (10)
∂t ∂xj ∂xi ∂xj ∂xj
∂T ∂ ∂ ∂T
+ (uj T ) = . (11)
∂t ∂xj ∂xj ∂xj
Lo anterior es posible dado que el fluido es incompresible y el número de Prandtl
se considera constante. En la forma antes escrita, es posible hacer una correspondencia
entre las ecuaciones (9),(10) y (11) con la ecuación general de transport (2), como se
muestra en la siguiente tabla.
Ecuación φ Γ Si
Masa ρ = cte. 0 0
∂p
N-S ui Pr − ∂xi + bi
Energı́a T 1 0
hj = ūj T̄ − uj T . (16)
En la LES se requiere un modelo de submalla o SGM (Subgrid Model ) que parametrize
ambos tensores adecuadamente, de tal manera que el flujo de escalas grandes pueda ser
1.4 Convección natural turbulenta 7
calculado con exactitud. Las simulaciones con el modelo deben producir resultados con
un significado fı́sico y con bajo esfuerzo computacional. El SGM más común supone una
viscosidad turbulenta (hipótesis de Boussinesq) para modelar τij :
∂ T̄
hj = κt , (19)
∂xj
donde la razón entre la viscosidad turbulenta νt y la difusividad turbulenta κt está defini-
da a través del número de Prandtl turbulento
νt
Prt =. (20)
αt
Cuando el número de Prandtl turbulento está dado, solamente la viscosidad turbu-
lenta tiene que ser parametrizada en términos de las cantidades resueltas. Aunque el
valor de Prt no está bien establecido [2], frecuentemente se considera que 31 < Prt < 21 ,
una discusión sobre este punto se encuentra en [10].
Aquı́ se considera el SGM propuesto por Métais y Lesieur [21], en donde la viscosidad
turbulenta se define como
−3/2
p
νt = 0.105Ck ∆ F̄2 , (21)
con una función de estructura filtrada definida como
3 2/3
1 X (i) ∆c
F̄2 (~x, ∆c) = F̄ , (22)
6 i=1 2 ∆xi
con
(i)
F̄2 = k~u(~x) − ~u(~x + ∆xi~ei )k2 + k~u(~x) − ~u(~x − ∆xi~ei )k2 , (23)
donde ~ei es el vector unitario en dirección xi y ∆c = (∆x1 ∆x2 ∆x3 )1/3 .
Sustituyendo (17) y (19) en las ecuaciones filtradas (13) y (14), y recordando que el
fluido es incompresible, obtenemos el siguiente sistema de ecuaciones:
∂ ūi ∂ ∂ p̄ ∂
+ (ūj ūi ) = − + (Pr + νt ) 2S̄ij + b¯i , (24)
∂t ∂xj ∂xi ∂xj
∂ T̄ ∂ ∂ νt ∂ T̄
+ ūj T̄ = 1+ . (25)
∂t ∂xj ∂xj Prt ∂xj
8 ÍNDICE
Ecuación φ Γ Si
Masa ρ̄ = cte 0 0
∂ p̄
N-S ūi Pr + νt − ∂xi + b̄i
νt
Energı́a T̄ 1 + Pr t
0
2. Método numérico
Las ecuaciones presentadas en la sección anterior son bastante complejas y a pesar
de que se conocen desde hace mucho tiempo, no existe hoy en dı́a un método analı́tico
para encontrar sus soluciones. Por esta razón, se han desarrollado muchos métodos
numéricos con los que es posible encontrar soluciones numéricas aproximadas. Mediante
el uso de las arquitecturas sofisticadas de cómputo y en especial de las arquitecturas
multiprocesador, ha sido posible resolver numéricamente las ecuaciones gobernantes
para diferentes tipos de flujos, con excelente exactitud y precisión.
L(φ) = 0
y una solución aproximada φ̄ definida por
φ̄ = a0 + a1 x + a2 x2 + · · · + am xm
La substitución de esta solución aproximada en (26) produce un residuo R definido
como
R = L(φ̄)
Se desea que este residuo sea pequeño en algún sentido. Se propone que
Z
W Rdx = 0 (26)
Ω
2.3. Propiedades
Existen tres conceptos matemáticos que son útiles para determinar el éxito de un
algoritmo numérico: convergencia, consistencia y estabilidad. La convergencia es
la propiedad de un método numérico de producir una solución que se aproxima a la
solución exacta conforme la distancia entre los puntos de la malla tiende a cero. Un
esquema numérico consistente produce sistemas de ecuaciones algebraicas equivalentes a
las ecuaciones gobernantes originales conforme el espaciamiento de los nodos de la malla
2.3 Propiedades 11
Volúmenes de
control
Puntos en el interior
Puntos en la frontera
11111
00000
00000
11111
del dominio
00000
11111
00000
11111 11
00
00000
11111 00
11
00
11
Volumen de control
Nodos de
la malla
tiende a cero. La estabilidad está asociada con la amortiguación del error conforme el
método numérico procede. Si el método no es estable, entonces aún errores de redondeo
en los datos iniciales, pueden causar fuertes oscilaciones o divergencia de la solución.
La convergencia es muy difı́cil de establecer teóricamente y en la práctica se utiliza el
teorema de equivalencia de Lax que dice que para problemas lineales una condición nece-
saria y suficiente para obtener convergencia es que el método sea consistente y estable.
Este teorema es limitado dado que las ecuaciones gobernantes de muchos fenómenos son
no lineales.
En el MVF se pueden obtener esquemas numéricos robustos si dicho esquema posee
la propiedad de ser conservativo, es acotado y además transporta adecuadamente las
propiedades.
Transporte : En procesos donde hay flujo de fluidos, se tienen en general efectos ad-
vectivos y difusivos. En fenómenos difusivos, tal como en conducción de calor, un
cambio en la temperatura en un punto, afectará la temperatura más o menos de
12 ÍNDICE
igual manera en todas las direcciones alrededor de dicho punto. Un fenómeno ad-
vectivo involucra influencia exclusivamente en la dirección del flujo. Los esquemas
en MVF deben tomar en cuenta la dirección de influencia del flujo en términos de
los efectos difusivos y los convectivos.
Cuando las propiedades antes mencionadas se utilizan en el diseño de todos los es-
quemas del MVF, se obtienen producen buenas aproximaciones a muchos tipos de prob-
lemas. En el MVF es común usar estas propiedades como alternativas a los conceptos
matemáticos más rigurosos de convergencia, consistencia y estabilidad.
2.4. Difusión
La ecuación gobernante para problemas de difusión se deriva de la ecuación general
(1) para la propiedad φ eliminando el término transitorio y el convectivo:
∇ · (Γ∇φ) + S = 0. (27)
φ(a) = Ta , y φ(b) = Tb
El proceso de aproximar una solución numérica del problema anterior usando MVF
es como sigue:
Volumen de control
W w P e E
Nodos ∆x
∆xw ∆xe
Paso 2. Integración.
Ahora se integra la ecuación (28) sobre el volumen de control descrito en la figura
2 para obtener:
Z Z dφ dφ
d dφ
Γ dx + Sdx = ΓA − ΓA + S̄dx = 0. (29)
∆x dx dx ∆x dx e dx w
Paso 3. Discretización.
Para derivar formas discretas de la ecuación anterior, se requiere aproximar Γ y
el gradiente dφ/dx en las caras e y w. La forma más simple es suponer que el
integrando prevalece sobre todo el volumen de control, lo cual da un perfil tipo
escalón como se muestra en la figura 3(a). Sin embargo, para esta aproximación,
la derivada dφ/dx no está definida en las caras e y w. Un perfil lineal, como el que
se muestra en figura 3(b), no sufre de esta desventaja por lo que es el que se usa
en la mayorı́a de los casos.
La aproximación lineal es muy simple y se conoce como diferencias centrales. En
una malla uniforme Γe y Γw están dados por:
ΓW + ΓP Γ + ΓE
Γw = y Γe = P
2 2
Usando el perfil lineal, los términos difusivos se evaluan como sigue:
dφ φ − φ
Γ = Γe E P
(30)
dx e ∆xe
dφ φ − φ
Γ = Γw P W
(31)
dx w ∆xw
14 ÍNDICE
φ φ
w e x w e x
W P E W P E
(a) (b)
S̄dx = Su + SP φP (32)
φ − φ φ − φ
E P
Γe − Γw P W
+ (Su + SP φP ) = 0
∆xe ∆xw
aP φP = aW φW + aE φE + Su . (34)
2.4 Difusión 15
aW = Γw/∆xw; aE = Γe/∆xe y aP = aW + aP − S P
Paso 4. Solución.
Una ecuación de la forma (34) debe escribirse para cada volumen de control (nodo).
Las ecuaciones discretas para los volúmenes de control que son adyancentes a la
frontera deben modificarse para tomar en cuenta las condiciones de frontera. El
sistema de ecuaciones resultante se resuelve para obtener una distribución de la
propiedad φ en los centros de los volúmenes.
1 2 3 4 5
Ta Tb
∆x
∆x /2 ∆x ∆x ∆x /2
Las ecuaciones discretas y sus coeficientes para los nodos 2, 3 y 4 se escriben como
sigue:
aP TP = aW TW + aE TE .
aW = k/∆x; aE = k/∆x y aP = aW + aP
Su y SP son cero dado que no existen fuentes.
Los nodos 1 y 5 están en la frontera y por lo tanto requieren de un proceso especial.
En el nodo 1, la integración de la ecuación (28) con S = 0 da lo siguiente
T − T T − T
E P a
k −k P =0
∆x ∆x/2
que se puede rearreglar como sigue
k k k k
+ TP = 0 × TW + TE + Ta .
∆x ∆x/2 ∆x ∆x/2
16 ÍNDICE
aP TP = aW TW + aE TE + Su.
donde
Juntando las ecuaciones para todos los nodos resulta un sistema lineal tridiagonal
aP aE 0 0 0 T1 Su
aW aP aE 0 0
T2 0
0 aW aP aE 0 T3 = 0
0 0 aW aP aE T4 0
0 0 0 aW aP T5 Su
Cada renglón del sistema presentado arriba corresponde a un volumen de control de
la malla, de tal manera que en principio los coeficients a’s son diferentes de renglón a
renglón. Lo mismo sucede con Su .
Z Z Z
∂ ∂φ ∂ ∂φ
Γ dV + Γ dV + SdV = (36)
∆V ∂x ∂x ∆V ∂y ∂y ∆V
dφ dφ
ΓeAe − ΓwAw +
dx e dx w
dφ dφ
ΓnAn − ΓsAs +
dx n dx s
S̄∆V = 0.
2.4 Difusión 17
111111111111
000000000000
n ∆yn
000000000000
111111111111
000000000000
111111111111
000000000000
111111111111
W
000000000000
111111111111
000000000000
111111111111
w P e E ∆y
000000000000
111111111111
000000000000
111111111111
000000000000
111111111111
000000000000
111111111111
000000000000
111111111111
000000000000
111111111111
s ∆ys
S
∆x
∆xw ∆xe
dφ φE − φP
ΓeAe = ΓeAe
dx e ∆xe
dφ φP − φW
ΓwAw = ΓwAw
dx w ∆xw
dφ φ − φP
ΓnAn = ΓnAn N
dx n ∆xn
dφ φP − φS
ΓsAs = ΓsAs
dx s ∆xs
aP φP = aW φW + aE φE + aS φS + aN φN + Su . (37)
donde los coeficientes están definidos como sigue:
aW = ΓwAw/∆xw; aE = ΓeAe/∆xe;
aS = ΓsAs/∆xs; aN = ΓnAn/∆xn; aP = aW + aE + aS + aN − SP ;
18 ÍNDICE
donde Ae = Aw = ∆y y An = As = ∆x .
En tres dimensiones el proceso es similar, solo que ahora se tiene la coordenada z, y
por cada volumen de control se tienen seis vecinos W, E, S, N, B, F , véase figura 6.
N
∆x
∆z n
B
b
W w P e E
f
∆y
F
s
∆V = ∆x∆y∆z
aP φP = aW φW + aE φE + aS φS + aN φN + aB φF + aB φB + Su. (38)
con los siguientes coeficientes:
podrı́an ser recalculados a partir de los nuevos valores de φ. Una regla básica es que SP
debe ser negativo, [37].
En el siguiente ejemplo, φ∗P representa el valor de φP en una iteración previa.
En la figura 8, por ejemplo, el punto E cae fuera del dominio y la cara e del volumen
que rodea a P cae justo en la frontera. Usando las técnicas de discretización descritas
antes, una ecuación para el punto P en términos de sus vecinos se escribe de forma
similar a la ecuación (38). Sin embargo, en este caso algunos de los coeficientes cambian
su forma debido a que el punto E no está dentro del dominio.
W P E
w e
∆ xe
x
S
z
φE = 2φb − φP . (40)
Sustituyendo esta última expresión en la ecuación (38) y factorizando se obtiene:
a∗P = aP + aE ,
SP∗ = SP + 2aE φb y
a∗E = 0.
Para las condiciones de tipo Neumann, usando diferencias centrales para aproximar
el gradiente normal a la superficie, se tiene que:
′ ∂φ φ − φP
φb = ≈ E , (42)
∂x e ∆xe
de donde se genera:
φE = φP + ∆xeφ′b . (43)
Sustituyendo esta expresión en la ecuación (52) se obtiene una ecuación similar a
(41), con los coeficientes definidos como sigue:
a∗P = aP − aE ,
SP∗ = SP + aE ∆xeφ′b y
a∗E = 0.
En el caso de que los nodos de la malla sean colocados al centro de los volúmenes
de control, figura 9(b), produce mejores aproximaciones pues el valor en el nodo si es
representativo para todo el volumen y el calculo del flujo se hace en el centro de las
caras. Por otro lado, este último cálculo no será preciso si se utiliza una aproximación
lineal dado que las caras no están a la mitad entre los nodos.
Para mallas uniformes ambas distribuciones son equivalentes. También es posible que
los elementos de la malla sean los volúmenes de control, figura 9(c). Es común llamar
Cell-Centered schemes(CC) a los dos primeros casos, figura 9 (a) y 9 (b) y Vertex-
Centered scheme(VC) al 9 (c). En la literatura ambos esquemas son aplicados. En los
ejemplos mostrados en este documento se usa CC, pues es más simple de implementar.
N N
n n
W w P e E W w P e E
s s
S S
3. MVF : Advección–Difusión
La ecuación de convección–difusión estacionaria se deriva de la ecuación general de
transporte (1) eliminando el término temporal:
∇ · ρφu = ∇ · (Γ∇φ) + Sφ , (44)
∂ ∂ ∂ ∂ ∂φ ∂ ∂φ ∂ ∂φ
(ρuφ) + (ρvφ) + (ρwφ) = Γ + Γ + Γ + Sφ , (45)
∂x ∂y ∂z ∂x ∂x ∂y ∂y ∂z ∂z
Z h∂ i
∂ ∂
(ρuφ) + (ρvφ) + (ρwφ) = (46)
∆V ∂x ∂y ∂z
Z h
∂ ∂φ ∂ ∂φ ∂ ∂φ
Γ + Γ + Γ + Sφ
∆V ∂x ∂x ∂y ∂y ∂z ∂z
Asumiendo que las velocidades en las caras w, e, s, n, b, f son conocidas y que este
valor prevalece en toda la cara, se obtiene lo siguiente:
C = D + S, (47)
donde la forma general de los términos C, D y S de la ecuación anterior es como sigue:
∂φ ∂φ
D=Γ − ∆y∆z
∂x e ∂x w
∂φ ∂φ
+Γ − ∆x∆z (49)
∂y n ∂y s
" #
∂φ ∂φ
+Γ − ∆x∆y,
∂z f ∂z b
S = SP ∆V, (50)
ce = ue∆y∆z, cw = uw∆y∆z,
cn = vn∆x∆z, cs = vs∆x∆z, (51)
cf = wf ∆x∆y, cb = wb∆x∆y,
Los términos advectivos y difusivos se pueden aproximar usando diferentes esquemas
[37]. Independientemente de la aproximación usada, cuando se insertan estos esquemas
en las ecuaciones (48) y (49), y éstos a su vez en la ecuación (47), se obtienen sistemas
lineales como el siguiente:
aP φP = aE φE + aW φW + aN φN + aS φS + aF φF + aB φB + SP , (52)
donde los coeficientes contienen una parte difusiva y otra advectiva:
aE = DE + CE , aW = DW + CW ,
aN = DN + CN , aS = DS + CS ,
(53)
aF = DF + CF , aB = DB + CB ,
∆V
aP = DP + CP + ∆t
.
24 ÍNDICE
donde ∆xe, ∆xw, ∆yn, ∆ys, ∆zf y ∆zb, son definidos como se muestra en la figura 10.
N N
1111111111
0000000000
n
0000000000
1111111111 ∆yn 1111111111
0000000000
n
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111 0000000000
1111111111
0000000000
1111111111
W
0000000000
1111111111
w1111111111
0000000000
P e E B
0000000000
1111111111
b 1111111111
0000000000
P f F
0000000000
1111111111 ∆y
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111 0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111 0000000000
1111111111
0000000000
1111111111
s ∆ys s
S S
∆x ∆z
∆xw ∆x e ∆zb ∆z f
y y
x z
z −x
∆y∆z ∆y∆z
DE = Γ , DW =Γ ,
∆xe ∆xw
∆x∆z ∆x∆z
DN = Γ , DS =Γ , (55)
∆yn ∆ys
∆x∆y ∆x∆y
DF = Γ , DB =Γ ,
∆zf ∆zb
DP = DE + DW + DN +DS + DF + DB .
3.2.1. Upwind
Este es un esquema que proporciona una aproximación de primer orden O(∆x), y
consiste en tomar el valor de la variable escalar en la cara del volumen de control, igual
al valor de φ en el punto de la malla de donde proviene el flujo (upstream). Por ejemplo,
si ce > 0 =⇒ φe = φP y si cw > 0 =⇒ φw = φW , la figura 11 muestra este caso.
Las funciones que definen este esquema para φe y φw, son:
( (
φP si ce > 0, φW si cw > 0,
φe = y φw = (56)
φE si ce ≤ 0, φP si cw ≤ 0.
Funciones similares se definen para φn, φs, φf y φb. Ahora, si se define JA, BK como
el máximo entre A y B, entonces, los términos advectivos en este esquema se expresan
de la siguiente manera:
ceφe = φP Jce, 0K − φE J−ce, 0K , cwφw = φW Jcw, 0K − φP J−cw, 0K ,
cnφn = φP Jcn, 0K − φN J−cn, 0K , csφs = φS Jcs, 0K − φP J−cs, 0K , (57)
cf φf = φP Jce, 0K − φF J−ce, 0K , cbφb = φB Jcb, 0K − φP J−cb, 0K .
26 ÍNDICE
Corte en el plano xy
11111111111
00000000000
n
00000000000
11111111111
00000000000
11111111111
∆yn
00000000000
11111111111
WW ww W
00000000000
11111111111
00000000000
11111111111
w P e E ee EE
00000000000
11111111111 ∆y
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
s ∆ys
y ∆x
∆xw ∆x e
x
z
Como se verá más adelante, la expresión (ce − cw) + (cn − cs) + (cf − cb), es la versión
discreta de la ecuación de continuidad.
φe = φE λe + φP (1 − λe), (59)
donde el factor de interpolación λe se define como:
3.2 Aproximación de los términos advectivos 27
xe − xP
λe = . (60)
xE − xP
Cuando la malla es uniforme λe = 0.5. La precisión de la ecuación (59) es de segundo
orden (O(∆x2 )) como puede mostrase a través de una expansión en series de Taylor de
φE alrededor del punto P . Este es el esquema de segundo orden más simple y corresponde
a la aproximación de diferencias centrales de la primera derivada en los métodos de
diferencias finitas.
Con este esquema los coeficientes son de la forma:
3.2.3. QUICK
El esquema QUICK (Quadratic Upstream Interpolation for Convective Kinematics)
desarrollado por Leonard [20] es un esquema tipo Upwind de tercer orden para interpolar
flujos advectivos (convectivos)1 en las caras de los volúmenes de control. En este caso,
se seleccionan tres puntos de la malla para construir un polinomio de segundo grado.
La selección de los puntos se hace de acuerdo con la dirección de la velocidad en la cara
correspondiente del volumen de control.
La fórma cuadrática de interpolación de los términos advectivos ceφe y cwφw, en el
esquema QUICK, para mallas uniformes tiene la siguiente forma:
φP + φE
ceφe = ce − cep φW − 2φP + φE − cem φE E − 2φE + φP , (62)
2
φP + φW
cwφw = cw − cwp φW W − 2φW + φP − cwm φE − 2φP + φW , (63)
2
en donde cep, cem, cwp y cwm son funciones que dependen de ce y cw. La forma de cep
y cem se muestra en la ecuación (64) y en la figura 12; definiciones similares se hacen
para cwp y cwm. Los términos cnφn, csφs, cf φf y cbφb se aproximan de igual manera.
( (
ce
f 8
si ce > 0, g 0 si ce ≥ 0,
cep = = cem = = (64)
8 0 si ce ≤ 0, 8 − c8e si ce < 0.
Usando las definiciones anteriores, los coeficientes convectivos toman la forma sigu-
iente:
1
Se ha usado en este documento el término advección para denotar a los términos que tienen que
ver con el movimiento del fluido. Algunos autores utilizan el término convección.
28 ÍNDICE
f g
1 ce − |ce |
g(ce ) = 2
0
ce 0
ce
−1 1 2 3 −3 −2 −1 1
ce + |ce |
f(ce ) = 2 −1
ce cw
CE = − + cep − 2cem + cwm, CW = + 2cwp − cwm + cep,
2 2
cn cs
CN = − + cnp − 2cnm + csm, CS = + 2csp − csm + cnp,
2 2
cf cb
CF = − + cfp − 2cfm + cbm, CB = + 2cbp − cbm + cfp, (65)
2 2
CP =CE + CW + CN + CS + CF + CB +cem − cwp + cnm − csp + cfm − cbp+
(ce − cw) + (cn − cs) + (cf − cb).
El orden de aproximación de este esquema es de O(∆x3 ), véase [20].
4. Acoplamiento presión-velocidad
La advección de una variable escalar φ depende de la magnitud y dirección de la ve-
locidad. En general, la velocidad no se conoce y debe calcularse como parte del proceso
de solución junto con las otras variables del flujo. Las ecuaciones para cada compo-
nente de la velocidad — ecuaciones de cantidad de movimiento — pueden derivarse de
la ecuación general (1). En el caso de flujos incompresibles, la velocidad debe satisfac-
er la ecuación de continuidad. Para describir el método de solución, reescribimos las
ecuaciones de cantidad de movimiento y de continuidad como sigue:
∂u ∂u ∂u ∂u ∂p ∂ 2u ∂2u ∂ 2u
+u +v +w = − + Γ 2 + Γ 2 + Γ 2 + Su ,
∂t ∂x ∂y ∂z ∂x ∂x ∂y ∂z
∂v ∂v ∂v ∂v ∂p ∂ 2v ∂ 2v ∂ 2v
+u +v +w = − + Γ 2 + Γ 2 + Γ 2 + Sv , (66)
∂t ∂x ∂y ∂z ∂y ∂x ∂y ∂z
2 2
∂w ∂w ∂w ∂w ∂p ∂ w ∂ w ∂2w
+u +v +w = − + Γ 2 + Γ 2 + Γ 2 + Sw .
∂t ∂x ∂y ∂z ∂z ∂x ∂y ∂z
4.1 Mallas desplazadas 29
∂u ∂v ∂w
+ + = 0. (67)
∂x ∂y ∂z
La solución de estas ecuaciones presenta algunos problemas:
Los términos advectivos de las ecuaciones de cantidad de movimiento son canti-
dades no lineales.
Las ecuaciones están fuertemente acopladas debido a que cada componente de la
velocidad aparece en cada ecuación de cantidad de movimiento.
El problema más complejo es resolver el papel que juega la presión: no existe
explı́citamente una ecuación para la presión.
Estos problemas, asociados con la no linealidad de las ecuaciones, pueden resolverse
adoptando una estrategia de solución iterativa. El método SIMPLEC (Semi-Implicit
Method for Pressure Linked Equations – Consistent) [9] es usado aquı́ y se presenta más
adelante.
N N
11111111111
00000000000
00000000000
11111111111
00000000000
11111111111
n
∆yn 11111111111
00000000000
00000000000
11111111111
n
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000P
11111111111 00000000000
11111111111
B 11111111111
w 111111111111111111111
000000000000000000000
W 11111111111
00000000000
00000000000
11111111111
e E 00000000000
b 111111111111111111111
000000000000000000000
00000000000
11111111111
P f
F
000000000000000000000
111111111111111111111
00000000000
11111111111
00000000000
11111111111
000000000000000000000
111111111111111111111
00000000000
11111111111
00000000000
11111111111
∆y
000000000000000000000
111111111111111111111
00000000000
11111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
00000000000
11111111111
00000000000
11111111111 00000000000
11111111111
000000000000000000000
111111111111111111111
00000000000
11111111111
000000000000000000000
111111111111111111111
00000000000
11111111111
00000000000
11111111111 000000000000000000000
111111111111111111111
00000000000
11111111111
000000000000000000000
111111111111111111111
00000000000
11111111111
00000000000
11111111111
000000000000000000000
111111111111111111111
00000000000s
11111111111 ∆ys
000000000000000000000
111111111111111111111
00000000000
11111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111 000000000000000000000
111111111111111111111
s
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111 000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111 000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
S 000000000000000000000
111111111111111111111
S
∆x ∆z
x z
z −x
111
000
000
111 VC para u 111111
000000 1111
0000
000
111 000000
111111 VC para v 0000
1111 VC para w
Figura 13: Malla y volúmenes de control (VC) para las componentes de la velocidad.
En los métodos del tipo SIMPLE se encuentra una ecuación discreta ya sea para la
presión p o para la corrección a la presion p′ y se resuelve dentro del ciclo global del
método.
4.3. SIMPLEC
En el SIMPLE se realiza una aproximación consistente P que genera una expresión
′ ′
sencilla para p . En este algoritmo se resta el término anb uP en ambos lados de la
ecuación (72), de tal forma que se tiene:
X X
(aP − anb )u′P = anb (u′nb − u′P ) +Au (p′W − p′P ). (73)
nb
|nb {z }
≈0
La diferencia (u′nb −u′P ) es aproximadamente igual a cero, para todo nb y para mallas
relativamente finas. Por lo tanto, es posible eliminar este término de la ecuación, de tal
manera que la velocidad corregida estará dada por:
De esta manera se tiene una ecuación para la corrección a la presión, con la que se
completa el sistema de ecuaciones. La definición de bp es exactamente la forma discreta
de la ecuación de continuidad para u∗ , v ∗ y w∗ , que produce el método de volumen finito.
Cuando este coeficiente es igual a cero, significa que dichas velocidades cumplen con la
ecuación de continuidad. Este es el criterio de convergencia que se usa en los ejemplos
mostrados al final de este texto.
En problemas de convección natural la diferencia de temperaturas es la que promueve
el movimiento, por lo tanto es importante resolver primero la ecuación de energı́a y luego
las ecuaciones de cantidad de movimiento y la de corrección a la presión. Entonces, los
pasos que sigue el método SIMPLEC, adaptado a problemas de convección natural son:
a) Si bp ≤ ǫs ir al paso 9.
b) Si bp > ǫs regresar al paso 2
9. Fin
directos e iterativos. Los métodos iterativos son generalmente mucho más económicos
que los directos y por ello son preferidos cuando la matriz es dispersa. En este trabajo se
ha usado un método iterativo que se basa en el algoritmo directo de Thomas o TDMA
para matrices tridiagonales.
5.1. TDMA
El TDMA es un método directo para resolver de manera simple y eficiente sistemas
tridiagonales. En una dimensión, la matriz del sistema es tı́picamente tridiagonal, por
lo tanto el TDMA es aplicado directamente, véase figura 14.
A x b
W P E
Para encontrar la solución del sistema anterior se realizan los siguientes pasos:
3. Hacer xN = QN
xi = Pi xi+1 + Qi (81)
aP φP = aE φE + aW φW + aN φN + aS φS + SP . (82)
A x b
N
j+1
W P E
j
y
− aW φW + aP φP − aE φE = aN φN + aS φS + SP . (83)
El lado derecho de esta última ecuación se supone conocido, y los valores de φN y
φS se toman de la iteración anterior. La ecuación (83) representa un sistema tridiagonal
donde b = aE , c = aW , a = aP y d = aN φN + aS φS + SP . De esta manera el sistema
puede resolverse a lo largo de la dirección x. Una vez resuelto el sistema en la lı́nea
5.2 Aplicación del TDMA en 2 y 3 dimensiones 35
− aW φW + aP φP − aE φE = aN φN + aS φS + aF φF + aB φB + SP . (84)
TDMA en 3D
Sistema lineal en 3D
A x b
j
N
B
k P
W E
k+1
F
Puntos en la frontera
del dominio
Puntos donde se resuelve
6. Problemas no estacionarios
La ecuación general de transporte (1) se puede escribir como sigue:
∂φ ∂ ∂ ∂
+ (uφ) + (vφ) + (wφ) =
∂t ∂x ∂y ∂z
∂ ∂φ ∂ ∂φ ∂ ∂φ
Γ + Γ + Γ + Sφ
∂x ∂x ∂y ∂y ∂z ∂z
Integrando la ecuación anterior en un volumen de control, ∆V , y en un intervalo de
tiempo, ∆t, se obtiene
Z Z k+1 Z k+1 Z h i
∂φ ∂ ∂ ∂
dtdV + (uφ) + (vφ) + (wφ) dV dt =
∆V k ∂t k ∆V ∂x ∂y ∂z
Z k+1 Z h
∂ ∂φ ∂ ∂φ ∂ ∂φ i
Γ + Γ + Γ + Sφ dV dt
k ∆V ∂x ∂x ∂y ∂y ∂z ∂z
donde k ≡ t y k + 1 ≡ t + ∆t.
Considerando que el valor de φ prevalece sobre todo el volumen, entonces la primera
integral del lado izquierdo se puede calcular fácilmente de tal manera que es posible
escribir:
Z k+1 Z k+1
k+1 k
φP − φP ∆V + Cdt = [D + S] dt.
k k
donde se han agrupado los términos convectivos, difusivos y el fuente en C, D y S,
respectivamente.
Para evaluar las integrales sobre el tiempo, es necesario hacer algunas suposiciones
acerca de la variación de φ en cada volumen de control con respecto al tiempo. Es posible
usar el valor de φ en el tiempo t, en el tiempo t + ∆t o una combinación de ambos.
Lo anterior se generaliza mediante el uso de un parámetro de peso, θ, cuyo valor
está en el intervalo [0, 1]. Esto se conoce como esquema θ y se escribe:
Z k+1
f dt = θf k+1 + (1 − θ)f k ∆t
k
k
Zk+1 f ∆t para θ = 0
=⇒ f dt = f k+1 ∆t para θ = 1
k
k+1
f + f k ∆t
2
para θ = 1
2
∆V
φk+1 − φkP = θ D(φk+1
nb ) − C(φk+1
nb ) + S u + S P
φk+1
P
∆t P
+(1 − θ) D(φknb) − C(φknb) + Su + SP φkP
k+1 ∆V
φP − φkP = D(φknb) − C(φknb) + Su + SP φkP
∆t
De aquı́ se obtiene:
∆t
φk+1 = φkP + D(φknb) − C(φknb) + Su + SP φkP
P
∆V
La ecuación anterior es trivial, pues se obtiene el valor de φk+1
P
mediante valores de φ
conocidos del tiempo anterior k. Este esquema es condicionalmente estable y en general
no es muy recomendable.
∆V
φk+1 − φkP = D(φk+1 k+1 k+1
nb ) − C(φnb ) + Su + SP φP
P
∆t
De aquı́ se obtiene:
∆V ∆V
φk+1 + C(φk+1 k+1 k+1
nb ) − D(φnb ) − SP φP = φkP + Su
P
∆t ∆t
Como se puede observar, es necesario resolver un sistema de ecuaciones en cada paso
de tiempo. Este esquema es incondicionalmente estable para cualquier paso de tiempo.
Sinembargo, debido a que el esquema es de primer orden en el tiempo, es necesario usar
pasos de tiempo pequeños para obtener buena precisión en la solución. Este esquema es
recomendable para problemas no estacionarios.
38 ÍNDICE
7. Paradigmas de programación
El cómputo cientı́fico ha evolucionado rápidamente en las últimas décadas alacan-
zando un alto grado de complejidad. Los vastos avances en el desarrollo de nuevas
arquitecturas de hardware y en el desarrollo de métodos numéricos modernos proveen
de una herramienta para resolver cada vez problemas más complicados. Como resultado,
varios problemas importantes para la sociedad se han podido resolver con un alto grado
de precisión, de tal manera que hoy en dı́a el cómputo cientı́fico es indispensable en
muchas áreas del conocimiento.
La solución de estos problemas requiere de la implantación de algoritmos numéricos
sofisticados, los cuales necesitan ser transportables entre las diferentes arquitecturas de
cómputo existentes, y además tener una alta eficiencia. Estos tres elementos: sofisti-
cación, hardware y eficiencia, demandan un nivel de abstracción alto en los códigos sin
pérdida en el desempeño de los mismos.
La mayorı́a de los códigos desarrollados en cómputo cientı́fico se construyen usando
lenguajes estructurados como F77 o C, pues con estos lenguajes se obtiene alto de-
sempeño sin mucho esfuerzo. Pero por otro lado, el nivel de abstracción que se puede
alcanzar es relativamente bajo, y es posible que no exista relación directa de las con-
strucciones del código con las entidades del dominio del problema. Esto último ocasiona
que el código sea de difı́cil lectura y frecuentemente es muy complicado, y en algunas
ocasiones imposible, darle una buena organización, y por lo tanto el mantenimiento y
la extensión de dicho código resultan en procesos largos, tediosos y sobre todo costosos.
Lo anterior inhibe la reutilización de partes del código.
Las complicaciones descritas antes caraterizan lo que se conoce como la crisis del
software : incapacidad de desarrollar software que sea lo suficientemente simple para
ser entendido, mantenido y extendido por cualquier desarrollador, y que además sea
capaz de proveer soluciones a problemas muy complejos, véase [4].
Una manera de evitar los problemas de la crisis del software, es siguiendo alguna
técnica ordenada de desarrollo, como por ejemplo la descrita en [16], en combinación
con paradigmas de programación actuales. En los últimos años se ha observado que me-
diante el uso de los paradigmas de programación de orientación a objetos, programación
genérica y programación en paralelo, es posible construir software con las caracterı́sti-
cas necesarias para reutilizarlo en diferentes situaciones y además con un rendimiento
comparable al que se obtiene con los lenguajes estructurados.
double x[10];
vector<double> y[10];
list<complex<double>> z(10);
En este ejemplo se observa como el algoritmo accumulate() puede ser usado indepen-
diente de la estructura de datos que se le pasa como argumento.
Usando algoritmos genéricos y modelos, se reduce el código: si se tienen M algoritmos
y N modelos (estructuras de datos), la cantidad de código que se debe construir en el
paradigma de programación estructurada (F77 y/o C) es O(M × N ), mientras que en
la programación genérica la cantidad de código serı́a de O(M + N ).
8. Programación paralela
Las computadoras tradicionales, con un solo procesador, están basadas en el modelo
introducido por John von Neumann [5]. Este modelo consiste de una unidad central de
procesamiento (CPU) y una memoria. Este tipo de computadoras toma una secuencia
8.1 Organización de la memoria 41
SISD (Single Instruction, Single Data) : Computadoras tradicionales que procesan in-
strucciones de manera serial.
SIMD (Single Instruction, Multiple Data) : Computadoras con varios procesadores que
trabajan concurrentemente y ejecutan las mismas instrucciones sobre conjuntos de
datos diferentes.
acceder a la memoria de otros nodos a través de una red, la cual debe permitir
comunicaciones de alta velocidad. Los datos que se intercambian entre los nodos
son enviados como mensajes sobre la red.
8.3. Comunicaciones
El hardware que permite a los procesadores comunicarse es un aspecto crı́tico en
ambos tipos arquitecturas de memoria. Desde un punto de vista abstracto no hace mucha
diferencia si se conectan procesadores al bus de memoria o si se conectan computadoras
entre sı́. El papel que juega la red en un cluster de PCs es comparable al papel del bus
de datos en una computadora de memoria compartida.
En general, un programador no necesita conocer la topologı́a de interconección de
los procesadores para construir un programa paralelo. El software que maneja la red y el
hardware de las computadoras paralelas actuales esconden los detalles de bajo nivel de la
red, permitiendo a los códigos enviar trabajos a cualquier procesador de la computadora.
Sin embargo, es útil tomar en cuenta dos aspectos de las redes que son relevantes para
el diseño de un algoritmo.
b
td = L + (85)
B
mismo peso a cada procesador para evitar que haya procesadores ociosos, mientras que
otros trabajan al 100 %.
donde Ps es la porción del programa que se ejecuta en serie; Pp es la porción del programa
que se ejecuta en paralelo; np es número de procesadores. Además se cumple que Ps +
Pp = 1. De la ecuación (86) tenemos que una medición de la aceleración es:
−1
Ts Pp
S= = + Ps (87)
Tp np
La siguiente tabla muestra el comportamiento de la aceleración de acuerdo con la
ley de Amdahl.
8.10. Escalabilidad
En general un número alto de procesadores disminuye la eficiencia. Por otro lado, se
ha observado que en algunos casos el incremento del tamaño del problema incrementa la
eficiencia. Entonces deberı́a ser posible mantener la eficiencia constante cuando, tanto
el número de procesadores ası́ como el tamaño del problema se incrementan simultánea-
mente. Esta habilidad de mantener la eficiencia constante se conoce como escalabilidad.
La escalabilidad de un programa paralelo es la medida de su capacidad de incrementar
la aceleración en proporción al número de procesadores. Se dice que un programa es
escalable cuando su eficiencia es mayor a 0.5.
LΦ = F en Ω, (88)
Φ = G sobre δΩ.
δΩ es la frontera real de Ω.
∂Ω
∂ Ω2
Ω1 Ω2
∂ Ω1
∂ Ω1 | Γ1
Γ2 Γ1
∂ Ω2 | Γ2
LΦn1 = F en Ω1
Φn1 = G sobre ∂Ω1 \Γ1
Φn1 = Φ2n−1 |Γ1 sobre Γ1
LΦn2 = F en Ω2
Φn2 = G sobre ∂Ω2 \Γ2
Φn2 = Φn1 |Γ2 sobre Γ2
01 W10 ← 0.
02 For n = 1, ...
03 Resolver para φn1 :
04 A1 φn1 = f1 en Ω1
05 φn∂Ω1 \Γ1 = g1 sobre ∂Ω1 \Γ1
06 φnΓ1 = W1n−1 sobre Γ1
07 W2n ← Φn1 |Γ2
08 Resolver para φn2 :
09 A2 φn2 = f2 en Ω2
10 φn∂Ω2 \Γ2 = g2 sobre ∂Ω2 \Γ2
11 φnΓ2 = W2n sobre Γ2
50 ÍNDICE
Nótese que este algoritmo es serial, en donde cada iteración se divide en dos partes:
en la primera se resuleve el problema en el Ω1 , y en la segunda en el Ω2 . Esto corresponde
a una iteración del tipo Gauss-Seidel por bloques, en donde cada bloque corresponde
a un subdominio. Por lo tanto, un algoritmo paralelo se obtiene usando las mismas
estrategias usadas en la paralelización del algoritmo de Gauss-Seidel, véase [29].
Otra manera es usar una versión del algoritmo arriba descrito en términos de una
iteración de Jacobi por bloques. En este algoritmo, se suponen conocidas las condiciones
en la fronteras internas, Γi , y se resuelve de manera simult’anea un problema similar
en cada subdominio. Un algoritmo paralelo de este caso, para K subdominios, es el que
sigue:
Algoritmo paralelo alternante de Schwarz
01 Particionar el dominio
02 Definir el problema en cada subdominio
03 W10 ← 0, ..., WK0 ← 0
04 Parallel For k = 1, ..., K
05 For n = 1, ...
06 Resolver para φnk :
07 Ak φnk = fk en Ωk
08 φn∂Ωk \Γk = gk sobre ∂Ωk \Γk
09 φnΓk = Wkn−1 sobre Γk
10 Checar la convergencia :
11 Si ||Wkn − Wkn−1 || ≤ tolΓk Fin
12 Si ||φnk − φkn−1 || ≤ tolΩk Fin
13 End For
14 Wait
15 Enviar φnk |Γk −1 a los subdominios vecinos
16 Wk0 ← φnnb |Γk
17 End Parallel For
Subdominios
Dominio global 2 3
2 3
Partición
1 4
x
1 4
(a)
Puntos de la malla
Intercambio de información Puntos en la frontera real
Puntos en las fronteras "fantasma" (ghost)
(b)
Topología Virtual
2 5 8
(0,2) (1,2) (2,2)
(I, J−1)
0 3 6
J
(0,0) (1,0) (2,0)
Figura 20: Topologı́a Virtual (TV) en 2D generada por la partición por bloques. Se
muestra la numeración de los subdominios en términos de las coordenadas de la TV.
10 Casos de estudio 53
T = 0.5 T = −0.5
∂T
=0
∂y
En dos dimensiones para una malla de 242 se hizo una comparación entre los tres
esquemas CDS, Upwind y QUICK. El resultado se presenta en la figura 22 en donde
se muestran contornos de temperatura y una comparáción entre los tres esquemas en
y = 0,5.
54 ÍNDICE
0.5
Upwind
0.3 CD
0.4 0.4 Quick
0.2
0.3
0.2
0.1
0.1
T
0
0.0
-0.1
−0.1
-0.2
-0.3
−0.2
-0.4
−0.3 −0.4
-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
eje x
(a) (b)
Figura 22: (a) Contornos de temperatura. (b) Corte en y = 0,5, se observa que para los
esquemas CD y QUICK el resultado es muy similar.
Cuadro 4: Comparación con el benchmark publicado por de Vahl Davis [8]. Los resul-
tados numéricos fueron obtenidos usando el esquema QUICK, en una malla de 81 × 81.
112
80
−27
64
16 −27
48
32 0
0.0 0
−32 0
27
−48
−16
−64 −80 27
−112
(a) (b)
0.44 0.37
0.31
0.25
0.19
0.12
0.06
0.0 2
−0.06 3
−0.12 1
−0.19
−0.25
−0.31
−0.37 −0.44
(c) (d)
Figura 24: Resultado para Ra = 106 con el esquema QUICK en una malla de 812 . (a)
Componente u de la velocidad, (b) componente v de la velocidad, (c) temperatura y (d)
Trayectoria de partı́culas: 1=(0.247,0.370), 2=(0.197,0.556), 3=(0.827,0.444).
Lx
Ly
TH TC
TH > TC
Lz = 2 Lx = 2Ly
Lz
50
64 X 64 X 48
96 X 96 X 64
40
Nusselt
30
20
10
0 5000 10000
Iteraciones
<Nu>
150
100
50
-50
0 1 2 3 4
η
Figura 27: Número de nusselt promedio alrededor de las cuatro paredes para una malla
de 160 × 160 × 80.
1 51
1
0.3
0.351
0.
35
1
0.351
0.351
0.351
0.351
0.351
−0.866
1
35
0.
1.57
0.351
51
.3
0.3510
−0.86
60.351
0.5 0.5
(a) (b)
Figura 28: (a) Flujo secondario instantáneo e isolines de la viscosidad turbulenta νt . (b)
flujo promedio.
Referencias
[1] M. H. Austern. Generic Programming and the STL: Using and Extending the C++
Standard Template Library. Addison–Wesley, 1999.
[2] R. Bastiaans, C. Rindt, F.Ñieuwstadt, and A. van Steenhoven. Direct and large–
eddy simulation of the transitional of two– and three–dimensional plane plumes in
a confined enclosure. Int. J. Heat and Mass Trans, 43:2375–2393, 2000.
[5] A. Burks, H. Goldstine, and J. von Neumann. Preliminary Discussion of the Log-
ical Design of an Electronical Computing Instrument, volume 5 of In: Taub, A.H.
(Editor), Collected Works of John von Neumann. New York, Macmillan, 1963,
1946.
[8] G. de Vahl Davis. Natural convection of air in a square cavity: a bench mark
numerical solution. Int J Numer Methods Fluids, 3:249–264, 1983.
[9] J. V. Doormal and G. D. Raithby. Enhancements of the simple method for pre-
dicting incompressible fuiod flows. Num. Heat Transfer, 7:147–163, 1984.
[11] J. H. Ferziger and M. Peric. Computational Methods for Fluid Dynamics. Springer–
Verlag, second edition edition, 1999.
[12] M. J. Flynn. Some computer organizations and their effectiveness. IEEE Transac-
tions on Computers, C-21(9):948–960, 1972.
[34] Y. Tian and T. Karayiannis. Low turbulence natural convection in an air filled
square cavity, part i: The thermal and fluid flow fields. International Journal of
Heat and Mass Transfer, 43:849 – 866, 2000.
[35] Y. Tian and T. Karayiannis. Low turbulence natural convection in an air filled
square cavity, part ii: The thermal and fluid flow fields. International Journal of
Heat and Mass Transfer, 43:867 – 884, 2000.