Está en la página 1de 35

Introducción a la

simulación de fluidos
Animación Avanzada

Iván Alduán Íñiguez


25 de Marzo de 2014
Índice

• Motivación
• Mecánica computacional de fluidos
• Método de diferencias finitas
• Ecuación de convección
• Ecuación de difusión
Motivación (FX)
Motivación (FX)
Motivación (CFD)
Motivación
Mecánica computacional
de fluidos
Mecánica computacional
de fluidos
• Paso 1: Selección del modelo matemático,
definir el nivel de aproximación de la realidad que
queremos simular, por ejemplo en forma de PDEs.

- Modelo en 2D o 3D
- Fluido compresible o no compresible
- Fluido viscoso o no viscoso
- Modelo de turbulencia
- Fluido isotérmico o la temperatura es importante
- Fluido subsónico o supersónico

8
Mecánica computacional
de fluidos
• Paso 2: Discretización del dominio, con
principalmente dos componentes: la discretización
del espacio por ejemplo mediante la generación de
una malla; elección del esquema numérico por
ejemplo elementos finitos.

(a) Irregular mesh (b) Structured mesh


Mecánica computacional
de fluidos
• Paso 2: Discretización del dominio

• Métodos lagrangianos
- Smoothed particle hydrodynamics
- Moving least squares
- Elementos finitos

• Métodos eulerianos
- Diferencias finitas
- Volumenes finitos
- Elementos finitos
Mecánica computacional
de fluidos
• Paso 3: Análisis de que el método numérico
elegido es válido, estudiando sus propiedades de
consistencia, estabilidad, convergencia y precisión.

- Consistencia: Un esquema es consistente cuando la


ecuación discretizada tiende a la ecuación diferencial cuando
dt y dx tienden a cero
- Estabilidad: Un esquema es estable si los errores no
aumentan indefinidamente al progresar en el cálculo de un
paso de tiempo a otro
- Convergencia: Un esquema converge cuando la solución
numérica tiende a la solución exacta de la ecuación
diferencial cuando dt y dx tienden a cero
Mecánica computacional
de fluidos
• Paso 4: Solución del esquema numérico,
aplicando conocimientos matemáticos que aceleren
la convergencia del sistema.

- El sistema es ¿simétrico?, ¿definido positivo?,


¿diagonal dominante?
- Métodos iterativos vs solvers directos
- Factorización de Choleski, LU, QR, …
- Jacobi, Gauss-Seidel, SOR, …
- CG, PCG, BCG, …
- Métodos multigrid
Mecánica computacional
de fluidos
• Paso 5: Post-procesado gráfico de los resultados
cuantitativos para interpretar y analizar los
resultados obtenidos.

- Visualización de las cantidades simuladas


mediante mapas de color
- Mallado de la superficie libre del fluido
- Generación de splash, foam, mist
- Renderizado en tiempo real
- Renderizado fotorealista
BRDF, Bidirectional path tracing, …
Diferencias finitas

• El Método de las Diferencias Finitas es el método


numérico mas sencillo y mas antiguo para obtener
soluciones numéricas de ecuaciones diferenciales
(Euler 1768).

• Basado en las propiedades de los desarrollos de


Taylor y en la definición de derivada.

• Requiere un alto grado de regularidad de la malla.


La malla debe ser estructurada y uniforme.
Diferencias finitas

• Recordemos la definición de derivada:

 ∂u  u ( x + ∆x) − u ( x)
u x ≡   = lim
 ∂x  ∆x →0 ∆x

• Para un valor finito de ∆x se introduce un error


(error de truncamiento) que tiende a 0 cuando ∆x
tiende a 0

• La potencia de ∆x con la que el error tiende a 0 se


llama orden de aproximación y se obtiene a partir
del desarrollo de Taylor de u(x + ∆x) alrededor de x
Diferencias finitas

• Desarrollo de Taylor:
∆x 2
u ( x + ∆x) = u ( x) + ∆x u x ( x) + u xx ( x) + ...
2
• Reordenando los términos:
u ( x + ∆x) − u ( x) ∆x
= u x ( x) + u xx ( x) + ...
∆x 2
• Esta aproximación es de primer orden en ∆x, que indica que
el error de truncamiento tiende a cero como la primera
potencia de ∆x, y se escribe:
u ( x + ∆x) − u ( x)
= u x ( x) + 0(∆x)
∆x
Diferencias finitas

• Desarrollo de Taylor:
∆x 2
u ( x − ∆x) = u ( x) − ∆x u x ( x) + u xx ( x) − ...
2
• Reordenando los términos:
u ( x) − u ( x − ∆x) ∆x
= u x ( x) + u xx ( x) + ...
∆x 2
• Esta aproximación es de primer orden en ∆x, y se denomina
diferencia hacia atrás, frente a la anterior aproximación que
se denomina diferencia hacia adelante:
u ( x) − u ( x − ∆x)
= u x ( x) + 0(∆x)
∆x
Diferencias finitas

• Desarrollo de Taylor:
∆x 2 ∆x 3
ui +1 = ui + ∆x (u x ) i + (u xx ) i + (u xxx ) i +...
2 6
∆x 2 ∆x 3
ui −1 = ui − ∆x (u x ) i + (u xx ) i − (u xxx ) i +...
2 6
• Restamos la segunda expresión a la primera y reordenamos:

ui +1 − ui −1
= u x ( x) + 0(∆x 2 )
2∆x
• Esta aproximación es de segundo orden en ∆x, y se
denomina diferencia centrada
Diferencias finitas
 ∂u  u −u
• Interpretación gráfica: (u x )i =   = i +1 i + 0(∆x) Diferencia hacia delante
 ∂x  x = xi ∆x
 ∂u  u −u
(u x ) i =   = i i −1 + 0(∆x) Diferencia hacia atrás
 ∂x  x = xi ∆x
Diferencia hacia delante
 ∂u  u −u
(u x ) i =   = i +1 i −1 + 0(∆x 2 ) Diferencia centrada
 ∂x  x = xi 2∆x
Diferencia hacia atrás ui +1
ui
y = u(x)
ui −1

Diferencia centrada

∆x ∆x
i −1 i i +1
Ecuación de convección

• Es el transporte de una propiedad (masa, calor,


momentum) debido al movimiento de un fluido.

• Ecuación hiperbólica de transporte convectivo en


1D, de momento vamos a asumir una velocidad de
propagación constante (a=cte):

∂u ∂u
+a =0
∂t ∂x
• Veamos algunos esquemas numéricos para tratar
esta ecuación
Ecuación de convección

• Esquema FTBS
(Forward in Time & Backward in Space)

• Discretizando con DF hacia delante en el tiempo


• Discretizando con DF hacia atrás en el espacio
n +1
u −u n
a n
i
=−i
(ui − uin−1 )
∆t ∆x
C =Número de Courant

n +1 a∆t n
u =u −
n
(ui − ui −1 )
n

∆x
i i
Ecuación de convección

• Esquema FTBS
(Forward in Time & Backward in Space)

• El número de Courant C, es el cociente entre la


velocidad física de propagación a y la velocidad
numérica dx/dt
• El esquema FTBS es explícito de primer orden
• El esquema FTBS es condicionalmente estable
- La idea intuitiva es no avanzar más de una celda en cada step
- Discretizar la derivada espacial tomando la información de donde
viene la velocidad ( upwind-biased differencing)
0 < C ≤1
Ecuación de convección

• Esquema FTCS
(Forward in Time & Centered in Space)

• Discretizando con DF hacia delante en el tiempo


• Discretizando con DF centradas en el espacio

uin +1 − uin a n +1 C n
=− (ui +1 − ui −1 ) ⇒ ui = ui − (ui +1 − uin−1 )
n n n

∆t 2∆x 2

incondicionalmente inestable
Ecuación de convección

• También métodos implícitos p.ej.:


uin +1 − uin uin +1 − uin−+11
+a =0
∆t ∆x
• En gráficos:
- Semi-lagrangian advection
- MacCormack methods
- Hybrid grid-particle methods

• Métodos más exactos:


- TVD high order Runge–Kutta time discretization
- Fifth order accurate WENO spatial discretization
Ecuación de convección
Ecuación de convección
Ecuación de convección
Diferencias finitas para la
derivada segunda
• Desarrollo de Taylor:
∆x 2 ∆x 3
ui +1 = ui + ∆x (u x ) i + (u xx ) i + (u xxx ) i +...
2 6
∆x 2 ∆x 3
ui −1 = ui − ∆x (u x ) i + (u xx ) i − (u xxx ) i +...
2 6
• Sumamos ambos desarrollos y reordenamos:
ui +1 − 2ui + ui −1
= u ( x ) + 0( ∆x 2
)
∆x 2 xx

• De la misma manera hemos obtenido una aproximación por


diferencias finitas centradas para la segunda derivada, y esta
aproximación también es de segundo orden.
Ecuación de difusión

• Dada una distribución inicial de una propiedad


(temperatura, velocidad), dicha función tiende a
homogeneizarse, los cambios bruscos se suavizan.

• Ecuación parabólica de difusión en 1D (k=cte):


∂u ∂ 2u
=k 2
∂t ∂ x
Ecuación de difusión

• Esquema FTCS
(Forward in Time & Centered in Space)

• Discretizando con DF hacia delante en el tiempo


• Discretizando con DF centradas en el espacio

uin +1 − uin uin+1 − 2uin + uin−1


=D
∆t ∆x 2

n +1 D∆t n
u = u + 2 (ui +1 − 2uin + uin−1 )
n

∆x
i i
1
D* 0 ≤ D* ≤
2
C ondición de estabilidad
Ecuación de difusión

C ondición de estabilidad
Ecuación de difusión
Ecuaciones
multidimensionales
• En el espacio 2D, la malla esta definida por los
puntos de coordenadas: xi = i ∆x e yj = j ∆y

• uij serán los valores de la función u(x,y) en xi e yj


uij = u(xi,yj)
y
j +1
(i,j)
j
∆y
j -1
∆x
x
i -1 i i +1
Ecuaciones
multidimensionales
• Derivada primera respecto a x de primer orden:
ui +1, j − uij
(u x ) ij = + 0(∆x)
∆x
• Derivada primera respecto a y de primer orden:
ui , j +1 − uij
(u y ) ij = + 0(∆y )
∆y
• Derivada segunda respecto a x de segundo orden:
ui +1, j − 2uij + ui −1, j
(u xx ) ij = + 0(∆x 2 )
∆x 2
Ecuaciones
multidimensionales
• Esquema en diferencias finitas para el operador de
Laplace en 2D:
∆u = u xx + u yy
• Aplicando diferencias centradas de segundo orden
en ambas direcciones obtenemos:
ui +1, j − 2uij + ui −1, j ui , j +1 − 2uij + ui , j −1
∆uij = + + 0(∆x 2 , ∆y 2 )
∆x 2 ∆y 2
1

• Y si ∆x = ∆y: 1 -4 1
j
ui +1, j + ui −1, j + ui , j +1 + ui , j −1 − 4uij
∆uij = 1
∆x 2

También podría gustarte