diff options
-rw-r--r-- | content.tex | 11 | ||||
-rw-r--r-- | img/algorithm_birds_eye.tikz | 10 | ||||
-rw-r--r-- | main.tex | 1 | ||||
-rw-r--r-- | shell.nix | 1 |
4 files changed, 18 insertions, 5 deletions
diff --git a/content.tex b/content.tex index 867fd8c..25cfa29 100644 --- a/content.tex +++ b/content.tex @@ -135,6 +135,7 @@ Bemerkenswert ist an dieser Stelle, dass die Momente der Verteilungen mit \(\ove \newpage
\subsubsection{Implementierung}
+\label{kap:LBMimpl}
Bei der Implementierung der {diskreten LBM BGK Gleichung}~\ref{def:LBGKeq} auf einem Computer ist die Aufteilung in Kollisions- und Strömungsschritt üblich.
@@ -495,6 +496,16 @@ Entsprechend (\ref{eq:gridTime}) müssen für jeden groben Zeitschritt \(\delta \caption{Verfeinerungsalgorithmus mit Invariante aus der Vogelperspektive}
\label{fig:AlgorithmBirdsEye}
\end{figure}
+\noindent
+Aufbauend auf dieser Invariante ergibt sich die, in Abbildung~\ref{fig:AlgorithmBirdsEye} dargelegte, Reihenfolge der erforderlichen Schritte direkt aus den, für die einzelnen Komponenten der Gitterkopplung benötigen, Informationen. So sind zu Beginn alle Verteilungsfunktionen vollständig bekannt, was die Ausführung eines üblichen Kollisions- und Strömungsschritts (vgl. Kapitel~\ref{kap:LBMimpl}) in beiden Gittern ohne weitere Zuarbeit erlaubt. Nach diesen beiden Schritten fehlen Verteilungsfunktionen \(f_{g,i}(x_{f \to g})\) zur Wiederherstellung der Invariante des groben Gitters. Auch der benötigte zweite Simulationsschritt, um \(\F\) auf Zeitpunkt \(t+\delta t_g=t+2\delta t_f\) zu bringen, scheitert zunächst an der Unbestimmtheit von Verteilungsfunktionen \(f_{f,i}(x_{g \to f})\).
+
+\begin{description}[style=unboxed,leftmargin=0cm]
+\item[Vervollständigung von \(\F\) zu Zeitpunkt \(t+\delta t_f\):] Zur Vervollständigung des feinen Gitters nach dem ersten Zeitschritt müssen die fehlenden Verteilungen aus dem groben Gitter rekonstruiert werden. Um die dazu erarbeiteten Näherungen (\ref{eq:expandedDirectG2F}) und (\ref{eq:expandedInterpolG2F}) mit der Interpolationsformel vierter Ordnung (\ref{eq:ipol4ord}) anzuwenden, fehlen jedoch Werte der groben Stützstellen \(f_{g,i}(x_{g \to f}^g)\) zu Zeitpunkt \(t+\delta t_f\). Diese sind zwar in den gesuchten Punkten, dank Trennung der Kopplungsrichtungen durch den Übergangsbereich, nach jedem Simulationsschritt direkt vollständig vorhanden -- jedoch nur zu Zeit \(t\) und \(t+\delta t_g\). Hier findet sich eine Anwendung des Interpolationsverfahrens zweiter Ordnung (\ref{eq:ipol2ord}), d.h. des arithmetischen Mittels zweier Stützpunkte, zur linearen Zeitinterpolation der benötigten Werte von \(\rho_g, u_g\) und \(f_{g,i}^\text{neq}\). Aufbauend darauf steht der Anwendung der Kopplungsformeln (\ref{eq:expandedDirectG2F}) und (\ref{eq:expandedInterpolG2F}) zur Vervollständigung von \(\F\) nichts mehr im Wege.
+
+\item[Vervollständigung von \(\F\) zu Zeitpunkt \(t+2\delta t_f\):] Dieser zweite Rekonstruktionsschritt auf dem feinen Gitter gestaltet sich einfacher, da die benötigten groben Verteilungen in \(\U_{g \to f}\) zur Zeitpunkt \(t+\delta t_g\) bereits durch den initialen Simulationschritt auf dem groben Gitter bekannt sind. Entsprechend können die Kopplungsformeln (\ref{eq:expandedDirectG2F}) und (\ref{eq:expandedInterpolG2F}) direkt zur Vervollständigung von \(\F\) angewandt werden.
+
+\item[Vervollständigung von \(\G\) zu Zeitpunkt \(t+\delta t_g\):] Nach zweimaliger Vervollständigung des feinen Gitters verbleibt, zur Wiederherstellung der Schleifeninvariante, der Abschluss des eingehenden Kollisions- und Strömungsschritts auf dem groben Gitter durch Restriktion der aus Richtung des feinen Gitters eingehenden Verteilungsfunktionen. Die Vollständigkeit des feinen Gitters zu Zeitpunkt \(t+\delta t_g\) erlaubt hier die direkte Anwendung von Kopplungsformel (\ref{eq:restrictedF2G}) mit Restriktionsoperator (\ref{eq:neqAvgRestrictionF2G}).
+\end{description}
% ToDo: Einschränkungen der Gitterpositionierung (keine hängenden feinen Knoten) ausarbeiten
% ToDo: Randfälle der Restriktion ausarbeiten, analog zu Interpolation (fehlt im Paper)
diff --git a/img/algorithm_birds_eye.tikz b/img/algorithm_birds_eye.tikz index 53ffc7e..923be01 100644 --- a/img/algorithm_birds_eye.tikz +++ b/img/algorithm_birds_eye.tikz @@ -26,11 +26,11 @@ \draw[yellow,fill] (1,-4) circle [radius=1mm]{}; \node[fine] at (1,-4) -{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) mit (\ref{eq:expandedDirectG2F}).}; +{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) mit (\ref{eq:expandedDirectG2F})}; \draw[yellow,fill] (1,-5) circle [radius=1mm]{}; \node[fine] at (1,-5) -{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) mit (\ref{eq:expandedInterpolG2F}).}; +{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) mit (\ref{eq:expandedInterpolG2F})}; \draw[green!60!black,fill] (1,-6) circle [radius=1mm]{}; \node[fine] at (1,-6) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t + \delta t_f\)}; @@ -40,15 +40,15 @@ \draw[yellow,fill] (1,-8) circle [radius=1mm]{}; \node[fine] at (1,-8) -{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) mit (\ref{eq:expandedDirectG2F}).}; +{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) mit (\ref{eq:expandedDirectG2F})}; \draw[yellow,fill] (1,-9) circle [radius=1mm]{}; \node[fine] at (1,-9) -{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) mit (\ref{eq:expandedInterpolG2F}).}; +{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) mit (\ref{eq:expandedInterpolG2F})}; \draw[yellow,fill] (0,-10) circle [radius=1.5mm]{}; \node[coarse] at (0,-10) -{Setzen von \(f_{g,i}\) in \(x_{f \to g} \in \G\) mit (\ref{eq:basicF2G})}; +{Restriktion von \(f_{g,i}\) in \(x_{f \to g} \in \G\) mit (\ref{eq:restrictedF2G})}; \draw[green!60!black,fill] (0,-11) circle [radius=1.5mm]{}; \node[coarse] at (0,-11) {\(f_{g,i}(\G)\) vollständig zu Zeit \(t+\delta t_g\)}; @@ -8,6 +8,7 @@ \usepackage{latexsym} \usepackage{amsmath,amssymb,amsthm} %\usepackage[euler-digits,euler-hat-accent]{eulervm} +\usepackage{enumitem} \usepackage{hyperref} \hypersetup{ @@ -10,6 +10,7 @@ stdenv.mkDerivation rec { amsmath eulervm cm-super + enumitem bibtex biblatex logreq xstring ; }; |