Wandabstand
Der Wandabstand ist der Abstand vom Zellmittelpunkt zur nächstgelegenen Wand. Diese Werte werden berechnet und in jeder Zelle gespeichert, wenn die GE-RANS-Turbulenz aktiviert ist. CMPS bietet drei Methoden zur Berechnung von Wandabständen:
- Parallele modifizierte Fast Marching Method (FMM) mit Breitensuche (BFS)-Algorithmus.
- PDE-Methode basierend auf der Lösung der Poisson-Gleichung.
- Direkte Suche.
MFMM mit BFS
CMPS implementiert eine parallele Version des Fast Marching Method (FMM)-Algorithmus in Kombination mit der Breitensuche (BFS) zur Berechnung von Wandabständen. Das FMM ist ein weit verbreitetes numerisches Verfahren zur Lösung der Eikonalgleichung, welche den Abstand jeder Gitterzelle zur nächstgelegenen Wand angibt. Die Breitensuche (BFS) durchsucht eine Baumstruktur nach Knoten, die eine bestimmte Eigenschaft erfüllen. Sie beginnt an der Wurzel des Baums und durchsucht alle Knoten der aktuellen Tiefe, bevor sie zu Knoten der nächsten Tiefe übergeht.
In CMPS werden FMM und BFS gemeinsam zur Berechnung von Wandabständen verwendet. Die Grundidee dieser Methoden besteht darin, von den Wänden auszugehen und die benötigten Informationen Schicht für Schicht über das gesamte Gitter zu übertragen.
Zunächst durchläuft CMPS die Wandflächen und aktualisiert die Abstandsinformationen der angrenzenden Zellen. Dazu berechnet es den Abstand zwischen der Wandfläche und der angrenzenden Zelle und vergleicht ihn mit dem aktuellen Abstand. Ist der neue Abstand kleiner, werden die Abstandsinformationen der Nachbarzelle aktualisiert.
CMPS verteilt die aktualisierten Abstandsinformationen an benachbarte Zellen, die nicht an eine Wand angrenzen. Anschließend durchläuft es das Gitter in mehreren Durchläufen und aktualisiert dabei in jedem Durchlauf die Abstandsinformationen der Zellen, die an die im vorherigen Durchlauf aktualisierten Zellen angrenzen. Dieser Vorgang wird fortgesetzt, bis alle Zellen aktualisiert sind. In dieser Phase implementiert CMPS einen Breitensuche-Algorithmus (BFS). Der BFS-Algorithmus beginnt an einem bestimmten Startknoten (in diesem Fall der Startposition im Gitter) und untersucht alle seine Nachbarn im Abstand von 1 (Flächennachbarzellen). Anschließend werden alle Nachbarn im Abstand von 2, dann 3 usw. untersucht, bis alle Knoten (Zellen) im Graphen (Gitterverbindungsdaten) untersucht wurden. Das Gitter wird als Graph dargestellt (Verbindungen werden durch die Flächenkonnektivität der Zellen abgebildet), wobei jede Zelle des Gitters ein Knoten im Graphen ist. Die Nachbarn jedes Knotens sind die benachbarten Zellen, die keine Wände sind. Der Abstand zwischen jedem Knoten beträgt 1.
Zur Berechnung der Wandabstände wird der BFS-Algorithmus leicht modifiziert. Anstatt einfach alle Nachbarn jedes Knotens zu untersuchen, verfolgt der Algorithmus die Entfernung vom Startknoten zu jedem besuchten Knoten. Trifft er auf einen Knoten im Diagramm, wird die Entfernung zu diesem Wandknoten gespeichert.
Dieser Prozess wird fortgesetzt, bis alle Knoten im Graphen besucht wurden. Am Ende gibt der Algorithmus einen Vektor zurück, der die gleiche Größe wie das Eingabegitter hat und dessen Elemente jeweils die Entfernung zur nächstgelegenen Wand für die entsprechende Zelle im Eingabegitter angeben.
Diese Methode ist schneller als PDE-Verfahren und berechnet exakte Wandabstände. Die in einigen kommerziellen Solvern verwendeten impliziten Baumverfahren sind effektiv, wenn nur die geometrischen Daten der Oberflächen als CAD-Daten vorliegen. Bei komplexen Geometrien können sie jedoch dennoch falsche Werte liefern, da die globalen Baumdaten zu fehlerhaften Verzweigungen führen können.
PDE-Methode mit Poisson-Gleichung
Die Berechnung des Wandabstands mittels partieller Differentialgleichungen verwendet eine reine Poisson-Diffusionsgleichung für eine abstandsabhängige Variable. φ .
∇ 2 φ = -1
Diese Gleichung wird mit einem iterativen impliziten Verfahren unter Berücksichtigung der folgenden Randbedingungen gelöst:
- φ = 0 an den Mauergrenzen.
- ∇ ⋅ n = 0 an allen anderen Grenzen, wo N ist der Normalenvektor von der Grenze aus.
Dann die Wandabstände D werden mit folgender Gleichung berechnet:
d = -|∇φ| + √(|∇φ| 2 + 2φ)
Diese Methode kann bei großen und komplexen Gittern Probleme bereiten. Die parallele Lösung stößt bei großen Partitionen auf Schwierigkeiten und liefert keine exakten Werte. Sie sollte nur dann angewendet werden, wenn MFMM mit der BFS-Methode fehlschlägt.
Direktsuche
Die direkte Suche ist ein einfacher Suchalgorithmus, der für die meisten Anwendungen zu langsam ist. Sie ist jedoch die zuverlässigste Methode, und ihre Ergebnisse können zur Validierung anderer Methoden verwendet werden.