Introducción a la simulación de...
Transcript of Introducción a la simulación de...
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
• 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.
Mecánica computacional de fluidos
(a) Irregular mesh
(b) Structured mesh
• 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, …
Mecánica computacional de fluidos
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:
• 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
xxuxxu
xuu
xx ∆−∆+
=
∂∂
≡→∆
)()(lim0
Diferencias finitas
• Desarrollo de Taylor:
• Reordenando los términos:
• 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:
...)(2
)()()(2
+∆
+∆+=∆+ xuxxuxxuxxu xxx
...)(2
)()()(+
∆+=
∆−∆+ xuxxu
xxuxxu
xxx
)(0)()()( xxux
xuxxux ∆+=
∆−∆+
Diferencias finitas
• Desarrollo de Taylor:
• Reordenando los términos:
• 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:
...)(2
)()()(2
−∆
+∆−=∆− xuxxuxxuxxu xxx
...)(2
)()()(+
∆+=
∆∆−− xuxxu
xxxuxu
xxx
)(0)()()( xxux
xxuxux ∆+=
∆∆−−
Diferencias finitas
• Desarrollo de Taylor:
• Restamos la segunda expresión a la primera y reordenamos:
• Esta aproximación es de segundo orden en ∆x, y se denomina diferencia centrada
)(0)(2
211 xxuxuu
xii ∆+=
∆− −+
...)(6
)(2
)(
...)(6
)(2
)(
32
1
32
1
+∆
−∆
+∆−=
+∆
+∆
+∆+=
−
+
ixxxixxixii
ixxxixxixii
uxuxuxuu
uxuxuxuu
Diferencias finitas
• Interpretación gráfica:
centradaDiferenciaxxuu
xuu
atráshaciaDiferenciaxxuu
xuu
delantehaciaDiferenciaxx
uuxuu
ii
xxix
ii
xxix
ii
xxix
i
i
i
)(02
)(
)(0)(
)(0)(
211
1
1
∆+∆−
=
∂∂
=
∆+∆−
=
∂∂
=
∆+∆−
=
∂∂
=
−+
=
−
=
+
=
ui −1
ui ui +1
∆x ∆x
i −1 i i +1
y = u(x)
Diferencia centrada
Diferencia hacia atrás
Diferencia hacia delante
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):
• Veamos algunos esquemas numéricos para tratar esta ecuación
0=∂∂
+∂∂
xua
tu
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
)( 1
1ni
ni
ni
ni uu
xa
tuu
−
+
−−=−
∆∆
)( 11 n
ini
ni
ni uu
xtauu −
+ −∆∆
−=C =Número de Courant
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)
10 ≤< C
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
)(2
)(2 11
111
1ni
ni
ni
ni
ni
ni
ni
ni uuCuuuu
xa
tuu
−++
−+
+
−−=⇒−∆
−=∆−
incondicionalmente inestable
Ecuación de convección
• También métodos implícitos p.ej.:
• 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
01
111
=∆−
+∆− +
−++
xuua
tuu n
ini
ni
ni
Ecuación de convección
Ecuación de convección
Ecuación de convección
Diferencias finitas para la derivada segunda
• Desarrollo de Taylor:
• Sumamos ambos desarrollos y reordenamos:
• 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.
)(0)(2 22
11 xxux
uuuxx
iii ∆+=∆
+− −+
...)(6
)(2
)(
...)(6
)(2
)(
32
1
32
1
+∆
−∆
+∆−=
+∆
+∆
+∆+=
−
+
ixxxixxixii
ixxxixxixii
uxuxuxuu
uxuxuxuu
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):
xuk
tu
2
2
∂∂
=∂∂
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
211
1 2x
uuuDt
uu ni
ni
ni
ni
ni
∆+−
=∆− −+
+
)2( 1121 n
ini
ni
ni
ni uuu
xtDuu −+
+ +−∆∆
+=
D* 21*0 ≤≤ D
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)
∆x
∆y
x
y
i i +1 i -1
j -1
j +1
j (i,j)
Ecuaciones multidimensionales
• Derivada primera respecto a x de primer orden:
• Derivada primera respecto a y de primer orden:
• Derivada segunda respecto a x de segundo orden:
)(0)( ,1 xx
uuu ijji
ijx ∆∆
+−
= +
)(0)( 1, yy
uuu ijji
ijy ∆∆
+−
= +
)(02
)( 22
,1,1 xx
uuuu jiijji
ijxx ∆∆
++−
= −+
Ecuaciones multidimensionales
21,1,,1,1 4
xuuuuu
u ijjijijijiij ∆
−+++=∆ −+−+
i
j
1
1
1 1 -4
• Esquema en diferencias finitas para el operador de Laplace en 2D:
• Aplicando diferencias centradas de segundo orden en ambas direcciones obtenemos:
• Y si ∆x = ∆y:
yyxx uuu +=∆
),(022 22
21,1,
2,1,1 yx
yuuu
xuuu
u jiijjijiijjiij ∆∆+
∆
+−+
∆
+−=∆ −+−+