💧 Echtzeit-Fluidsimulation — Navier-Stokes-Löser
Interaktive 2D-Fluidsimulation mit Jos Stams stabilem Navier-Stokes-Löser. Zeichnen Sie mit der Maus Geschwindigkeit ein, probieren Sie Wirbel- und Scherpresets aus und beobachten Sie, wie Dichtefelder in Echtzeit diffundieren und advehiert werden.
Über diese Simulation
Diese Simulation löst die inkompressiblen Navier-Stokes-Gleichungen auf einem 100×100-Gitter, um zu modellieren, wie sich ein 2D-Fluid bewegt und wie darin transportierter Farbstoff sich ausbreitet. Sie verwendet Jos Stams bedingungslos stabiles Verfahren: Jeder Frame fügt Kräfte hinzu, diffundiert Geschwindigkeit und Dichte mit einem impliziten Gauß-Seidel-Löser, advehiert Größen durch Rückverfolgung der Bahnlinien in der Zeit (semi-Lagrange) und projiziert dann das Geschwindigkeitsfeld, um die Divergenz zu entfernen (∇·u = 0).
🔬 Was gezeigt wird
Das Fluid wird als Dichtefeld (Farbstoff), Geschwindigkeitsfeld nach Richtung eingefärbt oder beides kombiniert dargestellt. Beim Ziehen auf der Zeichenfläche fügen Sie Impuls und Farbstoff hinzu, und der Löser advehiert und diffundiert sie Frame für Frame, sodass Wirbel, Fahnen und Scherschichten entstehen.
🎮 Bedienung
Ziehen Sie über die Zeichenfläche, um Geschwindigkeit und Farbstoff einzubringen. Der Viskositäts-Regler bestimmt, wie stark sich der Impuls glättet, Diffusion steuert die Ausbreitung des Farbstoffs, und Fade lässt die Dichte jeden Frame abklingen. Die Schaltflächen Density/Velocity/Both wechseln die Ansicht, und die Presets Vortex, Shear und Plume erzeugen klassische Strömungsmuster.
💡 Wussten Sie schon?
Solche stabilen Löser treiben Rauch-, Wasser- und Feuereffekte in Videospielen und Filmvisuals an, wo Geschwindigkeit und Stabilität wichtiger sind als exakte Physik.
Häufig gestellte Fragen
Was zeigt diese Simulation eigentlich?
Sie zeigt ein 2D-inkompressibles Fluid in Bewegung, dargestellt entweder als farbiges Farbstoff-(Dichte-)Feld, als nach Richtung eingefärbtes Geschwindigkeitsfeld oder als Kombination aus beidem. Wenn Sie auf der Zeichenfläche ziehen, fügen Sie Impuls und Farbstoff hinzu, und der Löser advehiert und diffundiert sie Frame für Frame, sodass Wirbel, Fahnen und Scherschichten entstehen.
Mit welcher Methode werden die Fluidgleichungen gelöst?
Es wird Jos Stams „Stable Fluids“-Methode verwendet. Jeder Zeitschritt wird in die Phasen Kraft-Hinzufügen, Diffusion, Advektion und Projektion unterteilt. Diffusion und die Drucklösung nutzen etwa 20 Iterationen eines Gauß-Seidel-Lösers, und die Advektion verwendet eine semi-Lagrange-Rückverfolgung, was das Verfahren für jeden Zeitschritt bedingungslos stabil macht.
Was bewirkt der Projektionsschritt?
Die Projektion erzwingt Inkompressibilität (∇·u = 0), indem ein Druckfeld berechnet wird, dessen Gradient von der Geschwindigkeit abgezogen wird. Dies ist eine Helmholtz-Hodge-Zerlegung: Sie entfernt den divergenten Anteil der Strömung und hält das Fluid massenerhaltend, sodass es weder komprimiert noch expandiert.
Was steuert der Viskositäts-Regler?
Viskosität legt fest, wie schnell sich Geschwindigkeitsunterschiede glätten, und modelliert die innere Reibung des Fluids. Der Regler bildet logarithmisch von etwa 1e-6 bis 1e-2 ab; niedrige Werte ergeben eine dünne, turbulente, wirbelnde Strömung, hohe Werte eine dickflüssige, sirupartige Bewegung, die schnell abklingt.
Was ist der Unterschied zwischen Viskosität und Diffusion?
Viskosität wirkt auf das Geschwindigkeitsfeld und glättet den Impuls, sodass benachbarte Bereiche sich gegenseitig bremsen. Diffusion wirkt auf das Farbstoff-(Dichte-)Feld und breitet die sichtbare Farbe unabhängig von der Strömung aus. Sie können ein Fluid mit niedriger Viskosität und schneller Bewegung haben, das dennoch stark diffusen, verschwommenen Farbstoff zeigt, oder umgekehrt.
Was bewirkt der Fade-Regler?
Fade multipliziert das Dichtefeld jeden Frame mit einem Faktor (0,80–1,00), sodass Farbstoff allmählich abklingt statt sich unbegrenzt anzusammeln. Bei 0,99 bleiben Spuren lange erhalten und bauen sich auf; niedrigere Werte lassen eingebrachten Farbstoff schnell verschwinden, was nützlich ist, um die aktuelle Geschwindigkeit statt der gesamten Historie zu sehen.
Was bewirken die Presets Vortex, Shear und Plume?
Vortex erzeugt ein rotierendes Geschwindigkeitsfeld in einer zentralen Scheibe, das einen Wirbel entstehen lässt. Shear setzt entgegengesetzte horizontale Geschwindigkeiten in der oberen und unteren Hälfte und erzeugt eine Kelvin-Helmholtz-artige Scherschicht. Plume injiziert aufwärts gerichtete Geschwindigkeit und Farbstoff entlang des unteren Randes und erzeugt einen aufsteigenden Fluidstrahl.
Ist das physikalisch genau?
Es ist ein qualitativ getreuer Löser für die inkompressiblen Navier-Stokes-Gleichungen, aber nicht quantitativ präzise. Die semi-Lagrange-Advektion fügt numerische Diffusion hinzu, die feine Details dämpft, das Gitter ist nur 100×100 groß, und es gibt weder Auftrieb noch Schwerkraft, sodass visuelle Stabilität und Geschwindigkeit vor exakter technischer Genauigkeit stehen.
Was bedeuten die angezeigten Statistiken?
Max Speed ist der größte Geschwindigkeitsbetrag, der irgendwo auf dem Gitter gefunden wird, in Zelleneinheiten pro Sekunde. Total Density ist die aufsummierte Farbstoffmenge über alle Zellen, die durch den Fade-Faktor abnimmt. Grid Size zeigt die Auflösung der Simulation, hier 100×100 innere Zellen plus einen einzelligen Randring.
Wo werden solche Löser in der Praxis eingesetzt?
Stable-Fluids-Löser bilden die Grundlage für Echtzeit-Rauch-, Feuer-, Wasser- und Wolkeneffekte in Videospielen und Filmvisuals, wo Geschwindigkeit und Stabilität wichtiger sind als exakte Physik. Dieselben Navier-Stokes-Gleichungen, gelöst mit präziseren Methoden, treiben die technische Strömungsmechanik für Aerodynamik, Wetter und Rohrströmungen an.