aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2018-12-30 20:02:46 +0100
committerAdrian Kummerlaender2018-12-30 20:02:46 +0100
commitff08d119cc6ffdd535a73240406e07f5567edeb4 (patch)
tree0c3763f2fbeaf696f3fa937963f59daef7b2300c
parent853dc57a12bbf5a0623a238e528c316cc19be8ea (diff)
downloadgrid_refinement_bsc_thesis-ff08d119cc6ffdd535a73240406e07f5567edeb4.tar
grid_refinement_bsc_thesis-ff08d119cc6ffdd535a73240406e07f5567edeb4.tar.gz
grid_refinement_bsc_thesis-ff08d119cc6ffdd535a73240406e07f5567edeb4.tar.bz2
grid_refinement_bsc_thesis-ff08d119cc6ffdd535a73240406e07f5567edeb4.tar.lz
grid_refinement_bsc_thesis-ff08d119cc6ffdd535a73240406e07f5567edeb4.tar.xz
grid_refinement_bsc_thesis-ff08d119cc6ffdd535a73240406e07f5567edeb4.tar.zst
grid_refinement_bsc_thesis-ff08d119cc6ffdd535a73240406e07f5567edeb4.zip
Put algorithm figure into words
-rw-r--r--content.tex11
-rw-r--r--img/algorithm_birds_eye.tikz10
-rw-r--r--main.tex1
-rw-r--r--shell.nix1
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\)};
diff --git a/main.tex b/main.tex
index 2fab1af..3ed8b06 100644
--- a/main.tex
+++ b/main.tex
@@ -8,6 +8,7 @@
\usepackage{latexsym}
\usepackage{amsmath,amssymb,amsthm}
%\usepackage[euler-digits,euler-hat-accent]{eulervm}
+\usepackage{enumitem}
\usepackage{hyperref}
\hypersetup{
diff --git a/shell.nix b/shell.nix
index 5bdeaff..35b233b 100644
--- a/shell.nix
+++ b/shell.nix
@@ -10,6 +10,7 @@ stdenv.mkDerivation rec {
amsmath
eulervm
cm-super
+ enumitem
bibtex biblatex logreq xstring
;
};