Aufgabenblatt 9 - LBM Streaming

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabenblatt 9 - LBM Streaming
Hat jemand eine Idee, wie dieser Stream Schritt eigentlich funktioniert? Ich habe mehrere Videos zu diesem Verfahren gesehen, mehrere Foliensätze von anderen Unis durchgelesen usw., und kein Verfahren, das ich bis jetzt gesehen habe, führt zu den Ergebnissen, die von uns erwartet werden. Also was meint er mit propagieren und austauschen? Was meint er mit “inneren Punkte des Simulationsgebietes”? Sind die Punkte in diesem Fall die Zellen oder die Einträge innerhalb einer Zelle? Wenn es ein 3x3 Matrix ist, gibt es dann nur eine “innere” Zelle, oder?


Streaming sollte so funktionieren:

eine innere Zelle ist eine Zelle, die nicht am Rand liegt (alles außer index 0 und size-1) und aus 9 Komponenten besteht.
| NW N NE |
| W O E |
| SW S SE |
Die Idee von stream ist es jetzt für jede dieser Zellen, jede der Komponenten in die passende Richtung zu propagieren.
Dabei kann man genauso wie in dem Foliensatz 15_LBM_Praxis Folien 36 und 37 vorgehen.
Propagieren heißt in diesem Fall z.B. einfach den Wert E in die Zelle in Richtung E und in dieser an der Stelle E zu schreiben.


Um das mal aus der Versenkung zu holen: Ich schaue mir das gerade nochmal an, und habe auch keinen Plan, wie das eigentlich gehen soll. Damals habe ich das so gemacht, dass ich die Lösung solange an die Testfälle angepasst habe, bis es gegangen ist (aber wirklich zielführend ist das ja nicht).

Soweit bin ich gekommen: Auch ausgehend von der letzten Teilaufgabe gehe ich davon aus, dass man mit [m]array[:, i, j][/m] die Einträge in der [m]i[/m]-ten Zeile und [m]j[/m]-ten Spalte beschreibt (oder ist es die [m]j[/m]-te Zeile und [m]j[/m]-te Spalte?). Nun ist die Frage, in welcher Reihenfolge die Einträge gespeichert werden. Nach dem [m]directions[/m]-Array dürfte das die Reihenfolge NW, W, SW, N, O, S, NE, E, SE sein, oder irre ich mich da?

Die Aufgabenstellung sagt dann nun aus, dass man “alle inneren Punkte im Simulationsgebiet (in den Beispielen also die Zelle [m]array[:, 1, 1][/m] mit denen der zugehörgen Nachbarzellen überschreiben” soll. Nach meiner Interpretation ist das also nur der Schritt wie im Foliensatz auf Seite 38-39 (der Schritt auf Seite 36-37 wird nicht ausgeführt. Das macht auch Sinn, da sich ja nur die innere Zelle verändert). Aber auch in diesem Fall stimmt das nicht mit der Reihenfolge aus [m]directions[/m] etc. überein.

Kann man mir helfen? :wink:

// Edit: Ich habe (wohl) den Fehler in meinen Überlegungen gefunden: Seite 38 suggeriert, dass ein Eintrag direkt zum nächstgelegensten Eintrag der Nachbarparzelle propagiert wird. Betrachtet man z. B. den lilalen Eintrag in der linken oberen Zelle, so sieht es aus, dass dieser in die linke obere Ecke der mittleren Zelle kommt. Tatsächlich gelangt dieser in die rechte untere Ecke, wie man auf Seite 37 sieht. Tatsächlich sagen also alle Abbildung (Seite 36-39) im Wesentlichen dasselbe aus.