From 853dc57a12bbf5a0623a238e528c316cc19be8ea Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sun, 30 Dec 2018 11:09:41 +0100 Subject: Convert plain list to prettier birds eye view --- commands.tex | 3 ++- content.tex | 17 +++++-------- img/algorithm_birds_eye.tikz | 59 ++++++++++++++++++++++++++++++++++++++++++++ main.tex | 1 - 4 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 img/algorithm_birds_eye.tikz diff --git a/commands.tex b/commands.tex index c155412..283a8a8 100644 --- a/commands.tex +++ b/commands.tex @@ -30,4 +30,5 @@ \newcommand{\V}[2]{\ensuremath{\begin{pmatrix}#1\\#2\end{pmatrix}}} \newenvironment{rcases}{\left.\begin{aligned}}{\end{aligned}\right\rbrace} -%\AtBeginEnvironment{matrix}{\everymath{\displaystyle}} +%\renewcommand{\labelenumii}{\theenumii} +%\renewcommand{\theenumii}{\theenumi.\arabic{enumii}.} diff --git a/content.tex b/content.tex index f0b9867..867fd8c 100644 --- a/content.tex +++ b/content.tex @@ -489,17 +489,12 @@ In der zurückliegenden Sektion haben wir, aufbauend auf der Skalierung von Vert \bigskip 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{enumerate} -\item Kollisions- und Strömungsschritt auf Gitter \(\G\) -\item Kollisions- und Strömungsschritt auf Gitter \(\F\) -\item Zeitliche Interpolation von \(\rho_g, u_g\) und \(f_{g,i}^\text{neq}\) in \(x_{g \to f}^g \in \G\) zu Zeitpunkt \(t + \delta t_g / 2\) -\item Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) für alle \(i \in \{0,\dots,8\}\) mittels (\ref{eq:expandedDirectG2F}). -\item Räumliche Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) für alle \(i \in \{0,\dots,8\}\) mittels (\ref{eq:expandedInterpolG2F}). -\item Kollisions- und Strömungsschritt auf Gitter \(\F\) -\item Setzen von \(f_{f,i}\) in \(x_{g \to f}^g \in \F\) für alle \(i \in \{0,\dots,8\}\) mittels (\ref{eq:expandedDirectG2F}). -\item Räumliche Interpolation von \(f_{f,i}\) in \(x_{g \to f}^f \in \F\) für alle \(i \in \{0,\dots,8\}\) mittels (\ref{eq:expandedInterpolG2F}). -\item Setzen von \(f_{g,i}\) in \(x_{f \to g} \in \G\) mittels (\ref{eq:basicF2G}) -\end{enumerate} + +\begin{figure}[h] +\input{img/algorithm_birds_eye.tikz} +\caption{Verfeinerungsalgorithmus mit Invariante aus der Vogelperspektive} +\label{fig:AlgorithmBirdsEye} +\end{figure} % 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 new file mode 100644 index 0000000..53ffc7e --- /dev/null +++ b/img/algorithm_birds_eye.tikz @@ -0,0 +1,59 @@ +\hspace{-12.5mm} +\begin{tikzpicture}[ + scale=1.0, + coarse/.style={left,xshift=-5mm,align=left}, + fine/.style={right,xshift=5mm,align=left} +] + +\draw[yellow,very thick] (0,0) -- (0,-11) {}; +\draw[yellow,very thick] (1,0) -- (1,-11) {}; + +\draw[green!60!black,fill] (0,0) circle [radius=1.5mm]{}; +\node[coarse] at (0,0) {\(f_{g,i}(\G)\) vollständig zu Zeit \(t\)}; + +\draw[green!60!black,fill] (1,0) circle [radius=1mm]{}; +\node[fine] at (1,0) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t\)}; + +\draw[yellow,fill] (0,-1) circle [radius=1.5mm]{}; +\node[coarse] at (0,-1) {Zeitschritt \(t \to t+\delta t_g\) auf \(\G\)}; + +\draw[yellow,fill] (1,-2) circle [radius=1mm]{}; +\node[fine] at (1,-2) {Zeitschritt \(t \to t+\delta t_f\) auf \(\F\)}; + +\draw[yellow,fill] (0,-3) circle [radius=1.5mm]{}; +\node[coarse] 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\)}; + +\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}).}; + +\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}).}; + +\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\)}; + +\draw[yellow,fill] (1,-7) circle [radius=1mm]{}; +\node[fine] at (1,-7) {Zeitschritt \(t+\delta t_f \to t+2\delta t_f\) auf \(\F\)}; + +\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}).}; + +\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}).}; + +\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})}; + +\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\)}; + +\draw[green!60!black,fill] (1,-11) circle [radius=1mm]{}; +\node[fine] at (1,-11) {\(f_{f,i}(\F)\) vollständig zu Zeit \(t+\delta t_g\)}; + +\end{tikzpicture} diff --git a/main.tex b/main.tex index d80def3..2fab1af 100644 --- a/main.tex +++ b/main.tex @@ -8,7 +8,6 @@ \usepackage{latexsym} \usepackage{amsmath,amssymb,amsthm} %\usepackage[euler-digits,euler-hat-accent]{eulervm} -%\usepackage{etoolbox} \usepackage{hyperref} \hypersetup{ -- cgit v1.2.3