]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[doc] 2DQuad fast fertig (Zeit von Quadgrad vergleich fehlt noch)
authorPeter Schaefer <schaeferpm@gmail.com>
Tue, 23 Apr 2013 12:01:01 +0000 (14:01 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Tue, 23 Apr 2013 12:01:01 +0000 (14:01 +0200)
[src] kleine Fehler behoben und Zeitmessung umgestellt

doc/doc.pdf
doc/doc.tex
src/compute.m

index 4abbe246175a77be4e282450f892094eaea10c05..87adc0b9e8f862f9b0f37e941ba5687a6379f1a1 100644 (file)
Binary files a/doc/doc.pdf and b/doc/doc.pdf differ
index 0bf468b6bf28ff864c5c98189831df4a3b1463fc..572ce0b688c3b9b53466ea2abd5a657906f922a2 100644 (file)
 \psfrag{Zeit 132t05n05 QEQA}{\tiny Zeit semiquadratur QE}
 \psfrag{cond 132t05n05 QEQA}{\tiny Kondition semiquadratur QE}
 
-\psfrag{tmu 132t05n05 QA}{\tiny $\tilde \mu$ semiquadratur Q}
-\psfrag{eta 132t05n05 QA}{\tiny $\eta$ semiquadratur Q}
-\psfrag{fehler 132t05n05 QA}{\tiny Fehler semiquadratur Q}
-\psfrag{Zeit 132t05n05 QA}{\tiny Zeit semiquadratur Q}
-\psfrag{cond 132t05n05 QA}{\tiny Kondition semiquadratur Q}
+\psfrag{tmu 132t05n05 QA}{\tiny $\tilde \mu$ volle Quadratur}
+\psfrag{eta 132t05n05 QA}{\tiny $\eta$ volle Quadratur}
+\psfrag{fehler 132t05n05 QA}{\tiny Fehler volle Quadratur}
+\psfrag{Zeit 132t05n05 QA}{\tiny Zeit volle Quadratur}
+\psfrag{cond 132t05n05 QA}{\tiny Kondition volle Quadratur}
 
 
 
@@ -2184,7 +2184,7 @@ Zunächst wollen wir drei Verfeinerungs-Strategien genauer untersuchen. Hierzu b
 \centering
 \subfloat[Fehler und Fehlerschätzer für das Quadrat \label{fig:2DQuad:verfeinern:err}]{\includegraphics[width=0.5\textwidth]{fig/1tn_2DQuad_error}}
 \subfloat[Seitenverhältnisse für das Quadrat \label{fig:2DQuad:verfeinern:hminmax}]{\includegraphics[width=0.5\textwidth]{fig/1tn_2DQuad_hminmax}}\\
-\subfloat[Kondition der $V_{\ell}$ Matrix für das Quadrat \label{fig:2DQuad:verfeinern:cond}]{\includegraphics[width=0.5\textwidth]{fig/1tn_2DQuad_cond}}
+\subfloat[Kondition der $\hat V_{\ell}$ Matrix für das Quadrat \label{fig:2DQuad:verfeinern:cond}]{\includegraphics[width=0.5\textwidth]{fig/1tn_2DQuad_cond}}
 \subfloat[Berechnungszeit für das Quadrat \label{fig:2DQuad:verfeinern:time}]{\includegraphics[width=0.5\textwidth]{fig/1tn_2DQuad_time}}
 \caption{Vergleich der Verfeinerungsstrategien auf dem Quadrat}
 \label{fig:2DQuad:verfeinern}
@@ -2215,7 +2215,7 @@ Bei der "`adaptiv isotropen"' Strategie in \figLineB[] ist am Verhältnis $\min_
 Anhand der \figLineC[] farbenen Linien, also der "`adaptiv anisotropen"' Strategie beobachten wir, am kleiner werdenden Verhältnis $\min_{}(h_{\min} /h_{\max})$, dass mit zunehmender Elementanzahl lange schmale Elemente entstehen. Am kleiner werden der anderen beiden Verhältnisse erkennen wir auch hier, dass die Differenz der Elementgrößen zunimmt.
 
 \noindent
-Um auch die Stabilität der drei Strategien untersuchen zu können, sehen wir in der Abbildung \ref{fig:2DQuad:verfeinern:cond} die Konditionszahlen der $V_{\ell}$ Matrix in Abhängigkeit der Elementanzahl.
+Um auch die Stabilität der drei Strategien untersuchen zu können, sehen wir in der Abbildung \ref{fig:2DQuad:verfeinern:cond} die Konditionszahlen der $\hat V_{\ell}$ Matrix in Abhängigkeit der Elementanzahl. Für die "`uniforme"' Strategie in \figLineA[] erkennen wir sehr gute Konditionszahlen, wissen aber, dass auch der Fehler der Galerkin-Lösung nur langsam gegen 0 konvergiert. Die Konditionszahlen der "`adaptiv anisotropen"' Strategie in \figLineC[] wachsen hingegen am schnellsten und steigen bei etwa 3000 Elemente sogar sprunghaft an. 
 
 \noindent
 Weiterhin können wir in Abbildung \ref{fig:2DQuad:verfeinern:time} die benötigte Zeit für einen Berechnungsschritt ablesen. In einem Berechnungsschritt wird die Matrix $\hat V_{\ell}$ und $V_{\ell}$ aufgestellt und die Galerkin-Lösung inklusive aller Fehlerschätzer berechnet. Hierbei fällt auf, dass die Wahl der Strategie keinen Einfluss auf die benötigte Zeit hat, sondern nur die Anzahl der Elemente. Für die Berechnung mit 3000 Elementen benötigen alle drei Strategien etwa $10^4$ Sekunden, was fast drei Stunden entspricht.
@@ -2236,7 +2236,7 @@ Bei der folgenden Berechnung werden wir wieder den Algorithmus \ref{alg:adapt} m
 \subfloat[Fehler und Fehlerschätzer für das Quadrat \label{fig:2DQuad:quad:err}]{\includegraphics[width=0.5\textwidth]{fig/2222t05n05_2DQuad_error}}
 % \subfloat[Seitenverhältnisse auf dem Quadrat \label{fig:2DQuad:quad:hminmax}]{\includegraphics[width=0.5\textwidth]{fig/2222t05n05_2DQuad_hminmax}}
 % \\
-% \subfloat[Kondition der $V_{\ell}$ Matrix \label{fig:2DQuad:quad:cond}]{\includegraphics[width=0.5\textwidth]{fig/2222t05n05_2DQuad_cond}}
+% \subfloat[Kondition der $\hat V_{\ell}$ Matrix \label{fig:2DQuad:quad:cond}]{\includegraphics[width=0.5\textwidth]{fig/2222t05n05_2DQuad_cond}}
 \subfloat[Berechnungszeit für das Quadrat \label{fig:2DQuad:quad:time}]{\includegraphics[width=0.5\textwidth]{fig/2222t05n05_2DQuad_time}}
 \caption{Vergleich der Quadraturgrade auf dem Quadrat}
 \label{fig:2DQuad:quad}
@@ -2263,13 +2263,24 @@ In der letzten Strategie "`volle Quadratur"' werden wir alle $\zeta_Q$-zulässig
 \subfloat[Fehler und Fehlerschätzer für das Quadrat \label{fig:2DQuad:sem:err}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_error}}
 % \subfloat[Seitenverhältnisse auf dem Quadrat \label{fig:2DQuad:quad:hminmax}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_hminmax}}
 \\
-\subfloat[Kondition der $V_{\ell}$ Matrix \label{fig:2DQuad:sem:cond}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_cond}}
+\subfloat[Kondition der $\hat V_{\ell}$ Matrix \label{fig:2DQuad:sem:cond}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_cond}}
 \subfloat[Berechnungszeit für das Quadrat \label{fig:2DQuad:sem:time}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_time}}
 \caption{Vergleich der Berechnungsarten von $\hat V_{\ell}$ auf dem Quadrat}
 \label{fig:2DQuad:sem}
 \end{figure}
 
+\noindent
+In Abbildung \ref{fig:2DQuad:sem:err} haben wir die Ergebnisse des Fehlers gegenüber der tatsächlichen Lösung und der Fehlerschätzer $\tilde mu,\eta$ für die drei Strategien in Abhängigkeit der Elementanzahl vom Netz $\T_{\ell}$ eingezeichnet. Anhand der \figLineA[]farbenen Linie, welche den Fehler und Fehlerschätzer der "`analytischen"' Strategie zeigt, beobachten wir wieder eine gute Konvergenzrate bis etwa 2000 Elemente. Ab dieser Grenze, die auch in \figErr[] eingetragen wurde, erkennen wir deutlich, dass der $\tilde \mu$ Schätzer im Gegensatz zu den anderen Strategien wieder steigt. Der Fehler und $\eta$ Schätzer bleibt für die "`analytische"' Strategie in diesem Vergleich jedoch weiterhin stabil, was auf die Wahl des Steuerparameters der Verfeinerung zurückzuführen ist. An den Linien in \figLineB[] und \figLineC[] können wir die Ergebnisse für die "`semianalytische QE"' und "`volle Quadratur"' Strategie ablesen. Beide Strategien führen zu den selben Ergebnissen und zeigen auch für Berechnungen über 2000 Elemente eine gute Konvergenzrate von $N^{-3/4}$.
 
+\noindent
+In Abbildung \ref{fig:2DQuad:sem:cond} vergleichen wir noch einmal die Konditionszahlen der $\hat V_{\ell}$ Matrix für die verschiedenen Strategien. Auch hier wurde die \figErr[e] Grenzlinie bei etwa 2000 Elementen eingezeichnet. Anhand der Linie in \figLineA[] erkennen wir deutlich, dass ab der 2000 Elemente Grenze die Konditionszahlen für die analytische Berechnung sprunghaft gegenüber den Konditionszahlen der beiden Quadraturn in \figLineB[] und \figLineC[] ansteigen. Wir erkennen an dieser Stelle aber auch, dass die Kondtionszahlen der "`analytischen"' Berechnung schon ab 1000 Elementen von den Quadraturen geringfügig Abweichen und damit auf eine ungünstige Berechnung hindeuten.
+
+\noindent
+Weiterhin wollen wir noch einmal die Laufzeit der drei Strategien in Abbildung \ref{fig:2DQuad:sem:time} betrachten. Gemessen wurde die Zeit eines Berechnungsschritt, welches wieder das Aufstellen der Matritzen und Lösen des Gleichungssystems beinhaltet. Hier erkennen wir, dass sich die Laufzeiten der drei Strategien nur minimal von einander unterscheiden. Für fast $10^4$ Elemente benötigen alle drei Berechnungsarten etwa $4*10^4$ Sekunden, was etwa elf Stunden entspricht. Da die Zeit zum Aufstellen im Vergleich der Quadraturgrade wesentlich kürzer war, können wir daraus schließen, dass die meiste Zeit beim Lösen und berechnen der Konditionszahlen verloren geht.
+
+\noindent
+Die Ergebnisse zeigen, dass wir durch Gauss-Quadratur über das kleinere Element auf $\zeta_E$-zulässigen Elementen bis an die Speichergrenze stabil rechnen können und es nicht nötig ist alle Integrale durch Quadratur zu ersetzen. Weiterhin nimmt die Art der Berechnung von $\hat V_{\ell}$ kaum Einfluss auf die Laufzeit.
+Damit haben wir in der semianalytischen Berechnung und adaptiv anisotroper Verfeinerung ein stabile Strategie für parallele Elemente gefunden.
 
 \subsection{Beispiel Fischer Würfel}
 Im Folgenden werden wir die Laplace-Gleichung
@@ -2306,7 +2317,7 @@ Siehe Abbildung \ref{fig:3DFichCube:sem}.
 \\
 \subfloat[Seitenverhältnisse auf dem Fischer Würfel \label{fig:3DFichCube:quad:hminmax}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_3DFichCube_hminmax}}
 % \\
-\subfloat[Kondition der $V_{\ell}$ Matrix \label{fig:3DFichCube:sem:cond}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_3DFichCube_cond}}
+\subfloat[Kondition der $\hat V_{\ell}$ Matrix \label{fig:3DFichCube:sem:cond}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_3DFichCube_cond}}
 % \subfloat[Berechnungszeit für das Fischer Würfel \label{fig:3DFichCube:sem:time}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_3DFichCube_time}}
 \caption{Vergleich der Berechnungsarten von $\hat V_{\ell}$ auf dem Fischer Würfel}
 \label{fig:3DFichCube:sem}
@@ -2358,19 +2369,19 @@ Siehe Abbildung \ref{fig:3DFichCube:sem}.
 % \end{itemize}
 
 
-\showMesh[Beispiel 1.1]{exmpl11}
+\showMesh[Beispiel 1.1]{exmpl11}
 \showMesh[Beispiel 1.2]{exmpl12}
 \showMesh[Beispiel 1.3]{exmpl13}
 
-\begin{figure}[ht]
-\caption{Weitere Objekt Beispiele}
-\centering
-\label{fig:objects}
-\subfloat[2D L Shape\label{fig:mesh:2DLShape}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_2DLShape_ref}}
-% \subfloat[2D Quad\label{fig:mesh:2DQuad}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_2DQuad_ref}}\\
-\subfloat[3D Cube\label{fig:mesh:3DCube}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_3DCube_ref}}
-% \subfloat[3D FichCube\label{fig:mesh:3DFichCube}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_3DFichCube_ref}}
-\end{figure}
+\begin{figure}[ht]
+\caption{Weitere Objekt Beispiele}
+\centering
+\label{fig:objects}
+\subfloat[2D L Shape\label{fig:mesh:2DLShape}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_2DLShape_ref}}
+% \subfloat[2D Quad\label{fig:mesh:2DQuad}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_2DQuad_ref}}\\
+\subfloat[3D Cube\label{fig:mesh:3DCube}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_3DCube_ref}}
+% \subfloat[3D FichCube\label{fig:mesh:3DFichCube}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_3DFichCube_ref}}
+\end{figure}
 
 \clearpage
 
index 229058344b4ed1a8994187f8241402ecb8958ce2..6be002e662f7dc0e852b39e2c5779a885e8345b3 100644 (file)
@@ -174,7 +174,7 @@ for j = 1:times
       '% absolute Zeit '  t2str(build_time - start_time)]);
     end_time = build_time - start_time;
     
-    save ([ fileo int2str(size(data,1)) '_' int2str(typ(i))]...
+    save ([ 'tmu_' int2str(size(data,1)) '_' int2str(typ(i))]...
     , 'tmu')
     
     dataS = [dataS ...