Simulation des Flüssigkeitsflusses mit der Euler-Gleichung

Ich habe eine Weile auf Eulers Gleichungen geschaut und kann eines nicht verstehen.

Angenommen, wir haben einen anfänglichen Systemzustand mit Flüssigkeitsvolumina, die in der Luft "hängen" (die Zeit ist eingefroren und gleich Null), jedes von ihnen hat seine anfänglichen (x, y) Koordinaten und seinen Geschwindigkeitsvektor (Vx, Vy). Der Raum wird in stationäre Volumina unterteilt, in denen gemessen wird (Euler-Messmodell).2-dimensionale Darstellung von segmentiertem Raum und Beschränkungen

Soweit ich weiß, erlegen Eulers Gleichungen gegenseitige Einschränkungen zwischen Geschwindigkeitsfunktionen ( u(x, y, t) ), Massendichte ( m(x, y, t) ) und Druck ( p(x, y, t) ) auf Zeitinstanz für stationäres Raumvolumen mit Koordinaten (x, y), das Flüssigkeitsvolumen enthält (in diesem Fall).

Warum also hat jede Funktion einen Zeitparameter, wenn Gleichungen für jeden Zeitpunkt gelöst werden müssen (Iterationsprozess)? Wir müssen für jeden Zeitpunkt einen neuen Satz dieser Funktionen haben, der die Gleichungen erfüllt. Und es ist unklar, ob das Raumvolumen ein Flüssigkeitsvolumen enthält oder nicht, wie berücksichtigen wir dies?

Und die zweite Frage ist, wie der Zustand jedes Flüssigkeitsvolumens (seine Koordinaten und sein Geschwindigkeitsvektor) mit diesen Funktionen zusammenhängen? Ich brauche ein System, das einen Anfangszustand hat (Array von Flüssigkeitsvolumina mit ihren Koordinaten und Geschwindigkeiten) und Eulers Gleichungen verwendet, um den nächsten Zustand zu berechnen, der für die nächste Iteration initial wird und so weiter. Etwas wie das:planen

Ich brauche keine mathematischen Details, ich möchte nur die Grundidee im Kontext der Computersimulation verstehen (wie die Simulationsmethode an analytische Standardgleichungen gebunden werden kann). Die meisten Artikel sind sehr kompliziert, mit zusätzlichen physikalischen Faktoren und Benutzerinteraktionen, und sie decken diesen "Link" nicht ab. Ich möchte den einfachsten Fall betrachten und den Iterationsprozess starten (nur eine Idee und wie es normalerweise gemacht wird). Entschuldigung, wenn einige Dinge lächerlich klingen, bitte korrigieren Sie meine Aussagen, wenn sie falsch sind. Wenn mein Verständnismodell völlig falsch ist, weisen Sie mich einfach in die richtige Richtung, danke.

Werfen Sie einen Blick darauf , um einige Informationen darüber zu erhalten, wie Sie schön formatierte Gleichungen in Ihre Posts eingeben können. Entschuldigung, es ist ein bisschen wie eine Textwand, aber nachdem Sie ein paar einfache Gleichungen herausgefunden haben, ist es wirklich ziemlich intuitiv.
Ich würde immer empfehlen, dass Sie anfangen, ein Thema zu lernen, indem Sie ein Lehrbuch finden. Es ist sehr schwer, aus Zeitschriftenartikeln ein brandneues Thema zu lernen – sie sollen Experten auf diesem Gebiet ein fortgeschrittenes Thema vermitteln. Lehrbücher sollen jemanden zu einem Experten ausbilden.
Ich schließe mich der Idee von tpg an, ein Buch zu bekommen. Ich empfehle Randall LeVeques ausgezeichneten Text über hyperbolische Erhaltungsgesetze.

Antworten (1)

Zur ersten Hälfte Ihrer Frage: Ihr allgemeines Verständnis scheint richtig zu sein. Berücksichtigen Sie die Massendichte, um Ihre Frage zu beantworten, wie Sie feststellen können, ob sich Flüssigkeit in einer bestimmten Zelle befindet M ( X , j , T ) steht in einer leeren Zelle. Es ist einfach null. Dies wird bereits nahtlos von Ihrem Gleichungssystem gehandhabt.

Bezüglich der zweiten Hälfte Ihrer Frage ist dies ein sehr breites Thema. Die Simulation von Flüssigkeiten ist in der Regel schwierig, und es gibt viele Methoden, die in verschiedenen Situationen geeignet sind (zum Beispiel ist einer der beiden Algorithmen, mit denen ich am besten vertraut bin, sehr gut in der Auflösung von Stößen, aber nicht so gut in der Modellierung bestimmte Instabilitäten wie Rayleigh-Taylor, während die zweite gut bei Instabilitäten ist, aber schlecht zum Auflösen von Schocks). Anstatt zu versuchen, Ihnen eine große Einführung in das Thema zu geben, für die Sie wahrscheinlich einfach versuchen sollten, ein gutes Buch zu finden, zeige ich Ihnen ein Konzept, von dem ich hoffe, dass es Ihnen hilft, in die faszinierende Welt der numerischen Methoden einzusteigen.

Der klassische Ausgangspunkt für numerische Lösungen von Differentialgleichungen ist die Wärmegleichung in einer Dimension, weil sie einfach und relativ leicht zu lösen ist:

u T a 2 u X 2 = 0

Betrachten Sie die zeitliche Ableitung. Eine mathematische Definition der Ableitung lautet:

u T = lim Δ T 0 u ( X , T + Δ T ) u ( X , T ) Δ T

Eine mögliche Näherung dieser Ableitung besteht darin, den Grenzwert nicht als zu nehmen Δ T 0 , sondern einfach einen kleinen Wert auswählen Δ T , geben:

u T u ( X , T + Δ T ) u ( X , T ) Δ T

Ein ähnlicher Ansatz kann für die räumliche Ableitung verwendet werden, um zu gelangen (eine von mehreren möglichen Annäherungen):

2 u X 2 u ( X + Δ X , T ) 2 u ( X , T ) + u ( X Δ X , T ) Δ X 2

Wenn man all dies in die Wärmegleichung einfügt und ein wenig neu anordnet, erhält man:

u ( X , T + Δ T ) = u ( X , T ) + a Δ T Δ X 2 [ u ( X + Δ X , T ) 2 u ( X , T ) + u ( X Δ X , T ) ]

Beachten Sie, dass der nächste Zustand des Systems (at T + Δ T , auf der linken Seite) wird vollständig in Bezug auf den aktuellen Zustand des Systems ausgedrückt (at T ) auf der rechten Seite. Sie können dies also auf einem Computer codieren und immer wieder neue Zustände mit entsprechend kleinen Auswahlmöglichkeiten auswerten Δ X Und Δ T um die Entwicklung des Systems zu erhalten.

Konzeptionell möchten Sie dasselbe mit Ihrem System von Euler-Gleichungen tun, aber natürlich sind die Gleichungen komplizierter (sie haben mehr Terme und mehr Felder, die Sie im Auge behalten müssen). Denken Sie daran, dass Sie mit einer numerischen Lösung IMMER eine Annäherung konstruieren, sodass Ihre Lösung per Definition einen Fehler enthält. Jetzt geht es darum, (1) zu verstehen, wie genau Ihre Annäherung ist, wann sie gültig, konvergiert usw. ist, und (2) zu versuchen, Ihre Fehler so gering wie möglich zu halten und gleichzeitig angemessene Kosten für Rechenressourcen zu zahlen. Das Beispiel, das ich gegeben habe, ist leicht zu verstehen und gibt für einige einfache Szenarien eine ungefähr richtige Antwort, ist aber im Allgemeinen notorisch schlecht konvergiert und weist große Fehler auf. Aber sobald Sie dieses grundlegende Beispiel verstanden haben, wird es viel einfacher sein, kompliziertere Lösungsschemata nachzulesen.