Dinámica de fluidos y ecuaciones de Navier-Stokes
La simulación resuelve en la GPU las ecuaciones diferenciales de Navier-Stokes para fluidos viscosos incompresibles. Cada interacción calcula advección semi-Lagrangiana, relajación de presión de Jacobi y confinamiento de vorticidad para preservar los remolinos y la turbulencia fina.
Guía de dinámica computacional de fluidos, ecuaciones de Navier-Stokes y vórtices
Aprende los fundamentos matemáticos de la mecánica de fluidos incompresibles en tiempo real, la advección semi-Lagrangiana, la conservación de divergencia cero y la GPU acelerada con WebGL a 60 FPS.
Formulación matemática de Navier-Stokes para fluidos incompresibles
El movimiento de cualquier fluido continuo (líquidos y gases a velocidades subsónicas) está regido por las ecuaciones de Navier-Stokes, formuladas a partir de la segunda ley de Newton aplicada a medios continuos:
∂u / ∂t + (u · ∇)u = -∇p / ρ + ν∇²u + f
Donde u representa el campo vectorial de velocidades, p es el campo escalar de presión, ρ es la densidad volumétrica y ν es la viscosidad cinemática. Para garantizar que el fluido sea incompresible (volumen constante), el campo debe satisfacer la condición de solenoidalidad o divergencia nula: ∇ · u = 0.
Tabla de regímenes hidrodinámicos y parámetros de simulación
| Tipo de medio / Preset | Viscosidad cinemática (ν) | Tasa de disipación | Confinamiento de vorticidad | Régimen hidrodinámico dominante |
|---|---|---|---|---|
| Gas ligero / Humo | Muy baja (0,0001) | Rápida (volátil) | Alta (remolinos pronunciados) | Turbulento con microvórtices libres (Re > 4.000) |
| Agua con tinte | Baja (0,001) | Moderada | Media (conservativa) | Transicional con difusión continua de ondas |
| Fluido viscoso (Miel / Aceite) | Alta (0,05) | Lenta | Mínima (amortiguada) | Laminar con amortiguación rápida de perturbaciones |
| Plasma de neón bioluminiscente | Media-baja (0,0005) | Muy lenta (luminosa) | Máxima (filamentos finos) | Vórtices sostenidos con resplandor postprocesado |
El algoritmo de proyección de Stam y la relajación de Jacobi
Para resolver estas ecuaciones a 60 fotogramas por segundo en la tarjeta gráfica, se emplea el método de pasos fraccionados introducido por Jos Stam:
- Advección semi-Lagrangiana: Rastrea hacia atrás en el tiempo dónde se encontraba la masa fluida en el fotograma anterior y muestrea bilinealmente las texturas FBO en GPU.
- Difusión de viscosidad: Aplica el operador laplaciano mediante iteraciones sucesivas de Jacobi para extender la fricción entre capas fluidas.
- Proyección de presión libre de divergencia: Resuelve la ecuación de Poisson para restar el gradiente de presión al campo de velocidad, forzando la incompresibilidad estricta.
Cómo simular dinámica de fluidos y vórtices Navier-Stokes en WebGL
Seleccionar la paleta cromática de neón
Escoge una gama de color (ciberpunk, aurora boreal, fuego cósmico o neón ultravioleta) para teñir las corrientes hidrodinámicas.
Trazar corrientes y remolinos con el puntero
Arrastra el ratón o desliza los dedos sobre el lienzo para inyectar vectores de momento y tinta fluida a 60 FPS.
Regular la viscosidad y el confinamiento de vórtices
Ajusta los parámetros físicos en el panel de control para simular fluidos ligeros como el humo o medios altamente densos como la miel.
Capturar o inmortalizar la simulación
Usa la herramienta de captura fotográfica para guardar composiciones con iluminación bloom de alta definición.
Preguntas frecuentes sobre fluidos y vórtices en WebGL
¿Qué son las ecuaciones de Navier-Stokes y cómo se resuelven en la GPU?
Son las ecuaciones fundamentales de la mecánica de fluidos que describen la conservación del momento y la masa en fluidos viscosos incompresibles. En el navegador se resuelven mediante shaders WebGL fragmentados que calculan advección semi-Lagrangiana y relajación de presión de Jacobi a 60 fotogramas por segundo.
¿Qué diferencia la advección del fluido de la difusión de viscosidad?
La advección es el transporte de la masa de fluido y sus tintes debido a su propia velocidad. La difusión representa la fricción interna entre capas de fluido (viscosidad), que disipa gradualmente la energía cinética hasta devolver el fluido al reposo.
¿Cómo logra WebGL renderizar fluidos en tiempo real a 60 FPS?
A través de texturas FBO (Frame Buffer Objects) en una arquitectura ping-pong de doble búfer, ejecutando los cálculos matemáticos en paralelo directamente en los núcleos de la tarjeta gráfica en vez de saturar la CPU.
¿Qué es el confinamiento de vorticidad y para qué sirve?
Debido a la disipación numérica propia de las cuadrículas discretas, los pequeños remolinos tienden a desaparecer rápidamente. El algoritmo de confinamiento de vorticidad detecta los rizos de velocidad y reinyecta energía rotacional para mantener los vórtices nítidos y detallados.
¿Funciona con pantallas táctiles y multitoque?
Sí. El simulador soporta eventos Pointer y Touch nativos, permitiendo interactuar con hasta 5 dedos de forma simultánea para crear colisiones de corrientes y turbulencias cruzadas.