Fluidos con superficie libre (líquidos) Animación Avanzada Iván Alduán Íñiguez 10 de Abril de 2014 Índice • Superficie libre • Método de las partículas marcadoras • Level sets • Métodos híbridos PIC/FLIP Superficie libre • Cuando vemos el comportamiento de un líquido en realidad lo que estamos viendo es el resultado de la interacción de dos fluidos con propiedades muy diferentes. • A esto se le llama fluidos multifase y es más complicado de simular que un fluido de una sola fase. Superficie libre • El caso más común es aire y agua: El aire alrededor de un líquido tiene una densidad mucho menor que la del líquido y por ello apenas perturba su movimiento. • En la mayoría de casos nos será suficiente simplemente con modelar el fluido más denso como un fluido de una sóla fase. • En estos casos hablamos de modelar un fluido o líquido con superficie libre. • ¿Posibles limitaciones? Superficie libre • Tarea adicional respecto a lo que ya vimos: - Debemos de ser capaces de distinguir las celdas ocupadas por el fluido principal y las celdas que son aire. - Una vez las tengamos será suficiente con simular únicamente las celdas en las que el fluido principal esté presente, y aplicar las condiciones de contorno pertinentes en la superficie libre que separa el líquido del aire. Superficie libre Simulación de líquidos mediante Level set Simulación de líquidos mediante Particle in cell methods PIC/FLIP Método de las partículas marcadoras • Artículo: Realistic animation of liquids [Foster 1996] • Idea intuitiva: - Necesitamos saber dónde se encuentra nuestro líquido principal dentro de la rejilla: Llenamos nuestro líquido con partículas tontas que nos indiquen la presencia del líquido en las celdillas. Método de las partículas marcadoras • Se definen tres tipos de celda: Celdas de aire: sin marcadores Celdas de superficie: con marcadores y celdas de aire vecinas Celdas de fluido: con marcadores y sin celdas de aire vecinas • Se mueven los marcadores interpolando las velocidades del fluido en rejilla calculadas. • Se resuelve la ecuación de Poisson para la presión sólo en las celdas de fluido. - La presión en las celdas de superficie se hace 0. - Se fuerza divergencia de velocidad cero en las celdas de superficie. Método level set • Artículo: Practical animation of liquids [Foster 2001] Animation and rendering of complex water surfaces [Enright 2002] • Idea intuitiva: El fluido es una superficie arbitraria que se desplaza en el tiempo. Utilizar toda la literatura ya existente para el tracking de superficies implícitas - Level set methods Método level set • Campo de distancias con signo: - Cada punto de la rejilla indica la distancia mínima a la superficie que queremos representar - El signo indica en que lado de la superficie nos encontramos Método level set • En 1988 Osher y Sethian introducen una manera conveniente de representar multiples fluidos de una manera puramente Euleriana (sólo rejilla). • Llamamos φ a un campo de distancias con signo. • La superficie del fluido es definida mediante la isosuperficie φ = 0 del campo escalar φ . • La convención es utilizar el signo negativo φ ≤ 0 para representar el volumen dentro del fluido y el signo positivo φ > 0 para el dominio exterior. Método level set • Para hacer el tracking del fluido tratamos esta propiedad escalar como cualquier otra propiedad del fluido. La ecuación de advección para φ es: ∂φ + (v ⋅ ∇)φ = 0 ∂t • La normal de la superficie del fluido la podemos calcular fácilmente mediante esta representación: n̂ = ∇φ ∇φ Método level set • Para realizar la advección de φ necesitaremos conocer valores del campo de velocidades fuera del dominio del líquido. • Será necesario extrapolar los valores del campo de velocidades unas celdas más allá del dominio del fluido, utilizando los valores ya conocidos. ∇vext ⋅ ∇φ = 0 • Algoritmos: - Fast marching methods - Fast sweeping methods Método level set • Al realizar la advección φ pierde su propiedad de campo de distancias con signo. • Será necesario renormalizar los valores del campo de distancias cada cierto tiempo sin modificar la posición de la superficie φ = 0 . ∇φ = 1 • Algoritmos: - Fast marching methods - Fast sweeping methods Método level set • Ventajas: - Método puramente euleriano para realizar el tracking. - Resolución automática de cambios topológicos. - El mallado del fluido es instantáneo ya que ya tenemos la superficie implícita necesaria como entrada para algoritmos como marching cubes. • Desventajas: - Cualquier error en nuestro método de advección nos genera disipación, esto se convierte en el caso de φ en pérdida de features y volumen del fluido. - Necesarios algoritmos de quinto orden para realizar un tracking aceptable. Método Hybrid level set • Al hacer el tracking del fluido mediante un método puramente euleriano los errores en la advección hacen que el fluido pierda features características. • Vamos a mejorar el tracking del fluido utilizando partículas alrededor de la superficie φ = 0 que nos ayuden a corregir los errores de la advección. Método Hybrid level set • Sampleamos partículas con su radio a la superficie en una pequeña banda alrededor de φ = 0 . • Adveccionamos el campo de distancias. • Integramos las partículas en el tiempo con el campo de velocidades (p.ej. RK2). • La función de las partículas es detectar imprecisiones en el tracking del levelset: si una partícula se escapa de su lado correcto utilizamos su radio para corregir el levelset. Método Hybrid level set • Vídeo: [Enright 2002] Métodos particle in cell PIC/FLIP • Artículo: Animating sand as a fluid [Zhu 2005] • Idea intuitiva: - Vamos a utilizar partículas para determinar dónde está nuestro líquido, pero ya que tenemos partículas vamos a aprovechar que las partículas no disipan la información contenida en ellas cuando se mueven por el espacio para transportar las propiedades del fluido. - Nuestras partículas ya no van a ser tan tontas. Métodos particle in cell PIC/FLIP • El método particle in cell (PIC) es un método ideado por Harlow en 1963. • Fue una primera aproximación que intentaba realizar la advección mediante partículas pero todos los demás pasos en rejilla. • Pasos: - 1. Interpolación de particulas a rejilla - 2. Cálculos en rejilla - 3. Interpolación de rejilla a partículas - 4. Integración de las partículas Métodos particle in cell PIC/FLIP • Ejemplo con velocidades: - 1. Las velocidades en los puntos de la rejilla son inicializadas como una media ponderada de las partículas próximas a cada punto. - 2. Realizamos los cálculos en rejilla excepto advección y obtenemos la velocidad en t+1. - 3. Interpolamos las nuevas velocidades en rejilla a cada una de las partículas. - 4. Integramos la posición de las partículas en el tiempo utilizando las velocidades de la rejilla. - Ojo! No integramos las partículas con su propia velocidad como en SPH. Métodos particle in cell PIC/FLIP • El problema del método PIC es la excesiva disipación que sufre el fluido debido a las repetidas interpolaciones de las propiedades del fluido. • En 1986 Brackbill mejoró el algoritmo original mediante el método Fluid-Implicit-Particle (FLIP). • Este método consigue una ausencia casi total de disipación y la habilidad de representar grandes variaciones en las propiedades del fluido. “El cambio crucial fue hacer las partículas la representación fundamental del fluido, y usar la rejilla auxiliar únicamente para incrementar los valores en las partículas de acuerdo con los cambios calculados en el grid” Métodos particle in cell PIC/FLIP - 1. Las velocidades en los puntos de la rejilla son inicializadas como una media ponderada de las partículas próximas a cada punto. - 2. Guardamos una copia de las velocidades - 3. Realizamos los cálculos en rejilla excepto advección como hemos hecho en PIC. - 4. Calculamos la diferencia entre las nuevas velocidades y las velocidades que nos habíamos guardado. - 5. Para cada partícula interpolamos la diferencia calculada en rejilla y modificamos las velocidades restándoles dicha diferencia. - 6. Integramos la posición de las partículas utilizando el campo de velocidades en rejilla. Métodos particle in cell PIC/FLIP Video: [Zhu 2005] Métodos particle in cell PIC/FLIP • Ventajas: Con FLIP tenemos lo mejor de ambos mundos: - Las partículas nos ayudan a conservar la información sin sufrir apenas disipación. - La rejilla nos ayuda a resolver las fuerzas en el fluido de manera más exacta y eficiente que únicamente a partir de partículas. • Inconvenientes: - Al necesitar partículas y rejilla es un método bastante intensivo en el uso de memoria. Métodos particle in cell PIC/FLIP (Multifase) Video: [Boyd 2011]