diff options
-rw-r--r-- | content.tex | 12 | ||||
-rw-r--r-- | img/poiseuille2d_error_comparison.tikz | 60 |
2 files changed, 54 insertions, 18 deletions
diff --git a/content.tex b/content.tex index 7745816..697e8b4 100644 --- a/content.tex +++ b/content.tex @@ -259,7 +259,7 @@ Lösen wir uns von dieser Einschränkung und positionieren das feine Gitter abse \end{figure}
\newpage
-\section{Verfeinerungsmethode nach Lagrava et al.}
+\section{Verfeinerungsmethode nach Lagrava et al.}\label{kap:lagrava}
Wie in Kapitel~\ref{sec:olbRefinementChoice} noch näher begründet werden wird, bieten sich der Multi-Domain Ansatz als Grundlage für Gitterverfeinerung in OpenLB an. Passend zu dieser Wahl sowie der, im Rahmen dieser Arbeit getroffenen, Einschränkung auf zweidimensionale LBM mit BGK-Kollisionsoperator haben Lagrava et al. 2012 in \citetitle{lagrava12}~\cite{lagrava12} ein solches Verfeinerungsverfahren entwickelt. Die Stuktur dieses Verfahrens, mit potenziell austauschbaren Restriktions- und Interpolationsverfahren im zentralen Kopplungsschritt, erscheint dabei sogleich auch als Fundament eines Multi-Domain Gitterverfeinerungsframeworks in OpenLB.
@@ -821,7 +821,7 @@ Unter diesen Einschränkungen ist es -- abseits offensichtlicher Gütekriterien Als Einstiegspunkt wollen wir zunächst die grundsätzliche Funktion des Verfeinerungsverfahren an einem möglichst einfachen Beispiel gegen möglichst korrekte Vergleichsdaten testen. Ein solches Beispiel ist gegeben durch die laminare Strömung in einem Rohr mit kreisförmigem Querschnitt und ohne Hindernisse abseits der Wände.
-Eine solche Rohrströmung stellt nicht nur eine der einfachsten Strömungssituationen dar, sondern besitzt als Poiseuille-Fluss auch eine analytische Lösung, so dass wir ideale Vergleichsbedingungen vorfinden. Lieferte unser Verfahren in diesem Beispiel keine guten Ergebnisse, wäre nicht davon auszugehen, dass dies sich in komplexeren Situationen verbessern würde.
+Diese Rohrströmung stellt nicht nur eine der einfachsten Strömungssituationen dar, sondern besitzt als Poiseuille-Fluss auch eine analytische Lösung, so dass wir ideale Vergleichsbedingungen vorfinden. Lieferte unser Verfahren in diesem Beispiel keine guten Ergebnisse, wäre nicht davon auszugehen, dass dies sich in komplexeren Situationen verbessern würde.
\begin{Definition}[Analytische Lösung des Poiseuille-Flusses]
\label{def:analyticPoiseuille}
@@ -868,8 +868,7 @@ Zur formalen Qualitätsbewertung ziehen wir im Folgenden die analytische Lösung \label{fig:PoiseuilleErrorNorm}
\end{figure}
-\noindent
-Die halbseitig verfeinerte Lösung aus Abbildung~\ref{fig:PoiseuilleGridSetup} ist zunächst also um eine Größenordnung schlechter als eine gleichmäßig mit \(n=20\) aufgelöste Berechnung. Auch im Vergleich mit dem uniform \(n=10\) aufgelösten Gitter erweist sich der Fehler der verfeinerten Lösung als deutlich größer -- zumindest in diesem speziellen Beispiel hat Gitterverfeinerung also einen messbar negativen Einfluss auf die Genauigkeit der Simulation.
+Zunächst ist die halbseitig verfeinerte Lösung aus Abbildung~\ref{fig:PoiseuilleGridSetup} also um etwa eine Größenordnung schlechter als eine gleichmäßig mit \(n=20\) aufgelöste Berechnung. Auch im Vergleich mit dem uniform \(n=10\) aufgelösten Gitter erweist sich der Fehler der verfeinerten Lösung als deutlich größer -- zumindest in diesem speziellen Beispiel ist Gitterverfeinerung also der Simulationsgenauigkeit messbar abträglich.
Nicht vergessen werden sollte jedoch, dass die untersuchte halbseitig verfeinerte Rohrströmung als Beispiel sehr konstruiert und nicht realitätsnah ist. Auch die noch folgenden Beobachtungen in Abbildung~\ref{fig:PoiseuilleOutflowProfile}, nach welchen die lineare Interpolation zu kleineren Geschwindigkeitsfehlern führt, deutet auf eine beschränkte Aussagekraft dieses Beispiels hin.
Eine Besonderheit ist in diesem Kontext auch die Existenz von Randbedingungen im Übergangsbereich. Eine etwaige Behandlung dieser wurde weder von Lagrava et al. angesprochen, noch in der dem Leser vorliegenden Arbeit näher untersucht. Tatsächlich verschwindet der \emph{Verfeinerungsfehler} fast vollständig, wenn die Wände aus dem verfeinerten Bereich ausgespart werden.
@@ -878,6 +877,7 @@ Eine Besonderheit ist in diesem Kontext auch die Existenz von Randbedingungen im Abschließend erscheint es beispielübergreifend intuitiv erwartbar, dass eine nicht aus dem konkreten Strömungsproblem informierte Anwendung von Gitterverfeinerung -- und damit eine unbegründete Erhöhung der Simulationskomplexität gegenüber einem uniformen Gitter -- einer Verbesserung der Präzision nicht zuträglich ist.
+\newpage
\subsubsection{Vergleich der Interpolationsverfahren}
Den halbseitig verfeinerten Poiseuille Simulationsaufbau können wir an dieser Stelle auch zur Nachvollziehung des, von Lagrava et al. für die Verwendung eines Verfahrens vierter Ordnung in der räumlichen Interpolation feiner Übergangsknoten ohne koinzidierende grobe Stützpunkte hervorgebrachten, Arguments verwenden.
@@ -902,13 +902,13 @@ Entsprechend der Beobachtungen in \cite[Kap.~3.7]{lagrava12} sehen auch wir bei \label{fig:PoiseuilleOutflowProfile}
\end{figure}
-Zum Abschluss dieses Beispiels vergleichen wir in Abbildung~\ref{fig:PoiseuilleOutflowProfile} das Geschwindigkeitsprofil entlang einer die gesamte Rohbreite durchgeschreitenden vertikalen Linie bei \(x=3\) im halbseitig verfeinerten Fall. Wie sehen hier zunächst die subjektiv beurteilt gute Qualität des Strömungsbildes erneut bestätig, erkennen aber auch den größeren Fehler im Vergleich mit der uniform fein aufgelösten Simulation. Interessant ist hier, dass die den Druckabfall ausgleichende kubische Interpolation zugleich den Geschwindigkeitsfehler gegenüber der linearen Interpolation leicht zu erhöhen scheint.
+Zum Abschluss dieses Beispiels vergleichen wir in Abbildung~\ref{fig:PoiseuilleOutflowProfile} das Geschwindigkeitsprofil entlang einer die gesamte Rohrbreite durchgeschreitenden vertikalen Linie bei \(x=3\) im halbseitig verfeinerten Fall. Wir sehen hier zunächst die subjektiv beurteilt gute Qualität des Strömungsbildes erneut bestätig, erkennen aber auch den größeren Fehler im Vergleich mit der uniform fein aufgelösten Simulation. Interessant ist hier, dass die den Druckabfall ausgleichende kubische Interpolation zugleich den Geschwindigkeitsfehler gegenüber der linearen Interpolation leicht zu erhöhen scheint.
Legen wir jedoch erneut ein randlos halbseitig verfeinertes Gitter wie beim Vergleich der L2-Normen in Abbildung~\ref{fig:PoiseuilleErrorNorm} an, verschwindet dieses Problem und wir erhalten bei dieser Messung sogar einen leicht geringeren Fehler als im uniform fein aufgelösten Gitter.
\bigskip
-Fassen wir die Ergebnisse der zurückliegenden ersten Analyse des Gitterverfeinerungsverfahrens unter dem Eindruck der beschränkten Aussagekraft bezogen auf die Wahl der Rohrströmung zusammen, bestätigt sich das Verfahren als grundsätzlich anwendbar. Es erscheinen also sowohl bei subjektiver Betrachtung als auch bei Vergleich der analytischen Lösung keine extremen Fehler im Strömungsbild. Wichtig ist jedoch im Besonderen der negative Einfluss von Randbedingungen im Übergangsbereich der Gitter -- solange korrekte Behandlung nicht geklärt ist, sollten Gitterübergänge nur im offenen Fluid platziert werden.
+Fassen wir die Ergebnisse der zurückliegenden ersten Analyse des Gitterverfeinerungsverfahrens unter dem Eindruck der beschränkten Aussagekraft bezogen auf die Wahl der Rohrströmung zusammen, bestätigt sich das Verfahren als grundsätzlich anwendbar. Es treten also sowohl bei subjektiver Betrachtung als auch bei Vergleich der analytischen Lösung keine extremen Fehler im Strömungsbild auf. Wichtig ist jedoch im Besonderen der negative Einfluss von Randbedingungen im Übergangsbereich der Gitter -- solange korrekte Behandlung nicht geklärt ist, sollten Gitterübergänge nur im offenen Fluid platziert werden. Nur dessen Skalierung wird in Kapitel~\ref{kap:lagrava} behandelt.
\newpage
\subsection{Umströmter Zylinder}
diff --git a/img/poiseuille2d_error_comparison.tikz b/img/poiseuille2d_error_comparison.tikz index 54e4ac8..d9b63e2 100644 --- a/img/poiseuille2d_error_comparison.tikz +++ b/img/poiseuille2d_error_comparison.tikz @@ -1,7 +1,7 @@ \begin{tikzpicture} \begin{axis}[ scale only axis, - height=8cm, + height=6.5cm, width=0.7*\textwidth, symbolic x coords={\texttt{uN10},\texttt{uN20},\texttt{vN10A},\texttt{vN20A},\texttt{vN10B},\texttt{vN20B}}, xtick=data, @@ -37,16 +37,52 @@ \end{tikzpicture} \bigskip -\begin{tabular}{l l l l} + +\begin{tabular}{l m{4cm} l l} & Gitterstruktur & Geschwindigkeitsfehler & Druckfehler \\ -\hline -\texttt{uN10} & \(11 \times 41\) & 1.88337e-3 & 3.11534e-3 \\ -\hline -\texttt{uN20} & \(21 \times 81\) & 1.16253e-3 & 2.27404e-3 \\ -\hline -\texttt{vN10A} & \(11 \times 21\) & 1.00761e-2 & 2.71447e-2 \\ -\texttt{vN20A} & \hphantom{\(11 \times 21\)} \(21 \times 43\) & 1.02424e-2 & 2.07924e-2 \\ -\hline -\texttt{vN10B} & \(11 \times 41\) & 1.77561e-3 & 3.11244e-3 \\ -\texttt{vN20B} & \hphantom{\(11 \times 41\)} \(17 \times 41\) & 2.04335e-3 & 3.39432e-3 \\ +\hline \\[-1.75ex] + +\texttt{uN10} +& \begin{tikzpicture} +\draw[fill=gray!20!white] (0,0) rectangle (4,1) node[pos=.5] {\(11 \times 41\)}; +\end{tikzpicture} +& 1.88337e-3 & 3.11534e-3 \\ +\hline \\[-1.75ex] + +\texttt{uN20} +& \begin{tikzpicture} +\draw[fill=gray!20!white] (0,0) rectangle (4,1) node[pos=.5] {\(21 \times 81\)}; +\end{tikzpicture} +& 1.16253e-3 & 2.27404e-3 \\ +\hline \\[-1.75ex] + +\texttt{vN10A} +& \begin{tikzpicture} +\draw[fill=gray!20!white] (0,0) rectangle (2,1) node[pos=.5] {\(11 \times 21\)}; +\draw (2,0) rectangle (4,1) node[pos=.5] {\(21 \times 43\)}; +\end{tikzpicture} +& 1.00761e-2 & 2.71447e-2 \\ +\texttt{vN20A} +& \begin{tikzpicture} +\draw (0,0) rectangle (2,1) node[pos=.5] {\(11 \times 21\)}; +\draw[fill=gray!20!white] (2,0) rectangle (4,1) node[pos=.5] {\(21 \times 43\)}; +\end{tikzpicture} +& 1.02424e-2 & 2.07924e-2 \\ +\hline \\[-1.75ex] + +\texttt{vN10B} +& \begin{tikzpicture} +\draw[fill=gray!20!white] (0,0) rectangle (4,1); +\draw[gray!20!white,text=black] (0,0) rectangle (2,1) node[pos=0.5] {\(11 \times 41\)}; +\draw (0,0) rectangle (4,1); +\draw[fill=white,text=black] (2,0.1) rectangle (3.9,0.9) node[pos=.5] {\(17 \times 41\)}; +\end{tikzpicture} +& 1.77561e-3 & 3.11244e-3 \\ +\texttt{vN20B} +& \begin{tikzpicture} +\draw[white,text=black] (0,0) rectangle (2,1) node[pos=0.5] {\(11 \times 41\)}; +\draw (0,0) rectangle (4,1); +\draw[fill=gray!20!white,text=black] (2,0.1) rectangle (3.9,0.9) node[pos=.5] {\(17 \times 41\)}; +\end{tikzpicture} +& 2.04335e-3 & 3.39432e-3 \\ \end{tabular} |