InicioDinámica de fluidos y aerodinámicaFluid Lattice-Boltzmann

💨 Fluid Lattice-Boltzmann

Simula el flujo de fluidos en 2D usando el método de Lattice-Boltzmann (LBM D2Q9). Observa el flujo alrededor de obstáculos, calles de vórtices de Kármán y el flujo en tuberías desarrollarse a partir de pasos microscópicos de colisión-propagación en una cuadrícula regular.

Dinámica de fluidos y aerodinámica3DModerado60 FPS
fluid-lattice-boltzmann ↗ Abrir independiente

Acerca del método de Lattice-Boltzmann

De lo microscópico a lo macroscópico

A diferencia de los solucionadores tradicionales de Navier-Stokes, el LBM simula el fluido como una cuadrícula de partículas que se propagan y colisionan. Cada celda contiene 9 funciones de distribución f_i que representan poblaciones de partículas moviéndose en cada una de las direcciones D2Q9. Tras la colisión (relajación hacia el equilibrio) y la propagación (desplazando f_i a las celdas vecinas), la densidad macroscópica ρ = Σf_i y la velocidad u = Σf_i·c_i/ρ surgen de forma natural.

Calle de vórtices de Kármán

Con números de Reynolds entre 40 y unos cientos, el flujo alrededor de un cilindro se vuelve inestable. Los vórtices se desprenden alternadamente de cada lado del obstáculo, formando un patrón regular conocido como la calle de vórtices de Kármán. La frecuencia de desprendimiento f, el diámetro del cilindro D y la velocidad del flujo U están relacionados por el número de Strouhal St = f·D/U ≈ 0.21 en Re=100. Este fenómeno sacudió el puente de Tacoma Narrows hasta su destrucción en 1940.

Número de Reynolds

El número de Reynolds Re = U·L/ν (fuerzas inerciales / viscosas) determina el carácter del flujo: Re < 5 da un flujo reptante suave con recirculación simétrica; Re ~ 40–200 produce la calle de vórtices de Kármán periódica; Re > 1000 lleva a estelas turbulentas y caóticas. En el LBM, la viscosidad se relaciona con el tiempo de relajación τ = 3ν + 0.5, y la estabilidad requiere τ > 0.5.

Acerca de esta simulación

Esta simulación ejecuta un solucionador real de fluidos con el método de Lattice-Boltzmann (LBM) directamente en una cuadrícula D2Q9 de 160×80: cada celda almacena nueve funciones de distribución de partículas discretas fi, una para cada dirección de la malla, que se relajan hacia el equilibrio local (colisión BGK, tiempo de relajación τ = 3ν + 0.5) y luego se propagan a las celdas vecinas en cada paso. La densidad macroscópica ρ = Σfi y la velocidad u = Σfici/ρ surgen de estas actualizaciones microscópicas en lugar de resolverse directamente, que es lo que hace que el LBM sea fundamentalmente diferente de un solucionador clásico de Navier–Stokes. Un obstáculo circular (o, en el modo de flujo en tubería, dos paredes paralelas) aplica condiciones de contorno de rebote sin deslizamiento, y una entrada de velocidad fija a la izquierda más una salida abierta a la derecha impulsan el flujo.

🔬 Qué muestra

El flujo alrededor de un obstáculo cilíndrico (o a través de una tubería) calculado celda por celda con el esquema de red de Boltzmann D2Q9. Dependiendo de la viscosidad ν y la velocidad de entrada, la estela permanece suave y simétrica (Re bajo), se desprende en una calle de vórtices de Kármán alternante (Re ≈ 40–200), o se vuelve caótica y turbulenta (Re > ~500). Puedes cambiar la visualización entre velocidad, un campo de vorticidad aproximado y densidad/presión.

🎮 Cómo usarlo

Elige un ajuste preestablecido — Reptante (Re=5), Kármán (Re=100), Turbulento (Re=500) o Flujo en tubería — o ajusta tú mismo la viscosidad ν, la velocidad de entrada y el tamaño del obstáculo con los deslizadores. Haz clic en cualquier parte del lienzo para mover el cilindro y observa cómo la estela se reorganiza en tiempo real. Cambia las pestañas de visualización (Velocidad / Vorticidad / Presión) para ver diferentes campos, y lee el número de Reynolds, el coeficiente de arrastre y el número de Strouhal en vivo en el panel de estadísticas de flujo.

💡 ¿Sabías que…?

El desprendimiento alternante de vórtices que puedes provocar aquí en Re ≈ 100 es el mismo fenómeno de la calle de vórtices de Kármán que sacudió el puente de Tacoma Narrows hasta desmoronarlo en 1940. El propio LBM surgió de los autómatas celulares de gas reticular en la década de 1980 y ahora se usa en código real de CFD de ingeniería porque sus actualizaciones locales basadas en cuadrícula se paralelizan extremadamente bien en las GPU.

Preguntas frecuentes

¿Qué es el método de Lattice-Boltzmann y en qué se diferencia de los solucionadores de Navier-Stokes?

El LBM discretiza el espacio en una malla (aquí de 160×80 celdas) y sigue nueve funciones de distribución de partículas por celda en lugar de resolver directamente las ecuaciones de Navier-Stokes para la presión y la velocidad. Cada paso de la simulación alterna una colisión local (relajando f_i hacia su valor de equilibrio f_i^eq durante un tiempo de relajación τ) con un paso de propagación que desplaza cada f_i a la celda vecina en su dirección de la malla. La densidad y la velocidad simplemente se calculan como momentos de las funciones de distribución. Esta regla de actualización local y explícita hace que el LBM sea fácil de paralelizar, a diferencia de los solucionadores tradicionales de Navier-Stokes basados en la ecuación de Poisson para la presión.

¿Qué significa el modelo de malla D2Q9?

D2Q9 significa una malla bidimensional con 9 direcciones de velocidad discretas por celda: una dirección de reposo, cuatro vecinos alineados con los ejes y cuatro vecinos diagonales, cada uno con su propio peso de malla (4/9, 1/9 o 1/36). Este es el esquema estándar y mínimo para la simulación de flujo casi incompresible en 2D, y es exactamente lo que implementa esta simulación con los arreglos CX/CY/W en el código.

¿Cómo se relacionan los deslizadores de Viscosidad y Velocidad de entrada con el número de Reynolds?

La simulación calcula el número de Reynolds como Re = U·L/ν, donde U es la velocidad de entrada, L es el diámetro del obstáculo (el doble del valor del deslizador de tamaño del obstáculo), y ν es el valor del deslizador de Viscosidad, que también establece el tiempo de relajación del LBM τ = 3ν + 0.5. Al reducir la viscosidad o aumentar la velocidad de entrada se incrementa Re y se empuja el flujo desde un movimiento reptante suave hacia el desprendimiento de vórtices y finalmente la turbulencia; los cuatro ajustes preestablecidos son solo combinaciones preajustadas de estos dos deslizadores.

¿Por qué se forma una calle de vórtices de Kármán detrás del obstáculo?

Una vez que Re supera aproximadamente 40, la estela simétrica detrás del cilindro se vuelve inestable frente a pequeñas perturbaciones, y los vórtices comienzan a desprenderse alternadamente desde la parte superior e inferior del obstáculo en lugar de permanecer adheridos. Este desprendimiento periódico es la calle de vórtices de Kármán, y su frecuencia f obedece la relación de Strouhal St = f·D/U ≈ 0.21 cerca de Re = 100, que es el valor constante que la simulación reporta en el panel de estadísticas de flujo.

¿Qué muestran realmente los modos de visualización de Velocidad, Vorticidad y Presión?

Velocidad colorea cada celda según la magnitud de su vector de velocidad local, calculado a partir del primer momento de velocidad de las funciones de distribución. Vorticidad aproxima el rotacional local del campo de velocidad usando diferencias finitas entre el momento de celdas vecinas, resaltando en rojo/azul los núcleos giratorios de los vórtices desprendidos. El modo Presión/densidad colorea las celdas según ρ = Σf_i, que en este esquema LBM casi incompresible es proporcional a la presión local a través de una ecuación de estado similar a la de un gas ideal.

⚙ Bajo el capó

Método de Lattice Boltzmann (D2Q9) que simula la calle de vórtices de Kármán y la dinámica de fluidos computacional.

Lattice BoltzmannLBMD2Q9vórtice de Kármándinámica de fluidos computacional

3D · Renderizador Three.js / WebGL · Objetivo de 60 FPS · funciona completamente en el navegador, sin instalación

¿Qué encontraste?

Añadir pasos de reproducción (opcional)