aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-03-14 17:16:25 +0100
committerAdrian Kummerlaender2019-03-14 17:16:25 +0100
commit8eacb3256ee33532a15e947e62d3a46dd5cbccd5 (patch)
treedafdf8ba089f2978f7da504c13914afdeee26eed
parentd7eca9bc8f398a433f43b7592aa97c721fc5f409 (diff)
downloadgrid_refinement_bsc_thesis-8eacb3256ee33532a15e947e62d3a46dd5cbccd5.tar
grid_refinement_bsc_thesis-8eacb3256ee33532a15e947e62d3a46dd5cbccd5.tar.gz
grid_refinement_bsc_thesis-8eacb3256ee33532a15e947e62d3a46dd5cbccd5.tar.bz2
grid_refinement_bsc_thesis-8eacb3256ee33532a15e947e62d3a46dd5cbccd5.tar.lz
grid_refinement_bsc_thesis-8eacb3256ee33532a15e947e62d3a46dd5cbccd5.tar.xz
grid_refinement_bsc_thesis-8eacb3256ee33532a15e947e62d3a46dd5cbccd5.tar.zst
grid_refinement_bsc_thesis-8eacb3256ee33532a15e947e62d3a46dd5cbccd5.zip
Restrict plot width to text width
-rw-r--r--content.tex47
-rw-r--r--img/algorithm_birds_eye.tikz78
-rw-r--r--img/common/knudsen_wrapper.gnuplot3
-rw-r--r--img/common/velocity_wrapper.gnuplot3
-rw-r--r--img/cylinder2d_deltap_comparison.tikz2
-rw-r--r--img/cylinder2d_drag_lift_comparison.tikz4
-rw-r--r--img/cylinder2d_high_res_drag_comparison.tikz2
-rw-r--r--img/cylinder2d_high_res_lift_deltap_comparison.tikz4
-rw-r--r--img/cylinder2d_optimized_refinement_n5_re100_16s.gnuplot2
-rw-r--r--img/cylinder2d_unrefined_n12_re100_16s.gnuplot2
-rw-r--r--img/massloss_interpolation_plot.tikz2
-rw-r--r--img/poiseuille2d_grid.tikz4
-rw-r--r--img/poiseuille2d_setup.tikz38
-rw-r--r--img/poiseuille2d_velocity_grid.tikz4
-rw-r--r--img/static/cylinder2d_improved_grid_n20_re100_16s_knudsen.pdfbin96793 -> 96757 bytes
-rw-r--r--img/static/cylinder2d_low_resolution_outflow_refine_n5_re100_16s.pdfbin95975 -> 95954 bytes
-rw-r--r--img/static/cylinder2d_optimized_refinement_n5_re100_16s.pdfbin264965 -> 264327 bytes
-rw-r--r--img/static/cylinder2d_optimized_refinement_n5_re100_16s_knudsen.pdfbin91235 -> 91197 bytes
-rw-r--r--img/static/cylinder2d_single_refinement_n20_re100_16s.pdfbin588263 -> 588242 bytes
-rw-r--r--img/static/cylinder2d_single_refinement_n20_re100_16s_knudsen.pdfbin98478 -> 98441 bytes
-rw-r--r--img/static/cylinder2d_unrefined_n12_re100_16s.pdfbin230847 -> 229775 bytes
-rw-r--r--img/static/cylinder2d_unrefined_n20_re100_16s.pdfbin305191 -> 305171 bytes
-rw-r--r--img/static/cylinder2d_unrefined_n20_re100_16s_knudsen.pdfbin80479 -> 80443 bytes
-rw-r--r--img/static/cylinder2d_unrefined_n40_re100_16s.pdfbin895747 -> 895727 bytes
-rw-r--r--img/static/cylinder2d_unrefined_n40_re100_16s_knudsen.pdfbin84684 -> 84648 bytes
-rw-r--r--main.tex4
26 files changed, 86 insertions, 113 deletions
diff --git a/content.tex b/content.tex
index f602720..31e4315 100644
--- a/content.tex
+++ b/content.tex
@@ -146,7 +146,7 @@ Seien \(\overline{f_i}\) und \(\overline\tau\) definiert:
Setzen wir diese verschobenen Variablen in das Ergebnis der Trapezregel ein, erhalten \cite[Kap.~A.5 mit \(\Delta t=1\)]{Krueger17} wir die die vollständig diskretisierte LBM BGK Gleichung:
-\[\overline{f_i}(x+\xi_i,t+1) = \overline{f_i}(x,t) - \frac{1}{\overline\tau} (\overline{f_i}(x,t) - f_i^\text{eq}(x,t)).\]
+\[\overline{f_i}(x+\xi_i,t+1) = \overline{f_i}(x,t) - \frac{1}{\overline\tau} (\overline{f_i}(x,t) - f_i^\text{eq}(x,t))\]
\end{Definition}
Bemerkenswert ist an dieser Stelle, dass die Momente der Verteilungen mit \(\overline{f_i}\) analog zu Definition~\ref{def:Momente} berechnet werden können:
@@ -180,10 +180,10 @@ Bemerkenswert ist hierbei, dass der Kollisionsschritt nur lokale Informationen d
\subsubsection{Chapman-Enskog Analyse}
-Ziel der beschriebenen Lattice Boltzmann Methode ist die möglichst gute Approximation der schwach-kompressiblen Navier-Stokes Gleichungen auf der Simulationsdomäne.
+Ziel der beschriebenen Lattice Boltzmann Methode ist die möglichst gute Approximation der inkompressiblen Navier-Stokes Gleichungen auf der Simulationsdomäne.
-\begin{Definition}[Schwach-kompressible Navier-Stokes Gleichungen]
-Sei \(\rho\) die Dichte, \(u\) die Geschwindigkeit und \(p\) der Druck zu Zeit \(t\) sowie \(\nu\) die kinematische Viskosität und \(\mathrm{S}\) der Verzerrungstensor. Die Navier-Stokes Gleichungen:
+\begin{Definition}[Inkompressible Navier-Stokes Gleichungen]
+Sei \(\rho\) die konstante Dichte, \(p\) der Druck und \(u\) die Geschwindigkeit zu Zeit \(t\) sowie \(\nu\) die kinematische Viskosität und \(\mathrm{S}\) der Verzerrungstensor. Die inkompressiblen Navier-Stokes Gleichungen sind dann:
\begin{align*}
\partial_t \rho + \nabla \cdot (\rho u) &= 0 \\
\partial_t u + (u \cdot \nabla) u &= -\frac{1}{\rho} \nabla p + 2\nu\nabla \cdot (\mathrm{S}).
@@ -197,7 +197,7 @@ p &= c_s^2 \rho \\
\end{align*}
\end{Definition}
-Nach \cite[Kap.~4.1]{Krueger17} kann die asymptotische Äquivalenz von LBM BGK Gleichung und schwach-kompressiblen Navier-Stokes Gleichungen mit der Entwicklung von Chapman-Enskog gezeigt werden.
+Nach \cite[Kap.~4.1]{Krueger17} kann die asymptotische Äquivalenz von LBM BGK Gleichung und inkompressiblen Navier-Stokes Gleichungen mit der Entwicklung von Chapman-Enskog gezeigt werden.
\begin{Definition}[Chapman-Enskog Ansatz]
\label{def:ChapmanEnskog}
@@ -599,7 +599,9 @@ Im zurückliegenden Kapitel~\ref{kap:Komponenten} haben wir, aufbauend auf der S
Entsprechend (\ref{eq:gridTime}) müssen für jeden groben Zeitschritt \(\delta t_g\) zwei feine Zeitschritte \(\delta t_f\) durchgeführt werden. Die alternierenden Kollisions- und Strömungsschritte der beiden Gitter sind also strikt gekoppelt und werden als eine Schleifeneinheit betrachtet. Als Schleifeninvariante definieren wir dabei die vollständige Bekanntheit aller Verteilungsfunktionen aller Knoten in beiden Gittern.
\begin{figure}[h]
+\begin{adjustbox}{center}
\input{img/algorithm_birds_eye.tikz}
+\end{adjustbox}
\caption{Übersicht des Verfeinerungsalgorithmus mit Invariante}
\label{fig:AlgorithmBirdsEye}
\end{figure}
@@ -670,7 +672,7 @@ Im Allgemeinen ergibt sich aus diesen Komponenten folgende übliche Struktur von
\item Konstruktion der \class{SuperLattice2D} Instanz aus der \class{SuperGeometry2D}
\item Instantierung der benötigten \class{Dynamics} und etwaigen Randkonditionen
\item Bindung von \class{Dynamics} und Randkonditionen an die, von \class{SuperLattice2D} verwalteten, \class{Cell} Objekte anhand der Materialzahlen in einer \method{prepareLattice} Methode
- \item Starten der Simulationsschleife zum Aufruf von \method{SuperLattice2D::collideAndStream}
+ \item Simulationsschleife zum Aufruf von \method{SuperLattice2D::collideAndStream}
\end{enumerate}
In letzterem, die eigentliche Simulation durchführendem, Schritt, werden weiter durch kanonisch benannte Funktionen wie \method{getResults} und \method{error} die Ergebnisse zur Analyse in Dateien~\cite{vtkGuide10} geschrieben, Fehlernormen berechnet und Konvergenzkriterien bestimmt.
@@ -835,8 +837,9 @@ Hiermit sind die zentralen Bestandteile der Umsetzung des Verfahrens von Lagrava
\newpage
\section{Evaluierung}
-Die Auswahl von Beispielen und Kriterien zur Bewertung der Qualität eines Gitterverfeinerungsverfahrens gestaltet sich zunächst unklarer, als man annehmen könnte. So stellt OpenLB zwar eine gute Sammlung verschiedener Simulationsbeispiele bereit, aber nur wenige von ihnen besitzen analytische Lösungen oder einfach zu verwendende gesicherte Vergleichsdaten. Solche Referenzwerte sind -- abseits offensichtlicher Gütekriterien wie der Vermeidung divergierender Simulationen -- Voraussetzung für die Bewertung der Verfahrensqualität. Ohne diese ist beim Vergleich mit aus uniformen Gittern gewonnenen Lösungen nicht klar, welches Ergebnis besser ist.
+Die Auswahl von Beispielen und Kriterien zur Bewertung der Qualität eines Gitterverfeinerungsverfahrens gestaltet sich zunächst unklarer, als man annehmen könnte. So existieren nur für wenige praktische Strömungssituationen analytische Lösungen der Navier-Stokes Gleichungen. Zur Evaluation können wir uns also nicht auf die optimale Situation des Vergleiches mit analytischen Lösungen beschränken, sondern müssen auch auf Vergleichsdaten aus anderen Simulationen oder realen Experimenten zurückgreifen.
+Solche Referenzwerte sind -- abseits offensichtlicher Gütekriterien wie der Vermeidung divergierender Simulationen -- Voraussetzung für die Bewertung der Verfahrensqualität. Ohne diese ist beim Vergleich mit aus uniformen Gittern gewonnenen Lösungen nicht klar, welches Ergebnis besser ist.
Entsprechend beschränken wir uns je nach Beispiel auf die Betrachtung einer Auswahl der folgenden Gütekriterien:
\begin{enumerate}
\item Subjektive Qualität des Strömungsbildes
@@ -899,7 +902,7 @@ Bei erster Betrachtung lässt sich erkennen, dass die Strömung den Gitterüberg
\newpage
\subsubsection{Vergleich mit der analytischen Lösung}
-Zur formalen Qualitätsbewertung ziehen wir im Folgenden die analytische Lösung von Geschwindigkeit und Druck des Poiseuille-Flusses in Definition~\ref{def:analyticPoiseuille} heran. Wir können diese in \mbox{OpenLB} einfach mit Hilfe des \class{SuperRelativeErrorL2Norm2D} Funktors auf beiden Gittern mit der simulierten Lösung vergleichen:
+Zur formalen Qualitätsbewertung ziehen wir im Folgenden die analytische Lösung von Geschwindigkeit und Druck des Poiseuille-Flusses in Definition~\ref{def:analyticPoiseuille} heran. Wir können diese in \mbox{OpenLB} einfach mit Hilfe des, die relative Fehlernorm \(\frac{\|f_\text{ana}-f_\text{sim}\|_2}{\|f_\text{ana}\|_2}\) berechnenden, \class{SuperRelativeErrorL2Norm2D} Funktors mit der simulierten Lösung vergleichen:
\begin{figure}[h]
\centering
@@ -965,7 +968,7 @@ Während für diese Strömungssituation noch keine analytische Lösung gefunden
\begin{figure}[H]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_unrefined_n20_re100_16s.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_unrefined_n20_re100_16s.pdf}
\end{adjustbox}
\caption{Uniform mit \(N=20\) aufgelöstes Strömungsbild zu \(t=16s\)}
\label{fig:UniformCylinderVelocity16s}
@@ -975,7 +978,7 @@ Für die Umsetzung in OpenLB parametrisieren wir die Geometrie bezogen auf den Z
\begin{figure}[h]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_single_refinement_n20_re100_16s.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_single_refinement_n20_re100_16s.pdf}
\end{adjustbox}
\caption{Einfach verfeinertes Strömungsbild zu \(t=16s\)}
\label{fig:SingleLevelRefinementCylinderVelocity16s}
@@ -988,7 +991,7 @@ Vergleichen wir diese Grundsituation mit der in Abbildung~\ref{fig:SingleLevelRe
\begin{figure}[H]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_unrefined_n40_re100_16s.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_unrefined_n40_re100_16s.pdf}
\end{adjustbox}
\caption{Uniform mit \(N=40\) aufgelöstes Strömungsbild zu \(t=16s\)}
\label{fig:UniformCylinderVelocityN4016s}
@@ -1031,7 +1034,7 @@ Dieses, die theoretische mit der tatsächlich simulierten Knudsen-Kennzahl des F
\begin{figure}[H]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_unrefined_n20_re100_16s_knudsen.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_unrefined_n20_re100_16s_knudsen.pdf}
\end{adjustbox}
\caption{Verfeinerungskriterium in einem uniform mit \(N=20\) aufgelösten Gitter}
\label{fig:UnrefinedCylinderKnudsen60s}
@@ -1041,7 +1044,7 @@ Der lokale Vergleich der Knudsen-Zahlen eröffnet einen neuen, interessanten, Bl
\begin{figure}[H]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_unrefined_n40_re100_16s_knudsen.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_unrefined_n40_re100_16s_knudsen.pdf}
\end{adjustbox}
\caption{Verfeinerungskriterium in einem uniform mit \(N=40\) aufgelösten Gitter}
\label{fig:UnrefinedCylinderKnudsenN4060s}
@@ -1051,17 +1054,18 @@ Bei der Interpretation der Verfeinerungsfaktoren ist zu beachten, dass einzelne
\begin{figure}[h]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_single_refinement_n20_re100_16s_knudsen.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_single_refinement_n20_re100_16s_knudsen.pdf}
\end{adjustbox}
\caption{Verfeinerungskriterium in einem einfach verfeinerten \(N=20\) Gitter}
\label{fig:SingleLevelRefinementCylinderKnudsen16s}
\end{figure}
+\newpage
Insgesamt war unter dieser formaleren Analyse unsere intuitive Wahl des in Abbildung~\ref{fig:SingleLevelRefinementCylinderVelocity16s} verfeinerten Bereichs akzeptabel. Dies bestätigt sich auch bei Berechnung des Knudsen-Kriterium für das einfach verfeinerte Gitter in Abbildung~\ref{fig:SingleLevelRefinementCylinderKnudsen16s} -- die angemahnten Bereiche im Umfeld des Zylinders sind hier deutlich reduziert. Gehen wir weiterhin davon aus, dass das Kriterium belastbare Aussagen zur Simulationsqualität liefert, so ist die Reduzierung des des Verfeinerungsfaktors in den verfeinerten Gebieten um genau eins ein Indiz für die Qualität des Verfeinerungsalgorithmus.
\begin{figure}[h]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_improved_grid_n20_re100_16s_knudsen.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_improved_grid_n20_re100_16s_knudsen.pdf}
\end{adjustbox}
\caption{Verbesserte Verfeinerungsstruktur um den Zylinder}
\end{figure}
@@ -1071,11 +1075,14 @@ Es wäre vorteilhaft, wenn sich dieses Problem unter Einsatz möglichst weniger
\bigskip
-Dieses Beispiel gewinnt insbesondere an Eindruck, wenn wir die Gesamtanzahl der Gitterzellen mit den für ein stabiles uniformes Gitter benötigten Zellen vergleichen: Während das im Ausgang verfeinerte Gitter nur 3608 aktive Zellen beinhaltet, benötigt ein stabiles uniformes Gitter eine Auflösung von mindestens \(N=12\), was 13500 Zellen entspricht. Interessieren wir uns an dieser Stelle also nur für ein subjektiv korrektes und nicht-divergentes Strömungsbild, so ermöglicht uns Gitterverfeinerung ein Auskommen mit nur etwa einem Viertel der für ein unverfeinertes Gitter benötigten Zellen.
+Dieses Beispiel gewinnt insbesondere an Eindruck, wenn wir die Gesamtanzahl der Gitterzellen mit den für ein stabiles uniformes Gitter benötigten Zellen vergleichen: Während das im Ausgang verfeinerte Gitter nur 3608 aktive Zellen beinhaltet, benötigt ein uniformes Gitter eine Mindestauflösung von \(N=12\), was 13500 Zellen entspricht.
+
+\newpage
+Interessieren wir uns an dieser Stelle also nur für ein subjektiv korrektes und nicht-divergentes Strömungsbild, so ermöglicht uns Gitterverfeinerung ein Auskommen mit nur etwa einem Viertel der für ein unverfeinertes Gitter benötigten Zellen.
\begin{figure}[h]
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_low_resolution_outflow_refine_n5_re100_16s.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_low_resolution_outflow_refine_n5_re100_16s.pdf}
\end{adjustbox}
\caption{Stabile Zylinderumströmung mit \(N=5\) durch Ausgangsverfeinerung}
\label{fig:CylinderOptimizedGridN5}
@@ -1084,11 +1091,13 @@ Dieses Beispiel gewinnt insbesondere an Eindruck, wenn wir die Gesamtanzahl der
Alternativ ist es möglich über das Festhalten der Anzahl der Freiheitsgrade, d. h. der Knotenanzahl, beschränkte Rechenressourcen besser auf die zu simulierende Strömungssituation aufzuteilen. Beispielsweise fällt auf, dass der zentrale Zylinder in Abbildung~\ref{fig:CylinderOptimizedGridN5} nur sehr grob modelliert wird. Entsprechend wollen wir versuchen, bei Einschränkung auf die Anzahl der Gitterknoten eines uniformen Gitters mit \(N=12\), ein besseres Gitter zu erzeugen.
\begin{figure}[H]
+\centering{Uniform aufgelöstes Gitter mit \num{13500} Knoten}
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_unrefined_n12_re100_16s.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_unrefined_n12_re100_16s.pdf}
\end{adjustbox}
+\centering{Geeignet dreifach verfeinertes Gitter mit \num{13454} Knoten}
\begin{adjustbox}{center}
-\includegraphics[width=1.2\textwidth]{img/static/cylinder2d_optimized_refinement_n5_re100_16s.pdf}
+\includegraphics[width=1.01\textwidth]{img/static/cylinder2d_optimized_refinement_n5_re100_16s.pdf}
\end{adjustbox}
\caption{Vergleich von uniform und problembezogen verteilten Freiheitsgraden}
\label{fig:CylinderOptimizedGridComparison}
diff --git a/img/algorithm_birds_eye.tikz b/img/algorithm_birds_eye.tikz
index 27f6123..15c609a 100644
--- a/img/algorithm_birds_eye.tikz
+++ b/img/algorithm_birds_eye.tikz
@@ -1,65 +1,65 @@
-\hspace{-12.5mm}
\tikzexternaldisable
\begin{tikzpicture}[
scale=1.0,
- lhs/.style={left,xshift=-5mm,align=left},
- rhs/.style={right,xshift=5mm,align=left},
+ lhs/.style={left,xshift=-5mm,align=right,text width=7cm},
+ rhs/.style={right,xshift=5mm,align=left,text width=7cm},
coarse/.style={circle,inner sep=1.5mm},
fine/.style={circle,inner sep=1mm},
incomplete/.style={draw=gray,very thick,fill=white},
complete/.style={draw=gray,very thick,fill=green!70!black}
]
-\draw[gray,very thick] (0,0) -- (0,-11) {};
-\draw[gray,very thick] (1,0) -- (1,-11) {};
-\node[coarse,complete] at (0,0) {};
-\node[lhs] at (0,0) {\(f_{g,i}(\G)\) vollständig zu Zeit \(t\)};
+\draw[gray,very thick] (-0.4,0) -- (-0.4,-11) {};
+\draw[gray,very thick] (0.4,0) -- (0.4,-11) {};
-\node[fine,complete] at (1,0) {};
-\node[rhs] at (1,0) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t\)};
+\node[coarse,complete] at (-0.4,0) {};
+\node[lhs] at (-0.4,0) {\(f_{g,i}(\G)\) vollständig zu Zeit \(t\)};
-\node[coarse,incomplete] at (0,-1) {};
-\node[lhs] at (0,-1) {Zeitschritt \(t \to t+\delta t_g\) auf \(\G\)};
+\node[fine,complete] at (0.4,0) {};
+\node[rhs] at (0.4,0) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t\)};
-\node[fine,incomplete] at (1,-2) {};
-\node[rhs] at (1,-2) {Zeitschritt \(t \to t+\delta t_f\) auf \(\F\)};
+\node[coarse,incomplete] at (-0.4,-1) {};
+\node[lhs] at (-0.4,-1) {Zeitschritt \(t \to t+\delta t_g\) auf \(\G\)};
-\node[coarse,incomplete] at (0,-3) {};
-\node[lhs] at (0,-3)
-{Interpolation von \(\rho_g, u_g, f_{g,i}^\text{neq}\) in \(x_{g \to f}^g \in \G\)\\zu Zeitpunkt \(t + \delta t_g / 2\)};
+\node[fine,incomplete] at (0.4,-2) {};
+\node[rhs] at (0.4,-2) {Zeitschritt \(t \to t+\delta t_f\) auf \(\F\)};
-\node[fine,incomplete] at (1,-4) {};
-\node[rhs] at (1,-4)
-{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) mit (\ref{eq:expandedDirectG2F})};
+\node[coarse,incomplete] at (-0.4,-3) {};
+\node[lhs] at (-0.4,-3)
+{Interpolation von \(\rho_g, u_g, f_{g,i}^\text{neq}\) in \(x_{g \to f}^g\)};
-\node[fine,incomplete] at (1,-5) {};
-\node[rhs] at (1,-5)
-{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) mit (\ref{eq:expandedInterpolG2F})};
+\node[fine,incomplete] at (0.4,-4) {};
+\node[rhs] at (0.4,-4)
+{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g\) (\ref{eq:expandedDirectG2F})};
-\node[fine,complete] at (1,-6) {};
-\node[rhs] at (1,-6) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t + \delta t_f\)};
+\node[fine,incomplete] at (0.4,-5) {};
+\node[rhs] at (0.4,-5)
+{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f\) (\ref{eq:expandedInterpolG2F})};
-\node[fine,incomplete] at (1,-7) {};
-\node[rhs] at (1,-7) {Zeitschritt \(t+\delta t_f \to t+2\delta t_f\) auf \(\F\)};
+\node[fine,complete] at (0.4,-6) {};
+\node[rhs] at (0.4,-6) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t + \delta t_f\)};
-\node[fine,incomplete] at (1,-8) {};
-\node[rhs] at (1,-8)
-{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) mit (\ref{eq:expandedDirectG2F})};
+\node[fine,incomplete] at (0.4,-7) {};
+\node[rhs] at (0.4,-7) {Zeitschritt \(t+\delta t_f \to t+2\delta t_f\) auf \(\F\)};
-\node[fine,incomplete] at (1,-9) {};
-\node[rhs] at (1,-9)
-{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) mit (\ref{eq:expandedInterpolG2F})};
+\node[fine,incomplete] at (0.4,-8) {};
+\node[rhs] at (0.4,-8)
+{Setzen von \(f_{f,i}\) in \(x_{g \to f}^g\) (\ref{eq:expandedDirectG2F})};
-\node[coarse,incomplete] at (0,-10) {};
-\node[lhs] at (0,-10)
-{Restriktion von \(f_{g,i}\) in \(x_{f \to g} \in \G\) mit (\ref{eq:restrictedF2G})};
+\node[fine,incomplete] at (0.4,-9) {};
+\node[rhs] at (0.4,-9)
+{Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f\) (\ref{eq:expandedInterpolG2F})};
-\node[coarse,complete] at (0,-11) {};
-\node[lhs] at (0,-11) {\(f_{g,i}(\G)\) vollständig zu Zeit \(t+\delta t_g\)};
+\node[coarse,incomplete] at (-0.4,-10) {};
+\node[lhs] at (-0.4,-10)
+{Restriktion von \(f_{g,i}\) in \(x_{f \to g}\) (\ref{eq:restrictedF2G})};
-\node[fine,complete] at (1,-11) {};
-\node[rhs] at (1,-11) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t+\delta t_g\)};
+\node[coarse,complete] at (-0.4,-11) {};
+\node[lhs] at (-0.4,-11) {\(f_{g,i}(\G)\) vollständig zu Zeit \(t+\delta t_g\)};
+
+\node[fine,complete] at (0.4,-11) {};
+\node[rhs] at (0.4,-11) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t+\delta t_g\)};
\end{tikzpicture}
\tikzexternalenable
diff --git a/img/common/knudsen_wrapper.gnuplot b/img/common/knudsen_wrapper.gnuplot
index 0bc189c..0feeb41 100644
--- a/img/common/knudsen_wrapper.gnuplot
+++ b/img/common/knudsen_wrapper.gnuplot
@@ -11,4 +11,7 @@ set ytics 0,1,4
set cbtics ("{/Symbol \243}0" 0, "1" 1, "{/Symbol \263}2" 2)
set cbrange [0:2]
+set colorbox user origin graph 1.01, graph 0 size 0.02, graph 1
+set rmargin at screen 0.91
+
set cblabel "Verfeinerungskriterium" offset 1,0
diff --git a/img/common/velocity_wrapper.gnuplot b/img/common/velocity_wrapper.gnuplot
index 7e3b87a..a08c8b4 100644
--- a/img/common/velocity_wrapper.gnuplot
+++ b/img/common/velocity_wrapper.gnuplot
@@ -11,4 +11,7 @@ set ytics 0,1,4
set cbtics 0,0.5,2.0
set cbrange [0:2.0]
+set colorbox user origin graph 1.01, graph 0 size 0.02, graph 1
+set rmargin at screen 0.91
+
set cblabel "Geschwindigkeitsnorm"
diff --git a/img/cylinder2d_deltap_comparison.tikz b/img/cylinder2d_deltap_comparison.tikz
index 709273c..e06b53b 100644
--- a/img/cylinder2d_deltap_comparison.tikz
+++ b/img/cylinder2d_deltap_comparison.tikz
@@ -6,7 +6,7 @@
\begin{axis}[
scale only axis,
height=7.5cm,
- width=0.9*\textwidth,
+ width=0.85*\textwidth,
legend cell align=left,
legend pos=south east,
grid=both,
diff --git a/img/cylinder2d_drag_lift_comparison.tikz b/img/cylinder2d_drag_lift_comparison.tikz
index 96b628d..778f4d3 100644
--- a/img/cylinder2d_drag_lift_comparison.tikz
+++ b/img/cylinder2d_drag_lift_comparison.tikz
@@ -6,7 +6,7 @@
\begin{axis}[
scale only axis,
height=7.5cm,
- width=0.9*\textwidth,
+ width=0.85*\textwidth,
legend cell align=left,
legend pos=south east,
grid=both,
@@ -39,7 +39,7 @@
scale only axis,
height=7.5cm,
yshift=-8.75cm,
- width=0.9*\textwidth,
+ width=0.85*\textwidth,
legend cell align=left,
legend pos=south west,
grid=both,
diff --git a/img/cylinder2d_high_res_drag_comparison.tikz b/img/cylinder2d_high_res_drag_comparison.tikz
index 8ecdcbd..927fa1a 100644
--- a/img/cylinder2d_high_res_drag_comparison.tikz
+++ b/img/cylinder2d_high_res_drag_comparison.tikz
@@ -6,7 +6,7 @@
\begin{axis}[
scale only axis,
height=7.5cm,
- width=0.9*\textwidth,
+ width=0.85*\textwidth,
legend cell align=left,
legend pos=south east,
grid=both,
diff --git a/img/cylinder2d_high_res_lift_deltap_comparison.tikz b/img/cylinder2d_high_res_lift_deltap_comparison.tikz
index 759f2bb..4b42257 100644
--- a/img/cylinder2d_high_res_lift_deltap_comparison.tikz
+++ b/img/cylinder2d_high_res_lift_deltap_comparison.tikz
@@ -6,7 +6,7 @@
\begin{axis}[
scale only axis,
height=7.5cm,
- width=0.9*\textwidth,
+ width=0.85*\textwidth,
legend cell align=left,
legend pos=south east,
grid=both,
@@ -29,7 +29,7 @@
scale only axis,
yshift=-8.5cm,
height=7.5cm,
- width=0.9*\textwidth,
+ width=0.85*\textwidth,
legend cell align=left,
legend pos=south east,
grid=both,
diff --git a/img/cylinder2d_optimized_refinement_n5_re100_16s.gnuplot b/img/cylinder2d_optimized_refinement_n5_re100_16s.gnuplot
index 8c206e9..0f5563f 100644
--- a/img/cylinder2d_optimized_refinement_n5_re100_16s.gnuplot
+++ b/img/cylinder2d_optimized_refinement_n5_re100_16s.gnuplot
@@ -28,6 +28,4 @@ set obj 4 fillstyle empty border -1 front lw 1
set obj 5 rect from 0.55,0.15 to 11.05,3.95
set obj 5 fillstyle empty border -1 front lw 1
-set title "Geeignet dreifach verfeinertes Gitter mit 13454 Knoten"
-
load 'common/include_fluid.gnuplot'
diff --git a/img/cylinder2d_unrefined_n12_re100_16s.gnuplot b/img/cylinder2d_unrefined_n12_re100_16s.gnuplot
index 81a0dfa..d32ee1c 100644
--- a/img/cylinder2d_unrefined_n12_re100_16s.gnuplot
+++ b/img/cylinder2d_unrefined_n12_re100_16s.gnuplot
@@ -6,6 +6,4 @@ plot 'data/cylinder2d_unrefined_n12_re100_16s.csv' using ($6*10):($7*10):(sqrt($
load 'common/velocity_wrapper.gnuplot'
-set title "Uniform aufgelöstes Gitter mit 13500 Knoten"
-
load 'common/include_fluid.gnuplot'
diff --git a/img/massloss_interpolation_plot.tikz b/img/massloss_interpolation_plot.tikz
index 2626c26..b895a19 100644
--- a/img/massloss_interpolation_plot.tikz
+++ b/img/massloss_interpolation_plot.tikz
@@ -2,7 +2,7 @@
\begin{axis}[
scale only axis,
height=8.75cm,
- width=0.9*\textwidth,
+ width=0.85*\textwidth,
mark size=0,
line width=0.5pt,
legend pos=south west,
diff --git a/img/poiseuille2d_grid.tikz b/img/poiseuille2d_grid.tikz
index f29c206..8e87002 100644
--- a/img/poiseuille2d_grid.tikz
+++ b/img/poiseuille2d_grid.tikz
@@ -1,8 +1,8 @@
\begin{tikzpicture}
\begin{axis}[
scale only axis,
- height=\textwidth)/4,
- width=\textwidth,
+ height=0.95\textwidth)/4,
+ width=0.95\textwidth,
axis equal,
xmin=0, xmax=4,
ymin=0, ymax=1,
diff --git a/img/poiseuille2d_setup.tikz b/img/poiseuille2d_setup.tikz
deleted file mode 100644
index 76b307d..0000000
--- a/img/poiseuille2d_setup.tikz
+++ /dev/null
@@ -1,38 +0,0 @@
-\begin{tikzpicture}[
- scale=1.1*\textwidth/41cm,
- coarse/.style={circle,thick,inner sep=2},
- fine/.style={cross out,thick,inner sep=0.75},
- legend/.style={minimum height=1,minimum width=1}
-]
-
-\foreach \x in {0,...,20}
- \foreach \y in {0,...,10}{
- \ifthenelse{\equal{\y}{0} \OR \equal{\y}{10}}{
- \node[coarse,draw=black] at (\x,\y){ };
- }{
- \ifthenelse{\equal{\x}{0}}{
- \node[coarse,draw=green] at (\x,\y){ };
- }{
- \node[coarse,draw=blue] at (\x,\y){ };
- }
- }
- }
-
-\foreach \x in {0,...,42}
- \foreach \y in {0,...,20}{
- \ifthenelse{\equal{\y}{0} \OR \equal{\y}{20}}{
- \node[fine,draw=black] at (19+\x*0.5,\y*0.5){ };
- }{
- \ifthenelse{\equal{\x}{42}}{
- \node[fine,draw=red] at (19+\x*0.5,\y*0.5){ };
- }{
- \node[fine,draw=blue] at (19+\x*0.5,\y*0.5){ };
- }
- }
- }
-
-\node[legend,fill=blue,label=0:Fluid] at (9+0*6,-2) { };
-\node[legend,fill=black,label=0:Wand] at (9+1*6,-2) { };
-\node[legend,fill=green,label=0:Einfluss] at (9+2*6,-2) { };
-\node[legend,fill=red,label=0:Ausfluss] at (9+3*6,-2) { };
-\end{tikzpicture}
diff --git a/img/poiseuille2d_velocity_grid.tikz b/img/poiseuille2d_velocity_grid.tikz
index 8ff04ab..612b88e 100644
--- a/img/poiseuille2d_velocity_grid.tikz
+++ b/img/poiseuille2d_velocity_grid.tikz
@@ -1,8 +1,8 @@
\begin{tikzpicture}
\begin{axis}[
scale only axis,
- height=\textwidth)/4,
- width=\textwidth,
+ height=0.95\textwidth)/4,
+ width=0.95\textwidth,
axis equal,
xmin=0, xmax=4,
ymin=0, ymax=1,
diff --git a/img/static/cylinder2d_improved_grid_n20_re100_16s_knudsen.pdf b/img/static/cylinder2d_improved_grid_n20_re100_16s_knudsen.pdf
index be8ab6b..acc7ce6 100644
--- a/img/static/cylinder2d_improved_grid_n20_re100_16s_knudsen.pdf
+++ b/img/static/cylinder2d_improved_grid_n20_re100_16s_knudsen.pdf
Binary files differ
diff --git a/img/static/cylinder2d_low_resolution_outflow_refine_n5_re100_16s.pdf b/img/static/cylinder2d_low_resolution_outflow_refine_n5_re100_16s.pdf
index ef7d937..eaad995 100644
--- a/img/static/cylinder2d_low_resolution_outflow_refine_n5_re100_16s.pdf
+++ b/img/static/cylinder2d_low_resolution_outflow_refine_n5_re100_16s.pdf
Binary files differ
diff --git a/img/static/cylinder2d_optimized_refinement_n5_re100_16s.pdf b/img/static/cylinder2d_optimized_refinement_n5_re100_16s.pdf
index 2bb1a30..e555e69 100644
--- a/img/static/cylinder2d_optimized_refinement_n5_re100_16s.pdf
+++ b/img/static/cylinder2d_optimized_refinement_n5_re100_16s.pdf
Binary files differ
diff --git a/img/static/cylinder2d_optimized_refinement_n5_re100_16s_knudsen.pdf b/img/static/cylinder2d_optimized_refinement_n5_re100_16s_knudsen.pdf
index 7cfa276..43ace8a 100644
--- a/img/static/cylinder2d_optimized_refinement_n5_re100_16s_knudsen.pdf
+++ b/img/static/cylinder2d_optimized_refinement_n5_re100_16s_knudsen.pdf
Binary files differ
diff --git a/img/static/cylinder2d_single_refinement_n20_re100_16s.pdf b/img/static/cylinder2d_single_refinement_n20_re100_16s.pdf
index c404855..8daca5a 100644
--- a/img/static/cylinder2d_single_refinement_n20_re100_16s.pdf
+++ b/img/static/cylinder2d_single_refinement_n20_re100_16s.pdf
Binary files differ
diff --git a/img/static/cylinder2d_single_refinement_n20_re100_16s_knudsen.pdf b/img/static/cylinder2d_single_refinement_n20_re100_16s_knudsen.pdf
index 1648d01..be759ce 100644
--- a/img/static/cylinder2d_single_refinement_n20_re100_16s_knudsen.pdf
+++ b/img/static/cylinder2d_single_refinement_n20_re100_16s_knudsen.pdf
Binary files differ
diff --git a/img/static/cylinder2d_unrefined_n12_re100_16s.pdf b/img/static/cylinder2d_unrefined_n12_re100_16s.pdf
index b5d2aba..be92ce2 100644
--- a/img/static/cylinder2d_unrefined_n12_re100_16s.pdf
+++ b/img/static/cylinder2d_unrefined_n12_re100_16s.pdf
Binary files differ
diff --git a/img/static/cylinder2d_unrefined_n20_re100_16s.pdf b/img/static/cylinder2d_unrefined_n20_re100_16s.pdf
index 3d9d1d9..f7706e4 100644
--- a/img/static/cylinder2d_unrefined_n20_re100_16s.pdf
+++ b/img/static/cylinder2d_unrefined_n20_re100_16s.pdf
Binary files differ
diff --git a/img/static/cylinder2d_unrefined_n20_re100_16s_knudsen.pdf b/img/static/cylinder2d_unrefined_n20_re100_16s_knudsen.pdf
index 207b45e..ab2d22c 100644
--- a/img/static/cylinder2d_unrefined_n20_re100_16s_knudsen.pdf
+++ b/img/static/cylinder2d_unrefined_n20_re100_16s_knudsen.pdf
Binary files differ
diff --git a/img/static/cylinder2d_unrefined_n40_re100_16s.pdf b/img/static/cylinder2d_unrefined_n40_re100_16s.pdf
index 84d9a6b..c83d691 100644
--- a/img/static/cylinder2d_unrefined_n40_re100_16s.pdf
+++ b/img/static/cylinder2d_unrefined_n40_re100_16s.pdf
Binary files differ
diff --git a/img/static/cylinder2d_unrefined_n40_re100_16s_knudsen.pdf b/img/static/cylinder2d_unrefined_n40_re100_16s_knudsen.pdf
index 69e2f16..1f8dd4c 100644
--- a/img/static/cylinder2d_unrefined_n40_re100_16s_knudsen.pdf
+++ b/img/static/cylinder2d_unrefined_n40_re100_16s_knudsen.pdf
Binary files differ
diff --git a/main.tex b/main.tex
index dca44c8..ae5e13c 100644
--- a/main.tex
+++ b/main.tex
@@ -140,8 +140,8 @@ Zu diesen Zweck werden anhand einer zweidimensionalen Lattice Boltzmann Methode
\vspace*{8cm}
\section*{Erkl\"arung}
Ich versichere wahrheitsgemäß, die Arbeit selbstständig verfasst, alle benutzten Hilfsmittel vollständig und genau angegeben und alles kenntlich gemacht zu haben, was aus Arbeiten anderer unverändert oder mit Abänderungen entnommen wurde, sowie die Satzung des KIT zur Sicherung guter wissenschaftlicher Praxis in der jeweils gültigen Fassung beachtet zu haben.
-\\[2ex]
+\\[8ex]
\noindent
-Karlsruhe, den \today\\[5ex]
+Karlsruhe, den \today
\end{document}