]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[doc] h gegen ell ausgetauscht
authorPeter Schaefer <peter.schaefer@tuwien.ac.at>
Wed, 18 Jul 2012 21:50:12 +0000 (23:50 +0200)
committerPeter Schaefer <peter.schaefer@tuwien.ac.at>
Wed, 18 Jul 2012 21:50:12 +0000 (23:50 +0200)
Datenstruktur komplett überarbeitet
Vorgehen etwas überarbeitet

doc/doc.pdf
doc/doc.tex
src/A_plots.m

index 34dcdaa8c4e97af06ed0cea4fa2b660aeb4820ad..fa39c80304867e548f1e7d5adf19d489a8e051b9 100644 (file)
Binary files a/doc/doc.pdf and b/doc/doc.pdf differ
index b47a27f1470091848b7a93839cd0a1877f214221..21469dba3f907c8ce5e1359f7b8d028e3091a1d7 100644 (file)
@@ -24,6 +24,9 @@
 \def\Matlab{{\sc Matlab}}
 \def\q{\Q}
 
+\let\mod\relax
+\DeclareMathOperator{\mod}{mod}
+
 \def\Ta{$T_a$}
 \def\Tb{$T_b$}
 \def\v{\boldsymbol{v}}
@@ -132,31 +135,31 @@ Nun wählen wir einen endlich-dimensionalen Teilraum $P^0(\T_n) \subseteq H^{-1/
 
 \begin{defi}\label{1}
 \begin{align}
- \langle V\phi_h,\psi_h \rangle & = \langle f,\psi_h \rangle& \forall \psi_h \in P^0(\T_h)
+ \langle V\phi_{\ell},\psi_{\ell} \rangle & = \langle f,\psi_{\ell} \rangle& \forall \psi_{\ell} \in P^0(\T_{\ell})
 \end{align}
 \end{defi}
-Gesucht ist jetzt also $\phi_h \in P^0(\T_h)$
+Gesucht ist jetzt also $\phi_{\ell} \in P^0(\T_{\ell})$
 
 \noindent
-Aus dem Max-Milgram Lemma und $X = P^0(\T_h)$ folgt wiederum, es $\exists$ eindeutige Lösung $\phi_h \in P^0(\T_h)$, da $\psi_h \in P^0(\T_h),\phi_h \in P^0(\T_h)$.
+Aus dem Max-Milgram Lemma und $X = P^0(\T_{\ell})$ folgt wiederum, es $\exists$ eindeutige Lösung $\phi_{\ell} \in P^0(\T_{\ell})$, da $\psi_{\ell} \in P^0(\T_{\ell}),\phi_{\ell} \in P^0(\T_{\ell})$.
 \begin{defi}
- Sei nun die Basis von $P^0(\T_h)$ die charakteristischen Funktionen
+ Sei nun die Basis von $P^0(\T_{\ell})$ die charakteristischen Funktionen
 \begin{align}
- \{\chi_T | T\in\T_h\} &= \{\chi_{T_1},\chi_{T_2},\dots\}
+ \{\chi_T | T\in\T_{\ell}\} &= \{\chi_{T_1},\chi_{T_2},\dots\}
 \end{align}
 \end{defi}
-So können wir mit $N = \dim P^0(\T_h)$ und $\psi_l,\phi_l\in\R$ wobei $l\in \{1\dots N\}$ schreiben
+So können wir mit $N = \dim P^0(\T_{\ell})$ und $\psi_{\ell},\phi_{\ell}\in\R$ wobei $l\in \{1\dots N\}$ schreiben
 \begin{align}
- \psi_h &= \sum_{l=1}^N \psi_l \cdot \chi_{T_l} \\
- \phi_h &= \sum_{l=1}^N \phi_l \cdot \chi_{T_l}
+ \psi_{\ell} &= \sum_{l=1}^N \psi_{\ell} \cdot \chi_{T_{\ell}} \\
+ \phi_{\ell} &= \sum_{l=1}^N \phi_{\ell} \cdot \chi_{T_{\ell}}
 \end{align}
 Dadurch können wir Definition \ref{1} nun einfacher Lösen durch:
 \begin{align}
- \langle V \phi_h,\chi_k\rangle & = \langle f, \chi_k \rangle & k = 1\dots N
+ \langle V \phi_{\ell},\chi_k\rangle & = \langle f, \chi_k \rangle & k = 1\dots N
 \end{align}
 Aufgrund der Linearität von $V$ und dem Skalarprodukt schreiben wir:
 \begin{align}
-\sum_{l=1}^N\langle V\phi_l\chi_l,\chi_k\rangle & = \langle f,\chi_k\rangle
+\sum_{l=1}^N\langle V\phi_{\ell}\chi_{\ell},\chi_k\rangle & = \langle f,\chi_k\rangle
 \end{align}
 welches sich wiederum so schreiben lässt
 \begin{defi}[Galerkinapproximation]
@@ -165,44 +168,41 @@ welches sich wiederum so schreiben lässt
 \end{align}
 wobei $\ul{\ul{V}}\in R^{N \times N},\ul{\phi}\in\R^{N \times 1},\ul{f}\in\R^{N \times 1}$
 \begin{align}
- \ul{\ul{V}}_{l,k} &= \langle V \chi_l, \chi_k \rangle\\
- \ul{\phi}_l &= \phi_l \nonumber\\
+ \ul{\ul{V}}_{\ell,k} &= \langle V \chi_{\ell}, \chi_k \rangle\\
+ \ul{\phi}_{\ell} &= \phi_{\ell} \nonumber\\
  \ul{f}_k &= \langle f, \chi_k\rangle \nonumber
 \end{align}
-Damit ist $\phi_l$ die Galerkinapproximation an $\phi$
+Damit ist $\phi_{\ell}$ die Galerkinapproximation an $\phi$
 \end{defi}
 
 
-\subsection{Vorkonditionieren}
-\begin{align}
- V \phi_{h/2} &= b\\
- D &= diag(V)\\
- A &= D \cdot V \cdot D\\
- c & = D\cdot b\\
- A\cdot y &= c\\
- \phi_{h/2} &= D \cdot y\\
-\end{align}
-
-
+% \subsection{Vorkonditionieren}
+% \begin{align}
+%  V \phi_{\ell/2} &= b\\
+%  D &= diag(V)\\
+%  A &= D \cdot V \cdot D\\
+%  c & = D\cdot b\\
+%  A\cdot y &= c\\
+%  \phi_{\ell/2} &= D \cdot y\\
+% \end{align}
 
 \subsection{Netz}
-Sei $\T_h = \{T_1,T_2,\dots,T_N\}$ eine Triangulierung von $\Gamma$.
+Sei $\T_{\ell} = \{T_1,T_2,\dots,T_N\}$ eine Triangulierung von $\Gamma$. Dann gilt:
 \begin{itemize}
  \item $\overline{\Gamma} = \bigcup_{j=1}^NT_j$
- \item $\forall T_j \in T_h$ abgeschlossen und nicht null $\abs{T_j}>0$
- \item $\abs{T_j \cap T_k} = 0$ mit $T_j,T_k\in\T_h$ und $T_j\neq T_k$
+ \item $\forall T_j \in T_{\ell}$ abgeschlossen und nicht null $\abs{T_j}>0$
+ \item $\abs{T_j \cap T_k} = 0$ mit $T_j,T_k\in\T_{\ell}$ und $T_j\neq T_k$
 \end{itemize}
-Weiterhin seien alle 
+
 
 \subsubsection{Verfeinern}
-Algoritmus zum Verfeinern
 \begin{defi}
- Sei $\T_{h/2}$ das aus der Verfeinerung von $\T_h$ resultierende Netz
+ Sei $\T_{\ell/2}$ das aus der Verfeinerung von $\T_{\ell}$ resultierende Netz
 \end{defi}
-\begin{alg}[Verfeinern] \label{alg:refine} Sei $\T_h = \{T_1,T_2,\dots,T_N\}$ eine gegebenes Netz und $marked$ eine gegebene Markierung wobei $marked_j \hat =$ Markierung von $T_j$. Nun sei $j = 0$ und gehe so vor:
+\begin{alg}[Verfeinern] \label{alg:refine} Sei $\T_{\ell} = \{T_1,T_2,\dots,T_N\}$ eine gegebenes Netz und $marked$ eine gegebene Markierung wobei $marked_j \hat =$ Markierung von $T_j$. Nun sei $j = 1$ und gehe so vor:
  \begin{enumerate}
   \renewcommand{\theenumi}{(\roman{enumi})}
-  \item falls Kante von $T_j$ hanging-note ist, markiere zusätzlich den Nachbarn und gehe zu Schritt \ref{alg:refine:last} \label{alg:refine:checkHN}
+  \item falls Kante von $T_j$ \todo{hanging-node} ist, markiere zusätzlich den Nachbarn und gehe zu Schritt \ref{alg:refine:last} \label{alg:refine:checkHN}
   \item teile $T_j$ wie in $marked_j$ vorgegeben
   \item aktualisiere Nachbarinformationen 
   \item halte fest in welche Elemente $T_j$ zerlegt wurde
@@ -220,50 +220,50 @@ sollte
   \item Berechenbar sein, also keine unbekannten enthalten
   \item Zuverlässig sein,
 \begin{align}
- \norm{\phi-\phi_h} &\leq C_{ref} \cdot \mu
+ \norm{\phi-\phi_{\ell}} &\leq C_{ref} \cdot \mu
 \end{align}
   \item Effizient sein,
 \begin{align}
- \mu &\leq C_{eff} \cdot \norm{\phi - \phi_h}
+ \mu &\leq C_{eff} \cdot \norm{\phi - \phi_{\ell}}
 \end{align}
  \end{enumerate}
 \end{defi}
 \begin{defi}[Saturationsannahme]
 \begin{align}
- \norm{\phi -\phi_{h/2}} &\leq C_{sat} \cdot \norm{\phi - \phi_h} & 0 < C_{sat} < 1
+ \norm{\phi -\phi_{\ell/2}} &\leq C_{sat} \cdot \norm{\phi - \phi_{\ell}} & 0 < C_{sat} < 1
 \end{align}
 \end{defi}
 
-\begin{defi}[$h-h/2$ - Schätzer]
+\begin{defi}[$\ell-\ell/2$ - Schätzer]
 \begin{align}
- \eta_h &:= \norm{\phi_{h/2} - \phi_h}_{H^{-1/2}}
+ \eta_{\ell} &:= \norm{\phi_{\ell/2} - \phi_{\ell}}_{H^{-1/2}}
 \end{align}
 Der Fehlerschätzer ist aber nur unter der Saturationsannahme zuverlässig und ist effizient mit $C_{\tt eff} = 1$
 \end{defi}
 Da aber die $\norm{\cdot}_{H^{1/2}}$ schlecht zu berechnen ist, wenden wir die $L_2$-Projektion an.
 \begin{defi}[ersetzen von $\norm{\cdot}_{H^{1/2}}$]
  \begin{align}
-  \mu_h &:= \norm{ \varrho^{1/2} (\phi_{h/2} - {\phi_h})}_{L_2(\Gamma)}
+  \mu_{\ell} &:= \norm{ \varrho^{1/2} (\phi_{\ell/2} - {\phi_{\ell}})}_{L_2(\Gamma)}
  \end{align}
-$\mu_h$ ist da $\mu_h \approx \eta_h$ gilt noch immer zuverlässig und effizient.
+$\mu_{\ell}$ ist da $\mu_{\ell} \approx \eta_{\ell}$ gilt noch immer zuverlässig und effizient.
 \end{defi}
-Um sich unnötige Berechnungen zu sparen ist es sinnvoll $\phi_h$ zu ersetzen.
-\begin{defi}[ersetzen von $\phi_h$]
+Um sich unnötige Berechnungen zu sparen ist es sinnvoll $\phi_{\ell}$ zu ersetzen.
+\begin{defi}[ersetzen von $\phi_{\ell}$]
  \begin{align}
-  \tilde \mu_h &:= \norm{\varrho^{1/2}(\phi_{h/2} - \Pi_h\phi_{h/2})}_{L_2(\Gamma)}
+  \tilde \mu_{\ell} &:= \norm{\varrho^{1/2}(\phi_{\ell/2} - \Pi_{\ell}\phi_{\ell/2})}_{L_2(\Gamma)}
  \end{align}
-wobei $\Pi_h$ die $L_2$ Projektion auf $P^0(\T_h)$ ist.
+wobei $\Pi_{\ell}$ die $L_2$ Projektion auf $P^0(\T_{\ell})$ ist.
 \end{defi}
 \begin{sat}[A-posteriori Fehlerschätzer] Seien also:
 \begin{align}
- \eta_h &= \enorm{\phi_{h/2} - \phi_h}\\
- \tilde\eta_h &= \enorm{\phi_{h/2} - \Pi_h\phi_{h/2}}\\
- \mu_h &= \norm{\varrho^{1/2}(\phi_{h/2} - \phi_h)}_{L^2(\Gamma)}\\
- \tilde\mu_h &= \norm{\varrho^{1/2}(\phi_{h/2} - \Pi_h\phi_{h/2})}_{L^2(\Gamma)}
+ \eta_{\ell} &= \enorm{\phi_{\ell/2} - \phi_{\ell}}\\
+ \tilde\eta_{\ell} &= \enorm{\phi_{\ell/2} - \Pi_{\ell}\phi_{\ell/2}}\\
+ \mu_{\ell} &= \norm{\varrho^{1/2}(\phi_{\ell/2} - \phi_{\ell})}_{L^2(\Gamma)}\\
+ \tilde\mu_{\ell} &= \norm{\varrho^{1/2}(\phi_{\ell/2} - \Pi_{\ell}\phi_{\ell/2})}_{L^2(\Gamma)}
 \end{align}
 Dann gilt auf isotropen Netzen:
 \begin{itemize}
- \item Schätzer sind equivalent\\ $\tilde \mu_h \leq \mu_h \leq \sqrt{2}C_3 \eta_h$
+ \item Schätzer sind equivalent\\ $\tilde \mu_{\ell} \leq \mu_{\ell} \leq \sqrt{2}C_3 \eta_{\ell}$
  \item sie sind effizient
  \item sie sind unter Saturationsannahme auch zuverlässig
 \end{itemize}
@@ -314,7 +314,7 @@ Für $p \in \{1/2 , 0 , -1/2 , -1, -3/2\}$ gilt explizit:
 Im Zuge der Berechnungen werden auch hier nur die Funktionen für bestimmte Parameter benötigt, die Untersuchung der restlichen werden wir hier nicht durchführen.
 
 \subsection{Integral über zwei Elemente}
-Bei der Integration über zwei Seitenelemente \Ta, \Tb $\in \T_l$ haben wir geometrisch zischen zwei Fällen unterschieden. Entweder die beiden Elemente liegen in parallelen Ebenen oder in orthogonalen Ebenen.
+Bei der Integration über zwei Seitenelemente \Ta, \Tb $\in \T_{\ell}$ haben wir geometrisch zischen zwei Fällen unterschieden. Entweder die beiden Elemente liegen in parallelen Ebenen oder in orthogonalen Ebenen.
 
 \subsubsection{Parallele Elemente}
 Liegen die beiden Elemente parallel zueinander lassen sie sich Folgendermaßen darstellen:
@@ -498,27 +498,40 @@ so so oder so...
 \section{Implementierung}
 
 
+
 \subsection{Datenstruktur}
-Alle Koordinaten werden in einer $ N \times 3,N \in \N$ Matrix abgespeichert.
+Für die Implementierung in \Matlab~und C++ wollen wollen wir eine einheitliche Datenstruktur einführen. 
+Die für die Triangulierung $\mathcal{T}_{\ell} = \{T_1\ldots T_M\}$ benötigen Knoten $\mathcal{K}_{\ell} = \{C_1\ldots C_N\}$ stellen wir in einer $ N \times 3$ Matrix dar. Dabei enthält die $j$-te Zeile die Koordinaten des Knoten $C_j$ im $\R^3$.
 \begin{displaymath}
- COO[i,1:3] = C_i := (x_1,x_2,x_3)^{-1} \text{ wobei } x_1,x_2,x_3 \in \R \und i \in \{1,2 \dots N\}
+ COO[j,1:3] = C_j := (x_j,y_j,z_j)^{T} \text{ wobei } x,y,z \in \R
 \end{displaymath}
-Jedes Element wird dann durch jeweils vier Koordinatenindizes als $M \times 4, M\in\N$ Matrix gespeichert. Wobei die Koordinaten links herum durchgegangen werden.
+Die Elemente $\mathcal{E}_{\ell}$ werden wir ebenfalls Zeilenweise in einer $M \times 4$ Matrix abspeichern. Dabei soll die $i$-te Zeile den Indizes der Knoten $\{C_j,C_k,C_{\ell},C_m\}$ des Elements $T_j$ entsprechen.
 \begin{displaymath}
- ELE[i,1:4] = T_i := (v_1,v_2,v_3,v_4) \text{ wobei } v_1,v_2,v_3,v_4 \in C \und i \in \{1,2 \dots M\}
+ ELE[i,1:4] = T_i := (j,k,l,m)
 \end{displaymath}
-Aufgrund der Netzstabilität wollen wir maximal zwei Nachbarn an einer Kante zulassen, weshalb wir nur $2*4$ Tinträe für die Nachbarschaftsrelationen pro Element benötigen. In der $M \times 8$ Matrix sind die Indizes der Nachbarn $n_1,n_2 \in T$ der Kante $(v_k, v_{k^{+1}}) | k\in \{1,2,3,4\}$ des Elements $T_i$ an den Stellen $NTI[i,[k,k+4]]$ gespeichert. Sollte eine Seite keinen Nachbarn haben markieren wir diese mit einer $0$. Außerdem wird an Kanten mit nur einem Nachbarn der erste Index auf den Nachbarn gesetzt und der zweite auf $0$.(Siehe Figur:\ref{exmpl3:nei:part})
-\\\noindent
-Tin ausführliches Beispiel ist in Figure \ref{exmpl3} dargestellt.
-\showMesh[Beispiel 1.3]{exmpl3}
+Die Knoten wollen wir gegen den Uhrzeigersinn anordnen und der Knoten $C_j$ soll der kleinste bezüglich der Koordinaten sein.
+
+\noindent
+Für die bessere Handhabung der Elemente beim Verfeinern der Triangulierung, wollen wir auch die Nachbarschaftsrelationen geeignet abspeichern. Dazu überlegen wir uns, dass wir Aufgrund der Netzstabilität maximal zwei Nachbarn pro Kante eines Elements zulassen wollen.
+Wir legen also eine $M \times 8$ Matrix für die Indizes der Nachbarelemente an, wobei die $i$-te Zeile die Nachbarelemente $\{T_{n_1},\ldots,T_{n_8}\}$ zum Element $T_i$ enthält.
+\begin{displaymath}
+ NEI[i,1:8] = N_i := (n_1,\ldots,n_8)
+\end{displaymath}
+Offensichtlich ist $i \notin N_i$. Wir wollen uns aber noch genauer eine geeignete Anordnung für die Nachbarelemente überlegen. Hierbei bezeichnen wir die Seite $[j,k]$ eines Elements als Seite 1 und gegen den Uhrzeigersinn alle weiteren mit $\{2,3,4\}$. Für den einfacheren Zugriff auf die Elemente einer Seite $s$, wollen wir die Nachbarelemente zur Seite $s$ unter den Indizes $n_s$ und $n_{s+4}$ abspeichern. Die Nachbarelemente $\{T_{n_s}, T_{n_{s+4}}\}$ liegen also an der Seite $s$ des Elements. Für Seiten die nur einen Nachbarn $T_{n_s}$ besitzen setzen wir $n_{s+4}=0$ und für Seiten mit keinem Nachbarn setzen wir $n_s = n_{s+4} = 0$. Daraus folgt unmittelbar, dass für $n_s =0$ auch $n_{s+4} = 0$ gilt, die Seite $s$ also keine Nachbarelemente besitzt und umgekehrt folgt aus $n_{s+4} \neq 0$ $n_s \neq 0$, womit die Seite $s$ genau zwei Nachbarelemente hat.
+(Siehe Abb.:\ref{exmpl3:nei:part})
 \begin{figure}[ht]
-\caption{Nachbarschaftsrelationen Element 4 aus \ref{exmpl3}}
+\caption{Nachbarschaftsrelationen Element 4 aus Abb.\ref{exmpl3}}
 \label{exmpl3:nei:part}
 \centering
  \subfloat[Lage]{\includegraphics{fig/Net_Neigh}}
  \subfloat[Nachbarn]{\input{fig/exmpl3_nei_part}}
 \end{figure}
 
+\noindent
+Ein ausführliches Beispiel ist in Abb.\ref{exmpl3} dargestellt.
+\showMesh[Beispiel 1.3]{exmpl3}
+
+
 
 
 \subsection{Verfeinern}
@@ -530,7 +543,7 @@ Da wir im weiteren Verlauf sowohl adaptive also auch anisotrope Netzverfeinerung
  \item halbe Teilung in zwei gleichgroße horizontal liegende Elemente
  \item halbe Teilung in zwei gleichgroße vertikal liegende Elemente
 \end{enumerate}
-Zusätzlich wurde auch Typ 5. belegt, welcher als Trgebnis eine volle Teilung 2. ausführt, diese aber schrittweise durch eine 3. Teilung und zwei 4. Teilungen. Aus Sicherheitsgründen wird auch jede vierte volle 2. Teilung durch eine 5. Teilung ausgeführt.
+Zusätzlich wurde auch Typ 5. belegt, welcher als Trgebnis eine volle Teilung 2. ausführt, diese aber schrittweise durch eine 3. Teilung und zwei 4. Teilungen. Aus Sicherheitsgründen wird auch jede vierte volle 2. Teilung durch eine 5. Teilung ausgeführt, da sonst kurzzeitig Seiten mit mehr als zwei Elementen auftreten könnten.
 
 Damit jedem Element $T_i$ eine Teilungsart zugeordnet werden kann, haben wir einen Markierungsvektor $marked \in {1,2,3,4,5}^M$ eingeführt. Dabei entspricht $marked_i$ der Art der Teilung für das Element $T_i$. Um isotrope und auch uniforme Teilungen zu erleichtern kann statt dem Vektor $marked$ auch nur ein Skalar übergeben werden $marked \in {1,2\dots5}$, wodurch jedes Element mit der gewählten Art verfeinert wird.
 
@@ -539,8 +552,8 @@ Relevant zum Verfeinern eines Netzes sind also die Koordinaten $COO$, Elemente $
 Da wir später einen Fehlerschätzer berechnen wollen, ist es wichtig sich zu jedem Element seine Teilelemente zu merken. Dazu legen wir während der Teilung eine $M \times 4$ Matrix an, in der die maximal vier Elementindizes gespeichert sind. Wenn wir also ein Element in vier gleich große Teile verfeinern, so wird das neue Element links unten das erste sein und alle weiteren folgen gegen den Uhrzeigersinn. Teilen wir ein Element in zwei gleich große Elemente, so werden die doppelt belegten Quadranten auch doppelt eingetragen. Ein gar nicht geteiltes Element wird also vier mal den alten Indizes speichern. Dadurch wird sicher gestellt, dass das arithmetische Mittel über die Elemente immer gültig auszuführen ist.
 (Siehe Figur:\ref{exmpl3:f2s})
 
-$[\T_{1/2}, F2S ] = refineQuad(\T, marked);$\\
-$[COO_{fine}, ELE_{fine}, NTI_{fine}, F2S ] = refineQuad(COO, ELE, NTI, marked);$
+$[\T_{\ell/2}, F2S ] = refineQuad(\T_{\ell}, marked);$\\
+$[COO_{fine}, ELE_{fine}, NEI_{fine}, F2S ] = refineQuad(COO, ELE, NEI, marked);$
 
 \begin{figure}[ht]
 \caption{VaterSohn}
@@ -552,24 +565,24 @@ $[COO_{fine}, ELE_{fine}, NTI_{fine}, F2S ] = refineQuad(COO, ELE, NTI, marked);
 
 \subsection{Fehlerschätzer}
 \begin{eqnarray*}
-%\mu_l^2 & = & \norm{\varrho_l^{1/2}(\phi_{\frac l 2}-\Pi_l\phi_{\frac l 2})}_{\L^2(\T)}^2 \\
-%& = &\sum_{T\in \T_l}\mu_l(T)^2\\
-\mu_l(T)^2 & = & \norm{\varrho_l^{1/2}(\phi_{\frac l 2}-\Pi_l\phi_{\frac l 2})}_{\L^2(\T)}^2 \\
-& = & h_{min}(T)\norm{\phi_{\frac l 2}-\Pi_l\phi_{\frac l 2}}_{\L^2(\T)}^2 \\
-&& T_j \in \tau_l, t_j^{(1)},\dots,t_j^{(4)} \in \tau_{\frac l 2} \\
+%\mu_{\ell}^2 & = & \norm{\varrho_{\ell}^{1/2}(\phi_{\frac l 2}-\Pi_{\ell}\phi_{\frac l 2})}_{\L^2(\T)}^2 \\
+%& = &\sum_{T\in \T_{\ell}}\mu_{\ell}(T)^2\\
+\mu_{\ell}(T)^2 & = & \norm{\varrho_{\ell}^{1/2}(\phi_{\frac l 2}-\Pi_{\ell}\phi_{\frac l 2})}_{\L^2(\T)}^2 \\
+& = & h_{min}(T)\norm{\phi_{\frac l 2}-\Pi_{\ell}\phi_{\frac l 2}}_{\L^2(\T)}^2 \\
+&& T_j \in \tau_{\ell}, t_j^{(1)},\dots,t_j^{(4)} \in \tau_{\frac l 2} \\
 \phi_{\frac l 2}|_{T_j} & = &x_j^{(1)}\chi_{t_j^{(1)}}+\dots+x_j^{(4)}\chi_{t_j^{(4)}}\\
-\Pi_l\phi_{\frac l 2}|_{T_j}&=&\frac 1 {\abs{T_j}}\int_{T_j}\phi_{\frac l 2}d\Gamma\\
+\Pi_{\ell}\phi_{\frac l 2}|_{T_j}&=&\frac 1 {\abs{T_j}}\int_{T_j}\phi_{\frac l 2}d\Gamma\\
 & =&\frac 1 {\abs{T_j}}\sum_{k=1}^4x_j^{(k)}\int_{t^{(k)}}1d\Gamma\\
 & =&\frac 1 {\abs{T_j}}\sum_{k=1}^4x_j^{(k)}\abs{t_j^{(k)}}\\
 & =&\frac 1 {\abs{T_j}}\sum_{k=1}^4x_j^{(k)}\frac {\abs{T_j}} 4 \\
 & =&\frac 1 4 (x_j^{(1)} +\dots+x_j^{(4)} )=: m_j\\
-\norm{\phi_{\frac l 2} - \Pi_l\phi_{\frac l 2}}_{\L^2(T_j)}^2
-&=&\sum_{k=1}^4\norm{\phi_{\frac l 2} - \Pi_l\phi_{\frac l 2}}_{\L^2\left(t_j^{(k)}\right)}^2\\
-&=&\sum_{k=1}^4 \int_{t_j^{(k)}}(\phi_{\frac l 2} - \Pi_l\phi_{\frac l 2})^2d\Gamma\\
+\norm{\phi_{\frac l 2} - \Pi_{\ell}\phi_{\frac l 2}}_{\L^2(T_j)}^2
+&=&\sum_{k=1}^4\norm{\phi_{\frac l 2} - \Pi_{\ell}\phi_{\frac l 2}}_{\L^2\left(t_j^{(k)}\right)}^2\\
+&=&\sum_{k=1}^4 \int_{t_j^{(k)}}(\phi_{\frac l 2} - \Pi_{\ell}\phi_{\frac l 2})^2d\Gamma\\
 &=&\sum_{k=1}^4 \int_{t_j^{(k)}}(x_j^{(k)}-m_j)^2d\Gamma\\
 &=&\sum_{k=1}^4 \abs{t_j^{(k)}}(x_j^{(k)}-m_j)^2\\
 &=&\frac {\abs{T_j}} 4\sum_{k=1}^4 (x_j^{(k)}-m_j)^2\\
-\mu_l(T_j)^2 & = & \frac{ h_{min}(T_j) \abs{T_j}}{4} \sum_{k=1}^4{(x_j^{(k)}-m_j)^2}
+\mu_{\ell}(T_j)^2 & = & \frac{ h_{min}(T_j) \abs{T_j}}{4} \sum_{k=1}^4{(x_j^{(k)}-m_j)^2}
 \end{eqnarray*}
 
 $mu = computeTstSlpMuTilde(x_{fine}, \T, F2S);$\\
@@ -579,9 +592,9 @@ $mu = computeTstSlpMuTilde(x_{fine}, COO, ELE, F2S);$
 
 
 \subsection{Markieren}
-Bestimme $M_l \subseteq T_l$ mit minimaler Kardinalität
+Bestimme $M_{\ell} \subseteq T_{\ell}$ mit minimaler Kardinalität
 \begin{eqnarray*}
-\theta \sum_{T\in T_l} \mu_e(T)^2 & \leq & \sum_{T\in M_l} \mu_l(T)^2
+\theta \sum_{T\in T_{\ell}} \mu_{\ell}(T)^2 & \leq & \sum_{T\in M_{\ell}} \mu_{\ell}(T)^2
 \end{eqnarray*}
 Zur anisotropen Verfeinerung wird weiterhin berechnet:
 \begin{eqnarray*}
@@ -621,33 +634,32 @@ $V = mex\_build\_AU(COO,ELE,zeta,type)$
 
 
 \subsection{Vorgehensweise}
-Mithilfe der oben Definierten Funktionen ist es uns nun möglich den Ablauf der Verfeinerungen zusammen zu fassen.
-
+Mithilfe der oben Definierten Funktionen ist es uns nun möglich den Ablauf der Berechnungen zusammen zu fassen.
 
 $\theta \in (0,1),i =0$
 \begin{enumerate}
  \renewcommand{\theenumi}{(\roman{enumi})}
- \item Verfeinere $T_l^{(i)}$ um $T_{l/2}^{(i)}$ zu erhalten
- \item Berechne die Galerkinlösung $\phi_{l/2}^{(i)} \in P^0(\T_{l/2}^{(i)})$
- \item Berechne Fehlerschätzer $\tilde \mu_{l,i} := \norm{\varrho^{1/2}(\phi_{l/2}^{(i)} - \Pi_l \phi_{l/2}^{(i)} )}$
- \item Wähle $M_l^{(i)} \subseteq T_l^{(i)}$ mit minimaler Kardinalität, so dass
+ \item Verfeinere $T_{\ell}^{(i)}$ um $T_{\ell/2}$ zu erhalten
+ \item Berechne die Galerkinlösung $\phi_{\ell/2} \in P^0(\T_{\ell/2})$
+ \item Berechne Fehlerschätzer $\tilde \mu_{i} := \norm{\varrho^{\ell/2}(\phi_{\ell/2} - \Pi_{\ell} \phi_{\ell/2} )}$
+ \item Wähle $M_{\ell} \subseteq T_{\ell}^{(i)}$ mit minimaler Kardinalität, so dass
 \begin{align}
- \theta \sum_{T\in \T^{(i)}_l} \tilde\mu_{l,i}^2 & \leq  \sum_{T\in M^{(i)}_l} \tilde\mu_{l,i}^2
+ \theta \sum_{T\in \T^{(i)}_{\ell}} \tilde\mu_{i}^2 & \leq  \sum_{T\in M_{\ell}} \tilde\mu_{i}^2
 \end{align}
- \item Verfeinere die Markierten Elemente $M_l^{(i)}$ um $\T_l^{(i+1)}$ zu erhalten
+ \item Verfeinere die Markierten Elemente $M_{\ell}$ um $\T_{\ell}^{(i+1)}$ zu erhalten
  \item $i \mapsto i+1$, gehe zu $(i)$
 \end{enumerate}
 
 Zum Plotten (\ref{exmplAA_2DQuad})werden noch folgende Schritte ausgeführt
 \begin{itemize}
- \item Berechne Galerkinlösung $\phi_{l}^{(i)} \in P^0(\T_l^{(i)})$
-%  \item $\enorm{\phi^{(i)}_{l/2}}$
-%  \item $\enorm{\phi^{(i)}_l}$
- \item $error =  \sqrt{\enorm{\phi}^2 - \enorm{\phi_{l}^{(i)}}^2}$
- \item $\mu_{l,i} = \norm{\varrho^{1/2}(\phi_{l/2}^{(i)} - \phi_{l}^{(i)} )}$
- \item $\eta_{l,i} = \enorm{\phi_{l/2}^{(i)} - \phi_{l}^{(i)}}$
- \item $\kappa_{l,i} = \sqrt{\enorm{\phi_{l/2}^{(i)}}-\enorm{\phi_{l/2}^{(i-1)}}}$
- \item $\kappa2_{l,i} = \sqrt{\enorm{\phi_{l}^{(i)}}-\enorm{\phi_{l}^{(i-1)}}}$
+ \item Berechne Galerkinlösung $\phi_{l} \in P^0(\T_{\ell}^{(i)})$
+%  \item $\enorm{\phi_{\ell/2}}$
+%  \item $\enorm{\phi_{\ell}}$
+ \item $error_{i} =  \sqrt{\enorm{\phi}^2 - \enorm{\phi_{l}}^2}$
+ \item $\mu_{i} = \norm{\varrho^{1/2}(\phi_{\ell/2} - \phi_{l} )}$
+ \item $\eta_{i} = \enorm{\phi_{\ell/2} - \phi_{l}}$
+ \item $\kappa_{i} = \sqrt{\enorm{\phi_{\ell/2}}-\enorm{\phi_{\ell/2}^{(i-1)}}}$
+ \item $\kappa2_{i} = \sqrt{\enorm{\phi_{l}}-\enorm{\phi_{l}^{(i-1)}}}$
 \end{itemize}
 
 \begin{figure}[ht]
index e3e8bfba9daa6a77423ea2616158c224e0442150..9c4923ce0e61f4590b496d48e2ad3af23367c744 100644 (file)
@@ -1,6 +1,7 @@
 function A_plots(files,printt)
 
-type2str = {'Analytisch  '   'Quad Element'   'Quad Achse  '  'Quad Seite  '};
+% type2str = {'Analytisch  '   'Quad Element'   'Quad Achse  '  'Quad Seite  '};
+type2str = {'A  '   'QE'   'QA  '  'QS  '};
 type2sym = {'-o' '-x' '-' '-'};
 
 G_D=[];
@@ -79,8 +80,8 @@ else
 %     data((end-8):end,[1 [3 4 5]])
     
 %     sol = interp1(1./X((round(1)):(end),4)',G_D((round(1)):(end),4)',0,'spline')
-    sol = 8.28466; % LShape
-    sol = 4.609193; % Quad
+    sol = 8.28466; % LShape
+    sol = 4.609193; % Quad
 
 % G_D