Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i...

33
Smoothed Particle Hydrodynamics Animación Avanzada Iván Alduán Íñiguez 03 de Abril de 2014

Transcript of Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i...

Page 1: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Smoothed Particle Hydrodynamics

Animación Avanzada

Iván Alduán Íñiguez

03 de Abril de 2014

Page 2: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Índice

• Métodos sin malla • Smoothed particle hydrodynamics • Aplicación del método en fluidos • Búsqueda de vecinos

Page 3: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Métodos sin malla

• Queremos aproximar una función en el continuo a partir de elementos discretos.

• Sólo disponemos de información en una serie de puntos cercanos, no existe conectividad.

1D 2D, 3D

Page 4: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Métodos sin malla

• Ventajas: - Conservación de la masa automática. - Apenas sufren disipación. - Métodos robustos ante cambios topológicos. - Fáciles de implementar en GPU.

• Desventajas: - Nos va a ser muy difícil calcular derivadas con la

misma exactitud que en los métodos con malla. - Requieren un paso de tiempo más pequeño. - Problemas en los contornos.

Page 5: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Métodos sin malla

Simulación de fluidos mediante Smoothed Particle

Hydrodynamics (SPH)

Simulación de sólidos elásticos mediante Moving Least

Squares (MLS)

Page 6: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Smoothed particle hydrodynamics

• Representación integral de una función escalar:

• Función Delta de Dirac:

∫ −= dyyxyfxf )()()( δ

1)( =∫ dyyδ

yxyx

x≠=

=,0,

)(δ

Page 7: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Remplazamos la función Delta de Dirac por una función suavizada W:

• A esta función la llamaremos kernel. • Esta función W queremos que cumpla ciertas

propiedades para asegurarnos que nos da una buena aproximación de la función original.

Smoothed particle hydrodynamics

Kernel ∫ −≈ dyhyxwyfxf )/()()(

Page 8: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Propiedades deseadas para W:

- Dominio compacto:

- En el límite corresponderse con la Delta de Dirac

- Su integral debe de ser 1

- Debe de ser una función suavizada que nos permita calcular sus derivadas y simétrica

Smoothed particle hydrodynamics

1)/( =−∫ dyhyxw

)()/(lim yxhyxwoh

−=−→

δ

1/0)/( >−=− hyxhyxw

Page 9: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Ejemplo: kernel gausiano

Smoothed particle hydrodynamics

2

2

1)/( hr

gauss ehrW−

Page 10: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Aproximamos la integral mediante el sumatorio en una serie de puntos conocidos

Smoothed particle hydrodynamics

∫ −≈ dyhyxwyfxf )/()()(

∑=

−≈n

iiii Vhxxwfxf

1)/()(

∑=

−≈n

iii

i

i hxxwfmxf1

)/()(ρ

Page 11: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Smoothed particle hydrodynamics

∑=

−≈n

iii

i

i hxxwfmxf1

)/()(ρ

Page 12: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Derivadas:

Smoothed particle hydrodynamics

∫ −≈ dyhyxwyfxf )/()()(

∫ −∇≈∇ dyhyxwyfxf )/()()(

∫ −∇≈∇ dyhyxwyfxf )/()()(

∑=

−∇≈∇n

iii

i

i hxxwfmxf1

)/()(ρ

Page 13: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Ejemplo:

• Tenemos el siguiente kernel:

• Calculando la derivada del kernel: - Ojo! Es una derivada en coordenadas esféricas

Smoothed particle hydrodynamics

Page 14: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Al igual que para el calculo de una propiedad en el espacio, el calculo de las derivadas es simplemente una suma ponderada.

• Sólo necesitamos ser capaces de diferenciar W

• Problema: esta formulación es muy sensible a la distribución de las partículas y una función constante puede darnos una derivada no 0

Smoothed particle hydrodynamics

∑=

−∇≈∇n

iii

i

i hxxwfmxf1

)/()(ρ

Page 15: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Formulaciones alternativas para el gradiente:

• Estas formulaciones son mejores ya que aseguran la simetría del gradiente

- En fuerzas: cumplimos la tercera ley de Newton

Smoothed particle hydrodynamics

Page 16: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Otros operadores diferenciales en SPH:

- Divergencia:

- Laplacian:

Smoothed particle hydrodynamics

Page 17: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Conservación de la masa:

• Cada partícula tiene una masa predefinida, si no añadimos ni borramos partículas:

- La masa del fluido se conserva automáticamente!

• Conservar la masa no es lo mismo que conservar el volumen:

- Debido a que SPH modela un fluido compresible si las fuerzas de interacción entre partículas no son suficientes nuestro fluido perderá volumen

Simulación de fluidos SPH

Page 18: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Conservación del momento:

• En una formulación lagrangiana nos interesa la evolución en el tiempo de un elemento de fluido que se mueve a través del espacio.

- El término convectivo no nos interesa ya que serán las propias partículas las que se transporten por el continuo al ser integradas en el tiempo

- A esto se le llama derivada total o derivada material:

Simulación de fluidos SPH

Page 19: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Estimación de densidad:

• Fuerzas de presión:

• Fuerzas viscosas:

Simulación de fluidos SPH

Page 20: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Podemos hacerlo mejor y usar una discretización SPH simétrica como hemos visto antes:

- Esta formulación cumple la tercera ley de Newton y conserva mejor el momento.

• Formulación simétrica para viscosidad:

Simulación de fluidos SPH

Page 21: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Para poder calcular las fuerzas de presión necesitamos conocer el valor de las presiones en cada partícula.

• Intuitivamente queremos que la fuerza de presión mantenga la densidad nominal del fluido evitando estiramientos o compresiones.

• Por lo tanto vamos a definir el valor de nuestras presiones mediante una función dependiente de la densidad de la partícula y de la densidad nominal

• A esto lo llamamos: Ecuación de estado

Simulación de fluidos SPH (ecuación de estado)

Page 22: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Ecuación de estado proveniente de la ecuación de gases ideales:

• Ecuación de estado más rígida conforme al comportamiento incompresible que se espera de un líquido, Tait equation:

Simulación de fluidos SPH (ecuación de estado)

Page 23: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Vídeo: [Becker 2007]

Simulación de fluidos SPH (ecuación de estado)

Page 24: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• La evaluación del kernel gausiano es costosa por lo que vamos a utilizar otras funciones de similar forma:

- Para la densidad con la constante de normalización para 3D (no requiere el calculo de raiz cuadrada):

- ¿Qué pasa si queremos utilizar el mismo kernel para presiones o viscosidad?

Simulación de fluidos SPH (kernels)

Page 25: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Si nos fijamos en la forma de la derivada primera

esta se hace cero para partículas muy próximas, esto significa que la repulsión entre partículas se anula si te acercas al centro. MAL !!!!

• Si nos fijamos en la forma de la derivada segunda del kernel la función cruza varias veces el valor 0 con intervalos positivos y negativos. MAL !!!!

Simulación de fluidos SPH (kernels)

Page 26: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Para el gradiente de presión (3D):

• Para el laplacian en la viscosidad (3D):

Simulación de fluidos SPH (kernels)

Page 27: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Problema con la formulación SPH: Deficiencia de partículas en los bordes, por ejemplo en el calculo de densidad nos darán una estimación incorrecta:

• Solución: ghost particles

real particles

ghost particles

Simulación de fluidos SPH (boundaries)

Page 28: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Aproximación de un sólido con ghost particles:

• Diferencia entre usar o no usar ghost particles en el contacto con sólidos:

Simulación de fluidos SPH (boundaries)

Page 29: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Los mismos problemas tendremos en la superficie libre del fluido:

• Solución: ghost air particles:

Simulación de fluidos SPH (boundaries)

Page 30: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Vídeo: [Schechter 2012]

Simulación de fluidos SPH (boundaries)

Page 31: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

• Para cada partícula tenemos que aproximar una serie de integrales que dependen de los valores en las partículas vecinas.

• Podríamos recorrer por cada partícula todas las demás y utilizar sólo los vecinos dentro del rango:

- Esto tiene coste !!! • La clave de una implementación SPH eficiente está

en cómo realizamos las búsquedas de vecinos, para ello necesitamos estructuras de datos que nos rebajen el coste .

Simulación de fluidos SPH (búsqueda de vecinos)

)( 2nO

)( 2nO

Page 32: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Simulación de fluidos SPH (búsqueda de vecinos)

Spatial hashing

- Adaptatividad limitada - Muy eficiente

Kd-Trees

Mayor flexibilidad

Más costoso de construir y mantener

Page 33: Smoothed Particle Hydrodynamics...Smoothed particle hydrodynamics ∑ = ∇ ≈ ∇ − n i i i i i f w x x h m f x 1 ( ) ( / ) ρ • alternativas para el gradiente: • Estas formulaciones

Simulación de fluidos SPH (búsqueda de vecinos)

Spatial hashing:

- Construcción: O(n) - Consulta: O(kρ) siendo ρ la media de puntos por celda - El tamaño de la tabla hash y del tamaño de celda deben

de ser debidamente elegidos - No es eficiente para sampleados irregulares.

kd-Trees:

- Construcción: O(n log n) - Consulta: O(k log n) para la consulta de k puntos - Puede manejar sampleados irregulares y diferentes

dominios de consulta.