From 41544eb158af896124388c2c6b7c87e8d80ceb83 Mon Sep 17 00:00:00 2001
From: Adrian Kummerlaender
Date: Thu, 14 Mar 2019 18:16:38 +0100
Subject: Expand example comments

---
 content.tex | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

(limited to 'content.tex')

diff --git a/content.tex b/content.tex
index d4ec597..22ebadc 100644
--- a/content.tex
+++ b/content.tex
@@ -750,26 +750,32 @@ Zu bemerken ist, dass die Konstellation aus dieser Methode zusammen mit \method{
 \begin{minted}{cpp}
 // Initialisiere gröbstes Gitter mit gewünschten Fluidkonstanten
 Grid2D<T,DESCRIPTOR> coarseGrid(coarseDomain, resolution, tau, Re);
+// Diskretisiere gewünschte Geometrie in Materialzahlen auf dem groben Gitter
 prepareGeometry(coarseGrid);
 
 // Verfeinere ein Einheitsquadrat beginnend bei $(0.5,0.5) \in \R^2$
-auto fineGrid = coarseGrid.refine({0.5, 0.5}, {1.0, 1.0});
+// (`RefiningGrid2D` ist eine bis auf Kopplung eigenständige Simulation)
+RefiningGrid2D<T,DESCRIPTOR>& fineGrid = coarseGrid.refine({0.5, 0.5}, {1.0, 1.0});
+// Diskretisiere gewünschte Geometrie in Materialzahlen auf dem feinen Gitter
 prepareGeometry(fineGrid);
 
-// Schließe den feinen Bereich auf dem groben Gitter aus (optional)
+// Schließe den feinen Bereich aus dem groben Gitter aus
 auto refinedOverlap = fineGrid.getRefinedOverlap();
-coarseGrid->getSuperGeometry().rename(1,0,*refinedOverlap);
+coarseGrid.getSuperGeometry().reset(refinedOverlap);
 
-// Binde Dynamics und Randkonditionen an die beiden Gitter
-prepareLattice(coarseGrid);
-prepareLattice(fineGrid);
+// Definiere das gewünschte Fluidverhalten durch Binden von Dynamics und Rand-
+// konditionen anhand der Materialzahlen (`forEachGrid` ruft `prepareLattice`
+// auf allen Gittern der Verfeinerungshierarchie auf)
+coarseGrid.forEachGrid(prepareLattice);
 
-// Simulationsschleife mit Ausgabe
-for (int iT = 0; iT < coarseGrid->getConverter().getLatticeTime(100); ++iT) {
-	coarseGrid->collideAndStream();
+// Simulationsschleife über 100 physikalische Sekunden
+for (int iT = 0; iT < coarseGrid.getConverter().getLatticeTime(100); ++iT) {
+	// Führe Kollisions- und Strömungsschritt rekursiv auf allen Gittern aus,
+	// Auflösungskopplung erfolgt automatisch
+	coarseGrid.collideAndStream();
 
-	getResults(coarseGrid, iT);
-	getResults(fineGrid,   iT);
+	// Ergebnisaufbereitung (z.B. Fehlernormberechnung, VTK-Ausgabe etc.)
+	coarseGrid.forEachGrid(getResults);
 }
 \end{minted}
 \caption{Beispielhafte Nutzung von \class{Grid2D}}
-- 
cgit v1.2.3

