From: Peter Schaefer Date: Mon, 24 Jun 2013 19:10:00 +0000 (+0200) Subject: [doc] kleine Fehler behoben und große markiert X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=c1bff879bf6b4dd607a1dea367b3f33cce5b9532;p=bacc.git [doc] kleine Fehler behoben und große markiert --- diff --git a/doc/doc.bib b/doc/doc.bib index 0ca6e71..3e41d10 100644 --- a/doc/doc.bib +++ b/doc/doc.bib @@ -1,94 +1,112 @@ -@comment{x-kbibtex-personnameformatting=<%l><, %f>} - -% This file was created with JabRef 2.7b. +% This file was created with JabRef 2.9b2. % Encoding: UTF-8 -@article{bor:errbox, - abstract = "A central component of the analysis of panel clustering techniques for the approximation of integral operators is the so-called η -admissibility condition `` min {diam(τ),diam(σ)} ≤ 2ηdist(τ,σ)'' that ensures that the kernel function is approximated only on those parts of the domain that are far from the singularity. Typical techniques based on a Taylor expansion of the kernel function require a subdomain to be ``far enough'' from the singularity such that the parameter η has to be smaller than a given constant depending on properties of the kernel function. In this paper, we demonstrate that any η is sufficient if interpolation instead of Taylor expansion␣is␣used for the kernel approximation, which paves the way for grey-box panel clustering algorithms.", - author = "B{\"o}rm, Steffen and Grasedyck, Lars", - doi = "10.1007/s00607-003-0036-0", - issn = "0010-485X", - issue = "3-4", - journal = "Computing", - owner = "treecity", - pages = "325--332", - publisher = "Springer-Verlag", - timestamp = "2013.02.11", - title = "{Low-Rank Approximation of Integral Operators by Interpolation}", - url = "http://dx.doi.org/10.1007/s00607-003-0036-0", - volume = "72", - year = "2004" +@ARTICLE{bor:errbox, + author = {B{\"o}rm, Steffen and Grasedyck, Lars}, + title = {{Low-Rank Approximation of Integral Operators by Interpolation}}, + journal = {Computing}, + year = {2004}, + volume = {72}, + pages = {325--332}, + abstract = {A central component of the analysis of panel clustering techniques + for the approximation of integral operators is the so-called η -admissibility + condition `` min {diam(τ),diam(σ)} ≤ 2ηdist(τ,σ)'' that ensures that + the kernel function is approximated only on those parts of the domain + that are far from the singularity. Typical techniques based on a + Taylor expansion of the kernel function require a subdomain to be + ``far enough'' from the singularity such that the parameter η has + to be smaller than a given constant depending on properties of the + kernel function. In this paper, we demonstrate that any η is sufficient + if interpolation instead of Taylor expansion␣is␣used for the kernel + approximation, which paves the way for grey-box panel clustering + algorithms.}, + doi = {10.1007/s00607-003-0036-0}, + issn = {0010-485X}, + issue = {3-4}, + owner = {treecity}, + publisher = {Springer-Verlag}, + timestamp = {2013.02.11}, + url = {http://dx.doi.org/10.1007/s00607-003-0036-0} } -@article{dor:adapt, - abstract = "We construct a converging adaptive algorithm for linear elements applied to Poisson's equation in two space dimensions. Starting from a macro triangulation, we describe how to construct an initial triangulation from a priori information. Then we use a posteriori error estimators to get a sequence of refined triangulations and approximate solutions. It is proved that the error, measured in the energy norm, decreases at a constant rate in each step until a prescribed error bound is reached. Extensions to higher-order elements in two space dimensions and numerical results are included.", - author = "D{\"o}rfler, Willy", - copyright = "Copyright © 1996 Society for Industrial and Applied Mathematics", - issn = "00361429", - journal = "SIAM Journal on Numerical Analysis", - jstor_articletype = "research-article", - jstor_formatteddate = "Jun., 1996", - number = "3", - owner = "treecity", - pages = "pp. 1106--1124", - publisher = "Society for Industrial and Applied Mathematics", - timestamp = "2012.10.04", - title = "{A Convergent Adaptive Algorithm for Poisson's Equation}", - url = "http://www.jstor.org/stable/2158497", - volume = "33", - year = "1996" +@ARTICLE{dor:adapt, + author = {D{\"o}rfler, Willy}, + title = {{A Convergent Adaptive Algorithm for Poisson's Equation}}, + journal = {SIAM Journal on Numerical Analysis}, + year = {1996}, + volume = {33}, + pages = {1106--1124}, + number = {3}, + abstract = {We construct a converging adaptive algorithm for linear elements applied + to Poisson's equation in two space dimensions. Starting from a macro + triangulation, we describe how to construct an initial triangulation + from a priori information. Then we use a posteriori error estimators + to get a sequence of refined triangulations and approximate solutions. + It is proved that the error, measured in the energy norm, decreases + at a constant rate in each step until a prescribed error bound is + reached. Extensions to higher-order elements in two space dimensions + and numerical results are included.}, + copyright = {Copyright © 1996 Society for Industrial and Applied Mathematics}, + issn = {00361429}, + jstor_articletype = {research-article}, + jstor_formatteddate = {Jun., 1996}, + owner = {treecity}, + publisher = {Society for Industrial and Applied Mathematics}, + timestamp = {2012.10.04}, + url = {http://www.jstor.org/stable/2158497} } -@article{fer:errbem, - author = "Ferraz-Leite, Samuel and Praetorius, Dirk", - journal = "Computing", - number = "4", - pages = "135--162", - title = "{Simple a posteriori error estimators fot the h-version of the boundary element method}", - volume = "83", - year = "2008" +@PHDTHESIS{fer:fehlsym, + author = {Ferraz-Leite, Samuel}, + title = {{A posteriori Fehlersch{\"a}tzer f{\"u}r die Symmsche Integralgleichung}} } -@techreport{mai:3dbem, - author = "Maischak, Matthias", - institution = "Institut f{\"u}r Angewandte Mthematik, University of Hannover", - month = jul, - title = "{The analytical computation of the Galerkin elements for the Laplace, Lam{\'e} and Helmholtz equation in 3D-BEM}", - year = "2000" +@ARTICLE{fer:errbem, + author = {Ferraz-Leite, Samuel and Praetorius, Dirk}, + title = {{Simple a posteriori error estimators fot the h-version of the boundary + element method}}, + journal = {Computing}, + year = {2008}, + volume = {83}, + pages = {135--162}, + number = {4} } -@book{pla:nummat, - author = "Plato, Robert", - owner = "treecity", - publisher = "Vieweg Verlag", - timestamp = "2013.02.11", - title = "{Numerische Mathematik kompakt}", - year = "2006" +@TECHREPORT{mai:3dbem, + author = {Maischak, Matthias}, + title = {{The analytical computation of the Galerkin elements for the Laplace, + Lam{\'e} and Helmholtz equation in 3D-BEM}}, + institution = {Institut f{\"u}r Angewandte Mthematik, University of Hannover}, + year = {2000}, + month = jul } -@unpublished{pra:hmat, - author = "Praetorius, Dirk", - owner = "treecity", - timestamp = "2013.02.11", - title = "{Hierarchische Matrizen und Fast Multipole Method}", - year = "2009" +@BOOK{pla:nummat, + title = {{Numerische Mathematik kompakt}}, + publisher = {Vieweg Verlag}, + year = {2006}, + author = {Plato, Robert}, + owner = {treecity}, + timestamp = {2013.02.11} } -@phdthesis{fer:fehlsym, - author = "Ferraz-Leite, Samuel", - title = "{A posteriori Fehlersch{\"a}tzer f{\"u}r die Symmsche Integralgleichung}" +@UNPUBLISHED{pra:hmat, + author = {Praetorius, Dirk}, + title = {{Hierarchische Matrizen und Fast Multipole Method}}, + year = {2009}, + owner = {treecity}, + timestamp = {2013.02.11} } -@incollection{stb:fem, - author = "Steinbach, Olaf", - booktitle = "{Numerische N{\"a}herungsverfahren f{\"u}r elliptische Randwertprobleme}", - doi = "10.1007/978-3-322-80054-1_10", - isbn = "978-3-519-00436-3", - pages = "212--225", - publisher = "Vieweg+Teubner Verlag", - series = "{Advances in Numerical Mathematics}", - title = "{Randelemente}", - url = "http://dx.doi.org/10.1007/978-3-322-80054-1_10", - year = "2003" +@INCOLLECTION{stb:fem, + author = {Steinbach, Olaf}, + title = {{Randelemente}}, + booktitle = {{Numerische N{\"a}herungsverfahren f{\"u}r elliptische Randwertprobleme}}, + publisher = {Vieweg+Teubner Verlag}, + year = {2003}, + pages = {212--225}, + doi = {10.1007/978-3-322-80054-1_10}, + isbn = {978-3-519-00436-3}, + url = {http://dx.doi.org/10.1007/978-3-322-80054-1_10} } diff --git a/doc/doc.pdf b/doc/doc.pdf index 8b0d326..7760430 100644 Binary files a/doc/doc.pdf and b/doc/doc.pdf differ diff --git a/doc/doc.tex b/doc/doc.tex index 8fe8233..0a62d94 100644 --- a/doc/doc.tex +++ b/doc/doc.tex @@ -14,7 +14,7 @@ %\usepackage[final,numbered]{mcode} \usepackage{colortbl} %Einfache Färbungen in Tabellen \usepackage{color} %Farben benutzen und Definieren -\usepackage{subfig} %mehrere Figuren in einer +\usepackage{subfig} %mehrere Abbildungen in einer %\usepackage{bibgerm} %Zitate und Referenzen Stil \usepackage{babelbib} @@ -239,11 +239,11 @@ wobei $\varDelta u := \partial_x^2u+\partial_y^2u+\partial_z^2u$ den Laplace-Ope \subsection{Galerkin-Verfahren} -Die Fundamentallösung des Laplaceoperators \cite[Kapitel 5.1]{stb:fem} ist für $\Omega \subset \R^3$ gegeben durch +Die Fundamentallösung des Laplace-Operators \cite[Kapitel 5.1]{stb:fem} ist für $\Omega \subset \R^3$ gegeben durch \begin{align*} % \label{math:slp:fundamental} G(\bs z) := \frac 1 {4 \pi \abs{\bs z}}. \end{align*} -Weiterhin sei das Einfachschichtpotential $\tilde V$ gegeben durch +Weiterhin ist das Einfachschichtpotential $\tilde V$ gegeben durch \begin{align*} % \label{math:slp:tildeV} \tilde V\phi(\bs x) := \int_{\Gamma} G(\bs x -\bs y)\phi(\bs y) ds_{\bs y} \quad \text{für } \bs x \in \Omega. \end{align*} @@ -274,10 +274,12 @@ mit $V := \gamma_0\tilde V$ gilt. Ziel ist es nun, aus \eqref{math:slp:gls} eine Dann ist $\tilde V\phi$ die Lösung des Problems \eqref{math:slp:lapGLS}. \noindent -Da wir das Problem \eqref{math:slp:gls} im Allgemeinen nicht exakt lösen können, werden wir es mithilfe des Galerkin-Verfahrens näherungsweise lösen. Die Idee dabei ist $H^{-1/2}(\Gamma)$ durch einen endlich dimensionalen Unterraum zu ersetzen. +Da wir das Problem \eqref{math:slp:gls} im Allgemeinen nicht exakt lösen können, werden wir es mithilfe des Galerkin-Verfahrens näherungsweise lösen. Die Idee dabei ist, $H^{-1/2}(\Gamma)$ durch einen endlich dimensionalen Unterraum zu ersetzen. \noindent -Bezeichne nun $\langle \cdot, \cdot \rangle$ das erweiterte $L^2$-Skalarprodukt, so existiert, da das Einfachschichtpotential $V$ ein symmetrischer und mit geeigneter Skalierung elliptischer Isomorphismus ist, auf $\widetilde H^{-1/2}$ ein äquivalentes Skalarprodukt $\llangle \cdot, \cdot \rrangle$ mit $\llangle \phi, \psi \rrangle := \langle V\phi,\psi\rangle$ und der induzierten Norm $\enorm{\cdot}$. +Bezeichne nun $\langle \cdot, \cdot \rangle$ das erweiterte $L^2$-Skalarprodukt, so existiert, da das Einfachschichtpotential $V$ ein symmetrischer und +% mit geeigneter Skalierung +elliptischer Isomorphismus ist, auf $\widetilde H^{-1/2}$ ein äquivalentes Skalarprodukt $\llangle \cdot, \cdot \rrangle$ mit $\llangle \phi, \psi \rrangle := \langle V\phi,\psi\rangle$ und der induzierten Norm $\enorm{\cdot}$. Sei nun $\phi$ die eindeutige Lösung von \eqref{math:slp:gls} und bezeichne $g$ die Dirichlet-Daten am Rand. Dann gilt \begin{align} \llangle \phi,\psi\rrangle = \langle g,\psi\rangle \quad \text{für alle }\psi \in \widetilde H^{-1/2}. @@ -313,7 +315,7 @@ So schreiben wir mit $\bs V = (\llangle \chi_j,\chi_i\rrangle)_{ij}$ und $\bs g_{\ell}= (\langle g, \chi_j\rangle)_j$. In Integralschreibweise können wir $\bs V$ anschreiben als \begin{align} - \bs V_{ij} := \frac 1 {4\pi} \int_{T_j} \int_{T_k} \frac {1}{\abs{\bs x - \bs y}} ds_{\bs y} ds_{\bs x} + \bs V_{ij} := \frac 1 {4\pi} \int_{T_j} \int_{T_k} \frac {1}{\abs{\bs x - \bs y}} ds_{\bs y} ds_{\bs x}. \end{align} @@ -330,7 +332,7 @@ achsenorientiertes Rechteck. Ferner sei \end{align*} die zu $T$ zugehörige Parametrisierung. \end{defi} -\begin{bem}\label{thm:bem:bez}Weiterhin werden wir die vier Eckpunkte des achsenorientierten Rechtecks, beginnend in $\bs v$, mit $\bs k_1,\ldots,\bs k_4$ bezeichnen, wobei die Menge aller Knoten des Rechtecks $\K_T$ sei. Die Reihenfolge der Knoten sei dabei so gewählt, dass der Normalenvektor $\bs n = \overline {\bs k_1\bs k_2}\times\overline {\bs k_1\bs k_4}$ nach außen zeigt. Außerdem benennen wir die Menge der Kanten mit $\E_T$, bestehend aus den vier Kanten $e_1,\ldots,e_4$. In Abbildung~\ref{fig:net:single} wurde ein Rechteck mit den Bezeichnungen kurz skizziert. +\begin{bem}\label{thm:bem:bez}Weiterhin werden wir die vier Eckpunkte des achsenorientierten Rechtecks, beginnend in $\bs v$, mit $\bs k_1,\ldots,\bs k_4$, also $\bs v = \bs k_1$, bezeichnen, wobei die Menge aller Knoten des Rechtecks $\K_T$ sei. Die Reihenfolge der Knoten sei dabei so gewählt, dass der Normalenvektor $\bs n = \overline {\bs k_1\bs k_2}\times\overline {\bs k_1\bs k_4}$ nach außen zeigt. Außerdem benennen wir die Menge der Kanten mit $\E_T$, bestehend aus den vier Kanten $e_1,\ldots,e_4$. In Abbildung~\ref{fig:net:single} wurde ein Rechteck mit den Bezeichnungen kurz skizziert. \end{bem} \begin{figure}[ht] \centering @@ -366,7 +368,7 @@ wobei das Minimum aufgrund der Kompaktheit von $T_j, T_k$ angenommen wird. Weite \begin{align*} \dist_{\bs a}(T_j,T_k) &= \min \{\abs{\bs a^T \cdot (\bs x-\bs y)} ~|~ \bs x \in T_j,\bs y \in T_k\} \end{align*} -mit dem Skalarprodukt $\cdot$ und $\bs a \in \{(1,0,0)^T,(0,1,0)^T,(0,0,1)^T\}$. +mit dem Skalarprodukt $(\cdot)$ und $\bs a \in \{(1,0,0)^T,(0,1,0)^T,(0,0,1)^T\}$. \end{defi} Mit diesen Vorüberlegungen definieren wir uns die Diskretisierung des Randes $\Gamma$. \begin{defi}\label{thm:def:part} @@ -402,7 +404,7 @@ Ein Element $T \in \T$ wird isotrop in vier Elemente $T_1,\ldots,T_4$ geteilt, w \subfloat[isotrope Teilung]{\includegraphics[width=0.25\textwidth]{fig/refType_2}} \subfloat[vertikale Teilung]{\includegraphics[width=0.25\textwidth]{fig/refType_3}} \subfloat[horizontal Teilung]{\includegraphics[width=0.25\textwidth]{fig/refType_4}} -\caption{\small Entsprechend der Definition \ref{thm:bem:localREF}, wird ein markiertes Element durch isotrope Teilung in vier ähnliche Elemente geteilt. Durch vertikale Teilung werden die beiden vertikalen Kanten halbiert, wodurch zwei übereinander liegende ähnliche Elemente entstehen. Die beiden horizontalen Kanten werden durch horizontale Teilung halbiert, hierbei entstehen zwei ähnliche nebeneinander liegende Elemente.} +\caption{\small Entsprechend der Definition \ref{thm:bem:localREF} wird ein markiertes Element durch isotrope Teilung in vier ähnliche Elemente geteilt. Durch vertikale Teilung werden die beiden vertikalen Kanten halbiert, wodurch zwei übereinander liegende ähnliche Elemente entstehen. Die beiden horizontalen Kanten werden durch horizontale Teilung halbiert, hierbei entstehen zwei ähnliche nebeneinander liegende Elemente.} \label{fig:refType} \end{figure} @@ -424,7 +426,7 @@ Für das Verständnis des folgenden Algorithmus benötigen wir noch einige Beoba $\sqcap_{\ell}^{(i+1)} := \sqcap_{\ell}^{(i+1/2)} \cup \{(e,T) \in \S_{\ell}\backslash\sqcap_{\ell}^{(i+1/2)} ~|~ \exists (\tilde e,\tilde T) \in \sqcap_{\ell}^{(i+1/2)}$ mit $T=\tilde T$ und $e\cap \tilde e=\emptyset\}$ \item Falls $\sqcap_{\ell}^{(i)} \subsetneqq \sqcap_{\ell}^{(i+1)}$, erhöhe Zähler $i \mapsto i+1$ und gehe zu Schritt \ref{alg:refine:first} - \item Teile alle Elemente aus $\T_{\ell}$ bezüglich der markierten Kanten $\sqcap_{\ell}^{(i)}$, wie in Definition \ref{thm:bem:localREF}. + \item Teile alle Elemente aus $\T_{\ell}$ bezüglich der markierten Kanten $\sqcap_{\ell}^{(i)}$, Definition \ref{thm:bem:localREF} erfüllend. \end{enumerate} \end{alg} @@ -450,14 +452,14 @@ Ziel dieses Abschnitts ist die approximative Berechnung des Integrals \begin{align}\label{math:gal:kap} A_{jk} &= \int_{T_j} \int_{T_k} \kappa(\bs x,\bs y) ds_{\bs y} ds_{\bs x}, \end{align} -auf achsenorientierten Rechtecken $T_j,T_k \subset \R^3$ beziehungsweise als Spezialfall davon die Berechnung des Integrals +auf achsenorientierten Rechtecken $T_j,T_k \subset \R^3$, beziehungsweise als Spezialfall davon die Berechnung des Integrals \begin{align}\label{math:gal:kap+} -A_{jk} &= \int_{T_j} \int_{T_k} \frac{1}{|\bs x- \bs y|} ds_{\bs y} ds_{\bs x}. +A_{jk} &= \int_{T_j} \int_{T_k} \frac{1}{|\bs x- \bs y|} ds_{\bs y} ds_{\bs x}, \end{align} unter bestimmten Voraussetzungen an die affinen Randstücke $T_j,T_k$ und den asymptotisch glatten Integranden $\kappa : \R^3 \times \R^3 \to \R$. \subsection{Interpolation} -An dieser Stelle werden wir zunächst den Interpolationsoperator auf dem Intervall $[0,1]$ definieren. Ferner wollen wir mithilfe von Chebyshev-Knoten eine Fehlerabschätzung für die Chebyshev'sche Interpolation auf Intervallen $[0,1]^d$ mit $d \in \N$ definieren. Im Folgenden bezeichnet $\P^p$ die Menge aller Polynome vom Grad höchstens $p$ auf $[0,1]$. +An dieser Stelle werden wir zunächst den Interpolationsoperator auf dem Intervall $[0,1]$ definieren. Ferner wollen wir mithilfe von Chebyshev-Knoten eine Fehlerabschätzung für die Chebyshev'sche Interpolation auf d-dimensionalen Würfeln $[0,1]^d$ mit $d \in \N$ definieren. Im Folgenden bezeichnet $\P^p$ die Menge aller Polynome vom Grad höchstens $p$ auf $[0,1]$. \begin{defi} Für einen festen Grad $p \in \N$ und paarweise verschiedene Knoten $x_j \in [0,1]$ lautet das Lagrange'sche Interpolationsproblem: @@ -474,7 +476,7 @@ wobei die Lagrange-Polynome $L_j$ definiert sind durch \begin{align*} L_j(x) &= \prod_{\genfrac{}{}{0pt}{}{i=0}{i\neq j}}^p \frac{x-x_i}{x_j-x_i}. \end{align*} -Mit diesem Wissen definieren wir uns nun den Interpolationsoperator $\I_p : \C[0,1]\to P^{p}$ +Mit diesem Wissen definieren wir uns nun den Interpolationsoperator $\I_p : \C[0,1]\to \P^{p}$ \begin{align*} \I_pu &:= \sum_{j=0}^p u(x_j)L_j. \end{align*} @@ -568,7 +570,7 @@ Zunächst wollen wir zeigen, dass wir die vier Integrale aus \eqref{math:gal:kap Wie wir im Folgenden sehen werden, lassen sich asymptotisch glatte Kernfunktionen außerhalb des Singularitätsbereichs gut durch Polynome interpolieren. Hierzu benötigen wir aus \cite[Theorem 3.2]{bor:errbox} das folgende Lemma: \begin{lem}\label{thm:sem:ipolnD} %Interpol über Glatten KERN nD -Die Funktion $u \in \C^{\infty}([0,1])^d$ erfülle für Konstanten $C_u,\rho_u > 0$ +Die Funktion $u \in \C^{\infty}([0,1]^d)$ erfülle für Konstanten $C_u,\rho_u > 0$ \begin{align*} \norm{\partial_j^nu}_{\infty,{[0,1]^d}} &\leq C_u \rho_u^nn!\quad\text{~für alle~} j \in \{1,\ldots,d\} \text{~und~} n \in \N_0. \end{align*} @@ -601,7 +603,7 @@ Weiterhin wollen wir uns kurz die Ableitung der asymptotisch glatten Kernfunktio \abs{\partial^{\alpha}(\kappa \circ g)(\lambda)} &= \diam_{\bs a}(T_j)^{\alpha_1}\diam_{\bs b}(T_j)^{\alpha_2} \diam_{\tilde{\bs a}}(T_k)^{\alpha_3}\diam_{\tilde{\bs b}}(T_k)^{\alpha_4} \abs{\partial^{t_{jk}(\alpha)} \kappa (g(\lambda))} \end{align*} - für jeden Multiindex $\alpha = (\alpha_1, \alpha_2, \alpha_3, \alpha_4)$, mit $\abs{\alpha} \geq 1$. + für jeden Multiindex $\alpha = (\alpha_1, \alpha_2, \alpha_3, \alpha_4)$ mit $\abs{\alpha} \geq 1$. \end{lem} @@ -618,7 +620,7 @@ Für die ersten drei Komponenten von $g$ gilt \begin{align*} g_{1,2,3}(\lambda) &= \gamma_j(\lambda_1,\lambda_2) = \bs v + \lambda_1 a {\bs a} + \lambda_2 b {\bs b}, \end{align*} -mit den Variablen $\bs a, \bs b \in \{(1,0,0)^T,(0,1,0)^T,(0,0,1)^T\}$, $\bs a \neq \bs b$ und $a,b \in \R$ mit $a,b > 0$ der Parametrisierung zum Rechteck $T_j$, +mit den Vektoren $\bs a, \bs b \in \{(1,0,0)^T,(0,1,0)^T,(0,0,1)^T\}$, $\bs a \neq \bs b$ und Skalaren $a,b \in \R$ mit $a,b > 0$ der Parametrisierung zum Rechteck $T_j$, wodurch sich die folgenden Ableitungen ergeben. \begin{align*} \partial_1 g_{1,2,3}(\lambda) &= a {\bs a} & @@ -654,7 +656,7 @@ Mit der Hilfsfunktion ind : \{(1,0,0)^T,(0,1,0)^T,(0,0,1)^T\} &\rightarrow \{ 1 , 2 , 3 \}\\ \bs x &\mapsto (1, 2, 3) \cdot \bs x \end{align*} -für die Einheitsvektoren mit dem Skalarprodukt $\cdot$ vereinfachen wir den Gradient zu +für die Einheitsvektoren mit dem Skalarprodukt $(\cdot)$ vereinfachen wir den Gradient zu % \begin{equation} \begin{align*} % \begin{split} @@ -705,11 +707,11 @@ die Abschätzung \begin{beweis} Zunächst definieren wir die Konstanten \begin{align*} - C_{\kappa} &=\frac{c_1}{(c_2\dist(T_j,T_k))^s} \quad \text{und} \quad \rho_{\kappa} = \frac{1}{c_2\zeta_Q} + C_{\kappa,j,k} &=\frac{c_1}{(c_2\dist(T_j,T_k))^s} \quad \text{und} \quad \rho_{\kappa} = \frac{1}{c_2\zeta_Q} \end{align*} und können dann die Konstante $C_{\zeta_Q,j,k}$ kurz \begin{align*} - C_{\zeta_Q,j,k} &= 8eC_{\kappa} (1+2\rho_{\kappa}) + C_{\zeta_Q,j,k} &= 8eC_{\kappa,j,k} (1+2\rho_{\kappa}) \end{align*} schreiben.\\ Bezeichne $g_{jk} : [0,1]^4 \rightarrow (T_j \times T_k) \subset \R^6$ die Parametrisierung @@ -721,23 +723,23 @@ Bezeichne $g_{jk} : [0,1]^4 \rightarrow (T_j \times T_k) \subset \R^6$ die Param % \Abs{\partial_x^{\alpha}\partial_y^{\beta}\kappa} &= \Abs{\partial_\lambda^{\alpha}\kappa(\gamma_j(\lambda_1,\lambda_2),\gamma_k(\lambda_3,\lambda_4))} &=\Abs{\partial_\lambda^{\alpha}\kappa(g_{jk}(\lambda))}\\ - &= \diam_{\bs a}(T_j)^{\alpha_1}\diam_{\bs b}(T_j)^{\alpha_2} \diam_{\bs a}(T_k)^{\alpha_3}\diam_{\bs b}(T_k)^{\alpha_4} \Abs{\partial^{t_{jk}(\alpha)}\kappa(g_{jk}(\lambda))}\\ + &= \diam_{\bs a}(T_j)^{\alpha_1}\diam_{\bs b}(T_j)^{\alpha_2} \diam_{\tilde{\bs a}}(T_k)^{\alpha_3}\diam_{\tilde{\bs b}}(T_k)^{\alpha_4} \Abs{\partial^{t_{jk}(\alpha)}\kappa(g_{jk}(\lambda))}\\ &\leq\diam(T_j)^{\alpha_1 + \alpha_2}\diam(T_k)^{\alpha_3 + \alpha_4} \Abs{\partial^{t_{jk}(\alpha)}\kappa(g_{jk}(\lambda))}\\ &\leq \max\{\diam(T_j),\diam(T_k)\}^{\abs{\alpha}} \Abs{\partial^{t_{jk}(\alpha)}\kappa(g_{jk}(\lambda))}, \end{align*} mit Multiindex $\alpha = (\alpha_1, \ldots , \alpha_4)$, wobei $\abs{\alpha}>0$ sei. -Ferner gilt mit Definition \ref{thm:sem:glatt} und den Konstanten $C_{\kappa},\rho_{\kappa}$ die Abschätzung +Ferner gilt mit Definition \ref{thm:sem:glatt} und den Konstanten $C_{\kappa,j,k},\rho_{\kappa}$ die Abschätzung \begin{align*} \max\{\diam(T_j),\diam(T_k)\}^{\abs{\alpha}} &\Abs{\partial^{t_{jk}(\alpha)}\kappa(g_{jk}(\lambda))}\\ \leq& \max\{\diam(T_j),\diam(T_k)\}^{\abs{\alpha}} c_1 (c_2 \abs{\gamma_j(\lambda_1,\lambda_2) - \gamma_k(\lambda_3,\lambda_4)})^{-(\abs{\alpha}+s)}\abs{\alpha}!\\ \leq & \max\{\diam(T_j),\diam(T_k)\}^{\abs{\alpha}} c_1 (c_2 \dist(T_j,T_k))^{-(\abs{\alpha}+s)}\abs{\alpha}!\\ = & \frac{c_1}{(c_2 \dist(T_j,T_k))^s} \left( \frac{\max(\diam(T_j),\diam(T_k))}{c_2 \dist(T_j,T_k)} \right)^{\abs{\alpha}}\abs{\alpha}!\\ - \leq& C_{\kappa}\rho_{\kappa}^{\abs{\alpha}}\abs{\alpha}!, + \leq& C_{\kappa,j,k}\rho_{\kappa}^{\abs{\alpha}}\abs{\alpha}!, \end{align*} wobei $\gamma_j(\lambda_1,\lambda_2) \in T_j$ und $\gamma_k(\lambda_3,\lambda_4) \in T_k$ sei. Daher sind die Voraussetzungen für Lemma \ref{thm:sem:ipolnD} erfüllt und es gilt die Abschätzung \begin{align*} \norm{\kappa(\gamma_j(\cdot),\gamma_k(\cdot))&-\I_p^4\kappa(\gamma_j(\cdot),\gamma_k(\cdot))}_{\infty,[0,1]^4}\\ - &\leq C_{\kappa} 8e(1+2\rho_{\kappa})\Lambda_p^4(p+1)\left(1+\frac{1}{\rho_{\kappa}}\right)^{-(p+1)}\\ + &\leq C_{\kappa,j,k} 8e(1+2\rho_{\kappa})\Lambda_p^4(p+1)\left(1+\frac{1}{\rho_{\kappa}}\right)^{-(p+1)}\\ % &= C_{\zeta,j,k}\Lambda_p^4p\left(1+\frac{2}{\rho_{\kappa}}\right)^{-p}\\ &= C_{\zeta_Q,j,k}\Lambda_p^4(p+1)\left(1+c_2\zeta_Q\right)^{-(p+1)}. \end{align*} @@ -751,9 +753,10 @@ Da sich wie gezeigt die Kernfunktion besonders gut durch Polynome interpolieren \begin{sat}\label{thm:sem:quad:V} -Seien $T_j,T_k$ zwei $\zeta_Q$-zulässige Rechtecke mit zugehörigen Parametrisierungen $\gamma_j,\gamma_k$. Sei weiterhin $\kappa : \R^3\times\R^3\to \R : (\bs x, \bs y) \mapsto \kappa(\bs x,\bs y)$ eine asymptotisch glatte Kernfunktion mit Konstanten $c_1,c_2,s$. Sei +Seien $T_j,T_k$ zwei $\zeta_Q$-zulässige Rechtecke mit zugehörigen Parametrisierungen $\gamma_j,\gamma_k$. Sei weiterhin $\kappa : \R^3\times\R^3\to \R, (\bs x, \bs y) \mapsto \kappa(\bs x,\bs y)$ eine asymptotisch glatte Kernfunktion mit Konstanten $c_1,c_2,s$. Sei \begin{align} \label{math:sem:zetaQ:c} - \tilde C_{\zeta_Q,j,k}&:=2^3e\frac{c_1\abs{T_j}\abs{T_k}}{(c_2\dist(T_j,T_k))^s} \left(1+\frac{2}{c_2\zeta_Q} \right). + \tilde C_{\zeta_Q,j,k}&:= 8 e\frac{c_1\abs{T_j}\abs{T_k}}{(c_2\dist(T_j,T_k))^s} \left(1+\frac{2}{c_2\zeta_Q} \right) + = \abs{T_j}\abs{T_k} C_{\zeta_Q,j,k}. \end{align} Dann gilt mit $\bs \lambda_j = (\lambda_1,\lambda_2)$ und $\bs \lambda_k = (\lambda_3,\lambda_4)$ für das Integral \begin{align} @@ -803,7 +806,7 @@ Mithilfe von Satz \ref{thm:sem:pol:V} für den Grad $2p+1$ erhalten wir die Beha & \leq 2^3 e \frac{c_1 \max\{ \diam(T_j) , \diam(T_k)\}^4}{(c_2 \zeta_Q \max\{ \diam(T_j) , \diam(T_k)\})^s} \left( 1 + \frac{2}{c_2\zeta_Q} \right)\\ & = 2^3 e \frac{c_1}{(c_2 \zeta_Q)^s} \max\{ \diam(T_j) , \diam(T_k)\}^{4-s} \left( 1 + \frac{2}{c_2\zeta_Q} \right), \end{align*} - welche unabhängig von der im Netz auftretenden Distanzen ist, können wir also eine gute Aussage über die Stabilität der Zulässigkeitsbedingung im Zuge der Netzverfeinerung treffen. + welche unabhängig von der im Netz auftretenden Distanzen ist, können wir also eine gute Aussage über die Stabilität der Zulässigkeitsbedingung im Zuge der Netzverfeinerung treffen, sofern $s<4$. Für das Modellproblem \eqref{math:gal:kap+} gilt beispielsweise $s=1$. @@ -821,7 +824,7 @@ Im Folgenden wollen wir nun annehmen, dass $T_1,T_2,\ldots,T_n$ Randelemente sin \begin{align*} (A_p)_{jk} := A_{jk}. \end{align*} - \item Sind $T_j$ und $T_k$ $\zeta_Q$-zulässig, so ist + \item Sind $T_j$ und $T_k$ $\zeta_Q$-zulässig, so ist mithilfe von Gauss-Quadratur \begin{align*} (A_p)_{jk} := \abs{T_j}\abs{T_k}\sum_{a=0}^p w_a \sum_{b=0}^p w_b \sum_{c=0}^p w_c \sum_{d=0}^p w_d \kappa(\gamma_j( \lambda_{a},\lambda_{b}),\gamma_k(\lambda_{c},\lambda_{d})). \end{align*} @@ -877,7 +880,7 @@ Durch Ziehen der Wurzel auf beiden Seiten, folgt dann die Behauptung. \end{align*} die Abschätzung \begin{align*} - \sup_{\bs y \in T_k}\norm{\kappa(\gamma_j(\cdot),\bs y)&-\I_p^2\kappa(\gamma_j(\cdot),\bs y)}_{\infty,[0,1]^2} + \max_{\bs y \in T_k}\norm{\kappa(\gamma_j(\cdot),\bs y)&-\I_p^2\kappa(\gamma_j(\cdot),\bs y)}_{\infty,[0,1]^2} \leq C_{\zeta_E,j,k}\Lambda_p^2 (p+1)\left(1+\sqrt 2 c_2\zeta_E\right)^{-(p+1)}. \end{align*} \end{sat} @@ -885,11 +888,11 @@ die Abschätzung \begin{beweis} Zunächst definieren wir die Konstanten \begin{align*} - C_{\kappa} &=\frac{c_1}{(c_2\dist(T_j,T_k))^s} \quad \text{und} \quad \rho_{\kappa} = \frac{1}{c_2\zeta_E} + C_{\kappa,j,k} &=\frac{c_1}{(c_2\dist(T_j,T_k))^s} \quad \text{und} \quad \rho_{\kappa} = \frac{1}{c_2\zeta_E} \end{align*} und können dann die Konstante $C_{\zeta_E,j,k}$ kurz \begin{align*} - C_{\zeta_E,j,k} &= 8eC_{\kappa} (1+\sqrt 2\rho_{\kappa}) + C_{\zeta_E,j,k} &= 8eC_{\kappa,j,k} (1+\sqrt 2\rho_{\kappa}) \end{align*} schreiben.\\ Sei $\bs y \in T_k$ fest gewählt. Sei weiterhin $\gamma_j$ die Parametrisierung zu $T_j$ aus Definition \ref{thm:def:T}. So gilt mithilfe von Lemma \ref{thm:sem:kett} @@ -900,18 +903,18 @@ Sei $\bs y \in T_k$ fest gewählt. Sei weiterhin $\gamma_j$ die Parametrisierung &\leq \diam(T_j)^{\abs{\alpha}}\Abs{\partial^{t_{jk}(\alpha)} \kappa(\gamma_j(\lambda_1,\lambda_2),\bs y)}, \end{align*} mit Multiindex $\alpha = (\alpha_1, \alpha_2, 0, 0)$, wobei $\abs{\alpha}>0$ sei. -Ferner gilt mit Definition \ref{thm:sem:glatt} und den Konstanten $C_{\kappa},\rho_{\kappa}$ die Abschätzung +Ferner gilt mit Definition \ref{thm:sem:glatt} und den Konstanten $C_{\kappa,j,k},\rho_{\kappa}$ die Abschätzung \begin{align*} \diam(T_j)^{\abs{\alpha}}\Abs{\partial^{t_{jk}(\alpha)} \kappa(\gamma_j(\lambda_1,\lambda_2),\bs y)} \leq& \diam(T_j)^{\abs{\alpha}} c_1 (c_2 \abs{\gamma_j(\lambda_1,\lambda_2) - \bs y})^{-(\abs{\alpha}+s)}\abs{\alpha}!\\ \leq & \diam(T_j)^{\abs{\alpha}} c_1 (c_2 \dist(T_j,T_k))^{-(\abs{\alpha}+s)}\abs{\alpha}!\\ = & \frac{c_1}{(c_2 \dist(T_j,T_k))^s} \left( \frac{\diam(T_j)}{c_2 \dist(T_j,T_k)} \right)^{\abs{\alpha}}\abs{\alpha}!\\ - \leq& C_{\kappa}\rho_{\kappa}^{\abs{\alpha}}\abs{\alpha}!, + \leq& C_{\kappa,j,k}\rho_{\kappa}^{\abs{\alpha}}\abs{\alpha}!, \end{align*} wobei $\gamma_j(\lambda_1,\lambda_2) \in T_j$ sei. Daher sind die Voraussetzungen für Lemma \ref{thm:sem:ipolnD} erfüllt und es gilt schließlich die Abschätzung \begin{align*} \norm{\kappa(\gamma_j(\cdot),\bs y)-\I_p^2\kappa(\gamma_j(\cdot),\bs y)}_{\infty,[0,1]^2} - &\leq C_{\kappa} 8e(1+\sqrt 2 \rho_{\kappa})\Lambda_p^2(p+1)\left(1+\frac{\sqrt 2}{\rho_{\kappa}}\right)^{-(p+1)}\\ + &\leq C_{\kappa,j,k} 8e(1+\sqrt 2 \rho_{\kappa})\Lambda_p^2(p+1)\left(1+\frac{\sqrt 2}{\rho_{\kappa}}\right)^{-(p+1)}\\ &= C_{\zeta_E,j,k}\Lambda_p^2(p+1)\left(1+\sqrt 2 c_2\zeta_E\right)^{-(p+1)}. \end{align*} \end{beweis} @@ -1101,7 +1104,7 @@ g(-3/2;y;x;\lambda) &= \frac{y-x}{\lambda^2}\{(y-x)^2+\lambda^2\}^{-1/2}, \end{align*} welche alle in \cite[Seite 2-3]{mai:3dbem} bewiesen wurden. \end{lem} -Hierbei wollen wir darauf hinweisen, dass wir für $p=-1$ nicht die in \cite[Seite 3]{mai:3dbem} vorgeschlagene Formel verwenden, sondern eine selbst hergeleitete. Mithilfe von Substitution durch $z = \frac{y-x}{\abs{\lambda}}$ und $dz = \frac 1 {\abs{\lambda}} dy$ gilt +Hierbei wollen wir darauf hinweisen, dass wir für $p=-1$ nicht die in \cite[Seite 3]{mai:3dbem} vorgeschlagene falsche Formel verwenden, sondern die selbst hergeleitete. Mithilfe von Substitution durch $z = \frac{y-x}{\abs{\lambda}}$ und $dz = \frac 1 {\abs{\lambda}} dy$ gilt \begin{align*} \int \frac 1 {(x-y)^2 +\lambda^2} dy &= \int \frac 1 {\lambda^2((\frac{y-x}{\abs{\lambda}})^2 +1)} dy = \frac 1 {\abs{\lambda}} \int \frac 1 {z^2+1} dz\\ @@ -1323,7 +1326,7 @@ COO[j,1:3] = k_j := (x_j,y_j,z_j)^{T} \text{ wobei } x_j,y_j,z_j \in \R. \end{align} Die Elemente $\T_{\ell}$ werden wir ebenfalls zeilenweise in einer $N \times 4$ Matrix $ELE$ abspeichern. Dabei soll die $i$-te Zeile den Indizes der Knoten $\{k_j,k_k,k_{\ell},k_m\}$ des Elements $T_i$ entsprechen, also: \begin{align} -ELE[i,1:4] = T_i := (j,k,l,m). +ELE[i,1:4] = T_i := (j,k,\ell,m). \end{align} Die Knoten ordnen wir gegen den Uhrzeigersinn an und der Knoten $C_j$ sei der Punkt $\bs v$ aus Definition \ref{thm:def:T}. @@ -1334,7 +1337,7 @@ Wir legen also eine $M \times 8$ Matrix für die Indizes der Nachbarelemente an, \begin{align} NEI[i,1:8] = N_i := (n_1,\ldots,n_8) \end{align} -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 $[k,l], [l,m]$ und $[m,j]$ mit 2,3,4. Für den einfacheren Zugriff auf die Elemente einer Seite $s \in \{1,2,3,4\}$ seien die Nachbarelemente zur Seite $s$ unter den Indizes $n_s$ und $n_{s+4}$ abgespeichert. 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. +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 $[k,l], [l,m]$ und $[m,j]$ mit 2,3,4. Für den einfacheren Zugriff auf die Elemente einer Seite $s \in \{1,2,3,4\}$ seien die Nachbarelemente zur Seite $s$ unter den Indizes $n_s$ und $n_{s+4}$ abgespeichert. 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$ auch $n_s \neq 0$, womit die Seite $s$ genau zwei Nachbarelemente hat. (Siehe Abbildung \ref{exmpl13:nei:part}) \begin{figure}[ht] \centering @@ -1375,7 +1378,7 @@ Da wir im weiteren Verlauf sowohl adaptive also auch anisotrope Netzverfeinerung Zusätzlich wurde auch Typ 5 belegt, welcher als Ergebnis eine volle Teilung vom Typ 2 ausführt, diese aber schrittweise durch eine Teilung vom Typ 3 und anschließend durch jeweils eine Typ 4 Teilung. Aus Sicherheitsgründen wird auch jede vierte Teilung vom Typ 2 durch eine Typ 5 Teilung ausgeführt, da sonst kurzzeitig Seiten mit mehr als zwei Elementen auftreten könnten. \noindent -Damit jedem Element $T_i$ eine Teilungsart zugeordnet werden kann, haben wir einen Mar\-kierungs\-vektor $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. +Damit jedem Element $T_i$ eine Teilungsart zugeordnet werden kann, haben wir einen Mar\-kierungs\-vektor $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. \noindent Relevant zum Verfeinern eines Netzes sind also die Koordinaten $COO$, Elemente $ELE$ sowie die Nachbarschaftsrelationen $NEI$ und der Markierungs\-vektor $marked$. @@ -1433,7 +1436,7 @@ Nach erfolgreichem Kompilieren wurde eine \lstinline!mex_build_V.mexa64! Datei f \begin{lstlisting}[language=M, numbers=none] A = mex_build_V(coo,ele,zeta,typ); \end{lstlisting} -aufgerufen werden kann. Hierbei steht, wie in der Datenstruktur beschrieben, \lstinline!coo! für die Koordinatenmatrix und \lstinline!ele! für die Elementmatrix. Weiterhin sei \lstinline!zeta! ein Array mit den Einträgen \lstinline!zeta! $=(q,\zeta_Q,\zeta_E)$. Mithilfe des Parameters $q \in \{0,1,2,3,4,5\}$ kann die Anzahl $2^q$ der Auswertungsstellen für die Gauss-Quadratur gewählt werden. Die beiden Parameter $\zeta_Q,\zeta_E \in \R^+$ werden in den Zulässigkeitsbedingungen verwendet. Der Parameter \lstinline!typ! $\in \{1,2,3\}$ steht für die Art der Berechnung. +aufgerufen werden kann. Hierbei steht, wie in der Datenstruktur beschrieben, \lstinline!coo! für die Koordinatenmatrix und \lstinline!ele! für die Elementmatrix. Weiterhin sei \lstinline!zeta! ein Array mit den Einträgen \lstinline!zeta! $=(q,\zeta_Q,\zeta_E)$. Mithilfe des Parameters $q \in \{0,1,2,3,4,5\}$ kann die Anzahl $2^q$ der Auswertungsstellen für die Gauss-Quadratur gewählt werden. Die beiden Parameter $\zeta_Q,\zeta_E \in \R^+$ werden in den Zulässigkeitsbedingungen verwendet. Der Parameter \lstinline!typ! $\in \{1,2,3,4\}$ steht für die Art der Berechnung. \noindent Insgesamt wurden vier Arten der Berechnung implementiert. @@ -1472,6 +1475,37 @@ Da die Berechnungen der einzelnen Matrixeinträge unabhängig voneinander sind, \noindent Die Implementierung der Berechnung eines Eintrags $A_{jk}$ befindet sich in der \lstinline!slpRectangle.cpp!. Auch hier haben wir zwischen parallel und orthogonal liegenden Elementen unterschieden. Weiterhin haben wir versucht die Funktionen möglichst direkt von der Analysis aus Kapitel \ref{sec:analyt} in \Cpp~zu implementieren und auf mögliche Optimierungen zur Fehlervermeidung zu verzichten. + +\subsection{Beispielnetz mit Verfeinerung} +An dieser Stelle wollen wir noch einmal das Netz des Quadrats aus Abbildung \ref{fig:mesh:2DQuad:start} betrachten. Wir wenden dazu die Netzverfeinerung aus Kapitel \ref{sec:implement:refine} mit dem Markierungsvektor $marked = (2, 3, 1, 3)$ auf das Startnetz an und erhalten dadurch das Netz aus Abbildung \ref{exmpl12:lage}. Die drei zugehörigen Matrizen $COO$, $ELE$ und $NEI$, welche in Kapitel \ref{sec:implement:daten} genauer beschrieben wurden, finden wir in den Abbildungen \ref{exmpl12:coo},\ref{exmpl12:ele},\ref{exmpl12:nei}. + +\begin{figure}[h!t] + +\centering + +\subfloat[Lage \label{exmpl12:lage}]{ \includegraphics[width=0.6\textwidth]{fig/exmpl12_ref} } +\subfloat[Koordinatenmatrix]{\input{fig/exmpl12_coo}}\\ +\subfloat[Elementmatrix]{\input{fig/exmpl12_ele}} +\subfloat[Nachbarschaftsrelationen]{\input{fig/exmpl12_nei}} +\caption{{\small Dieses Beispielnetz entsteht durch die Verfeinerung von Netz \ref{fig:mesh:2DQuad} mit dem Markierungsvektor $marked = (2,3,1,3)$. Zum Verfeinern wurde der Algorithmus \ref{alg:refine} mit der Implementierung aus \ref{code:refineQuad} verwendet. In schwarz wurde der Index der Elemente und in rot der Index der Koordinaten eingezeichnet.}} +\label{exmpl12} +\end{figure} + +\noindent +Wenn wir nun in diesem Netz das Element 7 durch eine Teilung vom Typ 2 weiter verfeinern, muss auch das Element 4 geteilt werden. Abbildung \ref{exmpl13:lage} stellt dieses neue Netz dar und zeigt, dass der Algorithmus \ref{alg:refine} die nötigen Teilungen vornimmt. + +\begin{figure}[ht] +\centering +% \subfloat[Lage]{ +\includegraphics[width=0.6\textwidth]{fig/exmpl13_ref} +% } +% \subfloat[Koordinaten]{\input{fig/exmpl13_coo}}\\ +% \subfloat[Elemente]{\input{fig/exmpl13_ele}} +% \subfloat[Nachbarn]{\input{fig/exmpl13_nei}} +\caption{\small Dieses Netz entsteht durch die Verfeinerung von Element 7 aus dem Netz \ref{exmpl12}. In schwarz wurde der Index der Elemente und in rot der Index der Koordinaten eingezeichnet. Es zeigt, dass zusätzlich Elemente verfeinert werden, um die Forderung von maximal drei Knoten auf einer Kante zu erfüllen.} +\label{exmpl13:lage}\label{exmpl13} +\end{figure} + \clearpage \section{Numerische Experimente}\label{sec:numexp} @@ -1522,7 +1556,7 @@ zuverlässig \enorm{\phi - \phi_{\ell}}&\leq \frac 1{\sqrt{1-C_{sat}^2}}\eta_{\ell}. \end{align*} \end{defi} -Der Schätzer ist berechenbar, liefert aber keine lokalen Beiträge und kann daher nicht unmittelbar verwendet werden, um einen adaptiven Algorithmus zu steuern. Hierzu definieren wir weitere Schätzer. Für jedes $T_j\in\T_{\ell}$ bezeichnen wir mit $\varrho_j>0$ den Durchmesser des größten eingeschriebenen Innenkreises in $T_j$ und mit $h_j:=\diam(T_j)>0$ den Durchmesser von $T_j$. Weiterhin definieren wir die lokalen Netzweiten $\varrho,h\in L^\infty$ durch $\varrho_{|T_j} = \varrho_j$ und $h_{|T_j} = h_j$. +Der Schätzer ist berechenbar, liefert aber keine lokalen Beiträge und kann daher nicht unmittelbar verwendet werden, um einen adaptiven Algorithmus zu steuern. Hierzu definieren wir weitere Schätzer. Für jedes $T_j\in\T_{\ell}$ bezeichnen wir mit $\varrho_j:=\min\{\diam_{\bs a}(T_j),\diam_{\bs b}(T_j)\}>0$ die Länge der kürzesten Seite von $T_j$ und mit $h_j:=\diam(T_j)>0$ den Durchmesser von $T_j$. Weiterhin definieren wir die lokalen Netzweiten $\varrho,h\in L^\infty$ durch $\varrho_{|T_j} = \varrho_j$ und $h_{|T_j} = h_j$. \begin{defi}[A-posteriori Fehlerschätzer] Es bezeichne $\phi$ die exakte Lösung von \eqref{math:slp:gls}, $\phi_{\ell}$ die Galerkin-Lösung von \eqref{math:slp:gls:galerkin} auf dem Gitter $\T_{\ell}$ und $\hat \phi_{\ell}$ die Galerkin-Lösung auf dem uniform verfeinerten Gitter $\hat \T_{\ell}$. Dann gilt nach \cite[Theorem 3.2 und 3.4]{fer:errbem}, die Fehlerschätzer \begin{align} @@ -1567,16 +1601,16 @@ $\eta_{\ell} \leq \tilde \eta_{\ell} \leq C_4\norm{(h/\varrho)^{1/2}}_{L^\infty( \subsection{Markieren} -Im Adaptiven Algorithmus werden wir die Elemente abhängig vom Fehlerschätzer $\tilde \mu$ verfeinern. Dazu wählen wir mithilfe der Dörfler-Markierung \cite{dor:adapt} eine Teilmenge aus. +Im adaptiven Algorithmus werden wir die Elemente abhängig vom Fehlerschätzer $\tilde \mu$ verfeinern. Dazu wählen wir mithilfe der Dörfler-Markierung \cite{dor:adapt} eine Teilmenge aus. \begin{defi}[Dörfler-Markierung]\label{thm:def:mark} Bestimme für feste Konstante $\theta \in (0,1]$ die Menge $M_{\ell} \subseteq T_{\ell}$ mit minimaler Kardinalität \begin{align*} \theta \sum_{T\in T_{\ell}} \tilde \mu_{\ell}(T)^2 &\leq \sum_{ T\in M_{\ell}} \tilde \mu_{\ell}(T)^2. \end{align*} - Um die Symmetrie des Netzes zu erhalten, bestimme weiterhin für feste Konstante $\vartheta \in (0,1)$ die kleinste Teilmenge $\tilde M_{\ell} \subseteq T_{\ell}\backslash M_{\ell}$ für die gilt + \todo{Um die Symmetrie des Netzes zu erhalten, bestimme weiterhin für feste Konstante $\vartheta \in (0,1)$ die kleinste Teilmenge $\tilde M_{\ell} \subseteq T_{\ell}\backslash M_{\ell}$ für die gilt \begin{align*} \vartheta \sum_{T\in M_{\ell}} \tilde \mu_{\ell}(T)^2 &< \sum_{T\in \tilde M_{\ell}} \tilde \mu_{\ell}(T)^2. - \end{align*} + \end{align*}} Die Menge der markierten Elemente ist dann gegeben durch $M_{\ell} \cup \tilde M_{\ell}$. \end{defi} Im Folgenden werden wir $\vartheta = 10^{-2}$ wählen. @@ -1600,7 +1634,7 @@ C_j^{(1)}\\ C_j^{(2)}\\C_j^{(3)}\\ C_j^{(4)} \phi_j^{(1)}\\ \phi_j^{(2)}\\\phi_j^{(3)}\\ \phi_j^{(4)} \end{pmatrix}. \end{align*} -Dann ist mit fester Konstante $\nu \in [0,1)$ die Art der Markierung $marked_j$ zu einem Element $T_j \in \tilde M_{\ell}$ bestimmt durch +Dann ist mit fester Konstante $\nu \in [0,1)$ die Art der Markierung $marked_j$ zu einem Element $T_j \in \tilde M_{\ell}$ wie in \cite[Kapitel 4.5]{fer:errbem} bestimmt durch \begin{align*} marked_j := \begin{cases} % @@ -1637,16 +1671,16 @@ Mithilfe der oben Definierten Funktionen ist es uns nun möglich den Ablauf der \begin{alg}[Adaptives Verfahren]\label{alg:adapt} Sei $\theta,\nu \in (0,1)$ fest gewählt und das Startnetz $\T_{\ell}$ gegeben. \begin{enumerate} \renewcommand{\theenumi}{(\roman{enumi})} -\item Verfeinere $T_{\ell}$ um $\hat T_{\ell}$ zu erhalten \label{alg:adapt:begin} -\item Berechne die Galerkin-Lösung $\hat \phi_{\ell} \in P^0(\hat T_{\ell})$ von \eqref{math:slp:gls:galerkin} +\item Verfeinere $\T_{\ell}$ um $\hat \T_{\ell}$ zu erhalten \label{alg:adapt:begin} +\item Berechne die Galerkin-Lösung $\hat \phi_{\ell} \in P^0(\hat \T_{\ell})$ von \eqref{math:slp:gls:galerkin} \item Berechne Fehlerschätzer $\tilde \mu_{i} := \norm{\varrho^{1/2}(\hat \phi_{\ell} - \Pi_{\ell} \hat \phi_{\ell} )}$ -\item Wähle Teilmenge $M_{\ell} \subseteq T_{\ell}$ durch Definition \ref{thm:def:mark} und \ref{thm:def:mark2} +\item Wähle Teilmenge $M_{\ell} \subseteq \T_{\ell}$ durch Definition \ref{thm:def:mark} und \ref{thm:def:mark2} \item Verfeinere mindestens die markierten Elemente $M_{\ell}$ durch Algorithmus \ref{alg:refine}, um $\T_{\ell+1}$ zu erhalten \item $\ell \mapsto \ell+1$, gehe zu \ref{alg:adapt:begin} \end{enumerate} \end{alg} -\subsection{Beispiel Quadrat} \label{bsp:quad} +\subsection{Beispiel Quadrat-Schirm} \label{bsp:quad} Im Folgenden werden wir die Laplace-Gleichung \begin{align}\label{math:bsp:Quad:gls} \begin{aligned} @@ -1654,7 +1688,7 @@ Im Folgenden werden wir die Laplace-Gleichung u_{|\Gamma} &= 1 \quad \text{ auf }\Gamma, \end{aligned} \end{align} -mit dem Startnetz aus Abbildung \ref{fig:mesh:2DQuad:start}, einem Quadrat in der $z=0$ Ebene, genauer betrachten. Die vier Eckpunkte des Quadrats sind hierbei gegeben durch +mit dem Startnetz aus Abbildung \ref{fig:mesh:2DQuad:start}, einem Quadrat in der $z=0$ Ebene, genauer betrachten. Die vier Eckpunkte des Quadrat-Schirms sind hierbei gegeben durch \begin{align*} \{ (0,0,0), (1,0,0), (1,1,0), (0,1,0) \}. \end{align*} @@ -1720,7 +1754,7 @@ Anhand der Linien in \figLineB[], beobachten wir eine schnellere Konvergenz der Betrachten wir nun die Strategie "`adaptiv anisotrop"' in \figLineC[], so beobachten wir eine kurzzeitig sehr starke Konvergenz, welche dann gegen eine sehr gute Konvergenzrate von $\O(N^{-3/4})$ strebt. Hierbei erkennen wir, dass der Fehler der Energienorm schon im Bereich von 0.01 für die gleiche Elementanzahl liegt. Jedoch sehen wir auch, dass der Fehlerschätzer $\tilde \mu$ ab dieser Elementanzahl seine Konvergenzrate verliert und damit unzuverlässig wird. \noindent -Weiterhin können wir für alle drei Strategien anhand der Parallelität der Fehlerschätzer zum tatsächlichen Fehler, die Effektivität und Zuverlässigkeit der Fehlerschätzer erkennen. Ebenso ist die Äquivalenz des $h-h/2$ Schätzers zum lokalen $\tilde \mu$ Schätzers, aufgrund der Parallelität zu beobachten. Außerdem beschreiben die Fehlerschätzer den tatsächlichen Fehler auch in der Größenordnung sehr gut. +Weiterhin können wir für alle drei Strategien anhand der Parallelität der Fehlerschätzer zum tatsächlichen Fehler, die Effizienz und Zuverlässigkeit der Fehlerschätzer erkennen. Ebenso ist die Äquivalenz des $h-h/2$ Schätzers zum lokalen $\tilde \mu$ Schätzers, aufgrund der Parallelität zu beobachten. Außerdem beschreiben die Fehlerschätzer den tatsächlichen Fehler auch in der Größenordnung sehr gut. \noindent In Abbildung \ref{fig:2DQuad:verfeinern:hminmax} betrachten wir bestimmte Eigenschaften zwischen den Seitenverhältnissen der Elemente aus dem $\T_{\ell}$ Netz für die jeweilige Strategie. $h_{\min}$ steht hierbei für die kürzere Seite eines Rechtecks $T \in \T_{\ell}$ und $h_{\max}$ für die längere der beiden Seiten. Weiterhin verstehen wir das Minimum $\min()$ und Maximum $\max()$ über alle Elemente $T\in\T_{\ell}$. Wir werden nun das Verhältnis der kleinsten kurzen Seite gegenüber der größten langen Seite $\min_{}(h_{\min}) / \max_{}(h_{\max})$, das Verhältnis der kleinsten langen gegenüber der größten langen Seite $\min_{}(h_{\max}) / \max_{}(h_{\max})$ sowie das kleinste Verhältnis der kurzen gegenüber der langen Seiten $\min_{}(h_{\min} /h_{\max})$ für die drei Strategien genauer betrachten. @@ -1738,7 +1772,9 @@ Anhand der \figLineC[] farbenen Linien, also der "`adaptiv anisotropen"' Strateg 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 Matrix $\hat V_{\ell}$ 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 Elementen sogar sprunghaft an. \noindent +\todo{ Weiterhin können wir in Abbildung \ref{fig:2DQuad:verfeinern:time} die benötigte Rechenzeit 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 Rechenzeit 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. +} \noindent Diese Ergebnisse zeigen also, dass die "`adaptiv anisotrope"' Strategie die beste Konvergenzrate aufweist, wir dafür jedoch eine schlechtere Konditionszahl der Matrix in Kauf nehmen müssen. Dies ist letztendlich auf die Größe und Form der Elemente zurückzuführen. An dieser Stelle wollen wir noch zusätzlich Abbildung \ref{fig:mesh:2DQuad:steps} betrachten, welche das "`adaptiv anisotrop"' verfeinerte Netz nach 12 Schritten darstellt. Denn hier erkennen wir sehr gut, dass diese Strategie das Netz insbesondere an den Singularitäten verfeinert. @@ -1747,7 +1783,7 @@ Diese Ergebnisse zeigen also, dass die "`adaptiv anisotrope"' Strategie die best Ziel wird es nun sein, die Instabilitäten, die bei der analytischen Berechnung auftreten, durch Quadratur zu vermeiden. Dafür werden wir vorher noch Berechnungen mit verschiedenen Quadraturgraden genauer untersuchen. \subsubsection{Vergleich verschiedener Quadraturgrade} \label{bsp:quad:quad} -Bei der folgenden Berechnung verwenden wir wieder den Algorithmus \ref{alg:adapt} mit Parametern $\theta=0.5,\nu=0.5$ zum Lösen von \eqref{math:bsp:Quad:gls}, wobei alle Integrale von $\zeta_Q$-zulässigen Elementen durch die vorgestellte Gauss-Quadratur approximiert werden. Hierbei wählen wir jeweils 1, 2, 4 oder 8 Auswertungsstellen. Alle vier Berechnungsarten führen wir auf den selben Netzen aus, um die Ergebnisse nicht durch die Wahl des Netzes zu beeinflussen. Zum Berechnen des $\tilde \mu_{\ell}$-Schätzers, welcher die Verfeinerung steuert, verwenden wir in jedem Schritt die Lösung der Quadratur mit 8 Auswertungsstellen. +Bei der folgenden Berechnung verwenden wir wieder den Algorithmus \ref{alg:adapt} mit Parametern $\theta=0.5,\nu=0.5$ zum Lösen von \eqref{math:bsp:Quad:gls}, wobei alle Integrale von $\zeta_Q$-zulässigen Elementen durch die vorgestellte Gauss-Quadratur approximiert werden. Hierbei wählen wir jeweils 1, 2, 4 oder 8 Auswertungsstellen. Alle vier Berechnungsarten führen wir auf denselben Netzen aus, um die Ergebnisse nicht durch die Wahl des Netzes zu beeinflussen. Zum Berechnen des $\tilde \mu_{\ell}$-Schätzers, welcher die Verfeinerung steuert, verwenden wir in jedem Schritt die Lösung der Quadratur mit 8 Auswertungsstellen. \begin{figure}[ht] @@ -1799,7 +1835,7 @@ Bei der folgenden Berechnung verwenden wir wieder den Algorithmus \ref{alg:adapt \end{figure} \noindent -In Abbildung \ref{fig:2DQuad:quad:err} haben wir die Ergebnisse der Fehler und Fehlerschätzer für die verschiedenen Quadraturgrade dargestellt. Wir beobachten, dass eine sowie zwei Auswertungsstellen, dargestellt durch die Linien in \figLineA[] und \figLineB[], instabil werden. Für die Quadraturgrade vier und acht, dargestellt durch die Linien in \figLineC[] und \figLineD[], erkennen wir, dass die Berechnungen stabil bleiben und dass auch für Elementanzahlen, bei denen die analytische Berechnung (vergleiche Abbildung \ref{fig:2DQuad:verfeinern}) versagt. +In Abbildung \ref{fig:2DQuad:quad:err} haben wir die Ergebnisse der Fehler und Fehlerschätzer für die verschiedenen Quadraturgrade dargestellt. Wir beobachten, dass eine sowie zwei Auswertungsstellen, dargestellt durch die Linien in \figLineA[] und \figLineB[], instabil werden. Für die Quadraturgrade vier und acht, dargestellt durch die Linien in \figLineC[] und \figLineD[], erkennen wir, dass die Berechnungen stabil bleiben und das auch für Elementanzahlen, bei denen die analytische Berechnung (vergleiche Abbildung \ref{fig:2DQuad:verfeinern}) versagt. \noindent Da wir möglichst ökonomisch arbeiten wollen, haben wir auch die Berechnungszeiten für die Matrix $\hat V_{\ell}$ in Abbildung \ref{fig:2DQuad:quad:time} untersucht. Wie sich leicht erkennen lässt, benötigt die Berechnung mit Quadraturgrad 8, dargestellt durch die Linie in \figLineD[], für 3000 Elemente etwa $1000$ Sekunden. Die Berechnungszeiten für die Quadraturgrade 1,2,4 benötigen hingegen wesentlich weniger Rechenzeit und sind fast äquivalent. Sie berechnen die Matrix $\hat V_{\ell}$ mit 3000 Elementen in etwa $100$ Sekunden und sind damit etwa 16 Mal schneller als die Quadratur vom Grad 8. @@ -1809,9 +1845,9 @@ Aufgrund dieser Ergebnisse werden wir für die folgenden Berechnungen einen Quad \subsubsection{Vergleich verschiedener Berechnungsarten} \label{bsp:quad:sem} Wie wir für die analytische Berechnung mit adaptiv anisotroper Netzverfeinerung in Abbildung \ref{fig:2DQuad:verfeinern:err} gesehen haben, wird der Fehlerschätzer $\tilde \mu_{\ell}$ ab etwa 3000 Elementen instabil. Deswegen wollen wir an dieser Stelle verschiedene Strategien zur Approximation der Matrix $\hat V_{\ell}$ vorstellen.\\ -Bei den folgenden Berechnungen werden wir wieder den Algorithmus \ref{alg:adapt} mit Parametern $\theta=0.5,\nu=0.5$ zum Lösen von \eqref{math:bsp:Quad:gls} verwenden, wobei für alle auftretenden Gauss-Quadraturen der Grad 4 gewählt wurde. Alle Berechnungsarten werden auf den selben Netzen ausgeführt um die Ergebnisse nicht durch die Wahl des Netzes zu beeinflussen.\\ +Bei den folgenden Berechnungen werden wir wieder den Algorithmus \ref{alg:adapt} mit Parametern $\theta=0.5,\nu=0.5$ zum Lösen von \eqref{math:bsp:Quad:gls} verwenden, wobei für alle auftretenden Gauss-Quadraturen der Grad 4 gewählt wurde. Alle Berechnungsarten werden auf denselben Netzen ausgeführt um die Ergebnisse nicht durch die Wahl des Netzes zu beeinflussen.\\ Wir werden nun die Matrix $\hat V_{\ell}$ in der "`analytischen"' Strategie durch die in Kapitel \ref{sec:analyt} vorgestellten Stammfunktionen analytisch berechnen. -Dann werden wir für $\zeta_E$-zulässige Elemente wie in Kapitel \ref{sec:semi:QE} das Integral über das kleinere Element durch Gauss-Quadratur ersetzen. Alle anderen Elemente werden bei dieser "`semianalytischen QE"' Strategie weiterhin analytisch berechnet. +Dann werden wir für $\zeta_E$-zulässige Elemente wie in Kapitel \ref{sec:semi:QE} das Integral über das kleinere Element durch Gauss-Quadratur ersetzen. Alle anderen Elemente werden bei dieser "`semianalytischen"' Strategie weiterhin analytisch berechnet. In der letzten Strategie "`volle Quadratur"' berechnen wir alle $\zeta_Q$-zulässige Elemente wie in Kapitel \ref{sec:semi:Q} durch Gauss-Quadratur und unzulässige wieder analytisch. Da wir annehmen, dass die letzte Strategie stabil sein wird, werden wir den zugehörigen $\tilde \mu_{\ell}$ Schätzer zum Steuern der Verfeinerung verwenden. \begin{figure}[ht] @@ -1826,20 +1862,21 @@ In der letzten Strategie "`volle Quadratur"' berechnen wir alle $\zeta_Q$-zuläs \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 +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"' und "`volle Quadratur"' Strategie ablesen. Beide Strategien führen zu denselben 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 Quadraturen 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 Berechnungsschritts, welches wieder das Aufstellen der Matritzen und Lösen des Gleichungssystems beinhaltet. Hier erkennen wir, dass sich die Laufzeiten der drei Strategien nur minimal voneinander unterscheiden. Für fast $10^4$ Elemente benötigen alle drei Berechnungsarten etwa $4*10^4$ Sekunden, was etwa elf Stunden entspricht. Da die Rechenzeit zum Aufstellen im Vergleich der Quadraturgrade wesentlich kürzer ist, können wir daraus schließen, dass die meiste Rechenzeit beim Lösen und Berechnen der Konditionszahlen verloren geht. +\todo{ +Weiterhin wollen wir noch einmal die Laufzeit der drei Strategien in Abbildung \ref{fig:2DQuad:sem:time} betrachten. Gemessen wurde die Zeit eines Berechnungsschritts, welches wieder das Aufstellen der Matrizen und Lösen des Gleichungssystems beinhaltet. Hier erkennen wir, dass sich die Laufzeiten der drei Strategien nur minimal voneinander unterscheiden. Für fast $10^4$ Elemente benötigen alle drei Berechnungsarten etwa $4*10^4$ Sekunden, was etwa elf Stunden entspricht. Da die Rechenzeit zum Aufstellen im Vergleich der Quadraturgrade wesentlich kürzer ist, können wir daraus schließen, dass die meiste Rechenzeit 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}\label{bsp:fichCube} +\subsection{Beispiel Figuera Würfel}\label{bsp:fichCube} Im Folgenden werden wir die Laplace-Gleichung \begin{align}\label{math:bsp:FichCube:gls} \begin{aligned} @@ -1847,8 +1884,8 @@ Im Folgenden werden wir die Laplace-Gleichung u_{|\Gamma} &= 1 \quad \text{ auf }\Gamma, \end{aligned} \end{align} -mit dem Startnetz aus Abbildung \ref{fig:mesh:3DFichCube:start}, einem Fischer Würfel genauer betrachten. -Der Fischer Würfel ist gegeben durch einen $[-1, 1]^3$ Würfel aus dem ein $[-1, 0]\times[0,1]^2$ Würfel heraus geschnitten wurde. +mit dem Startnetz aus Abbildung \ref{fig:mesh:3DFichCube:start}, einem Figuera Würfel genauer betrachten. +Der Figuera Würfel ist gegeben durch einen $[-1, 1]^3$ Würfel aus dem ein $[-1, 0]\times[0,1]^2$ Würfel heraus geschnitten wurde. % Die vier Eckpunkte des Quadrats sind hierbei gegeben durch % \begin{align*} % \{ (0,0,0), (1,0,0), (1,1,0), (0,1,0) \}. @@ -1859,14 +1896,14 @@ Auch hier wurde die Energienorm $\enorm{\phi}^2 \approx 16.2265$ der exakten Lö \centering \subfloat[Startnetz \label{fig:mesh:3DFichCube:start}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_3DFichCube_ref}} \subfloat[Anisotropes Netz nach 6 Schritten mit 381 Elementen \label{fig:mesh:3DFichCube:steps}]{\includegraphics[width=0.5\textwidth]{fig/exmpl_3DFichCube_6}} - \caption{\small Das Startnetz zeigt die Geometrie Fischer Würfel für das Beispiel \ref{bsp:fichCube}. Anhand des Netzes der anisotropen Verfeinerung lässt sich gut erkennen, dass die Geometrie wie erwartet vorwiegend an den Singularitäten, also an den Kanten verfeinert wird.} + \caption{\small Das Startnetz zeigt die Geometrie Figuera Würfel für das Beispiel \ref{bsp:fichCube}. Anhand des Netzes der anisotropen Verfeinerung lässt sich gut erkennen, dass die Geometrie wie erwartet vorwiegend an den Singularitäten, also an den Kanten verfeinert wird.} \label{fig:mesh:3DFichCube} \end{figure} \noindent -Bei den folgenden Berechnungen werden wir wieder den Algorithmus \ref{alg:adapt} mit Parametern $\theta=0.5,\nu=0.5$ zum Lösen von \eqref{math:bsp:FichCube:gls} verwenden, wobei für alle auftretenden Gauss-Quadraturen der Grad 4 gewählt wurde. Alle Berechnungsarten werden auf den selben Netzen ausgeführt, um die Ergebnisse nicht durch die Wahl des Netzes zu beeinflussen.\\ +Bei den folgenden Berechnungen werden wir wieder den Algorithmus \ref{alg:adapt} mit Parametern $\theta=0.5,\nu=0.5$ zum Lösen von \eqref{math:bsp:FichCube:gls} verwenden, wobei für alle auftretenden Gauss-Quadraturen der Grad 4 gewählt wurde. Alle Berechnungsarten werden auf denselben Netzen ausgeführt, um die Ergebnisse nicht durch die Wahl des Netzes zu beeinflussen.\\ Wir werden nun die Matrix $\hat V_{\ell}$ in der "`analytischen"' Strategie durch die in Kapitel \ref{sec:analyt} vorgestellten Stammfunktionen analytisch berechnen. -Dann werden wir für $\zeta_E$-zulässige Elemente wie in Kapitel \ref{sec:semi:QE} das Integral über das kleinere Element durch Gauss-Quadratur ersetzen. Alle anderen Elemente werden bei dieser "`semianalytischen QE"' Strategie weiterhin analytisch berechnet. +Dann werden wir für $\zeta_E$-zulässige Elemente wie in Kapitel \ref{sec:semi:QE} das Integral über das kleinere Element durch Gauss-Quadratur ersetzen. Alle anderen Elemente werden bei dieser "`semianalytischen"' Strategie weiterhin analytisch berechnet. Weiterhin werden wir in der Strategie "`volle Quadratur"' alle auftretenden Integrale für $\zeta_Q$ zulässige Elemente durch Gauss-Quadratur ersetzen. Da wir annehmen, dass diese Strategie wieder die zuverlässigste sein wird, werden wir den zugehörigen $\tilde \mu$ Schätzer zum Steuern der Netzverfeinerung verwenden. \begin{figure}[ht] @@ -1877,8 +1914,8 @@ Weiterhin werden wir in der Strategie "`volle Quadratur"' alle auftretenden Inte \subfloat[Seitenverhältnisse \label{fig:3DFichCube:quad:hminmax}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_3DFichCube_hminmax}} % \\ \subfloat[Konditionszahlen 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 in Beispiel \ref{bsp:fichCube}} +% \subfloat[Berechnungszeit für das Figuera 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 Figuera Würfel in Beispiel \ref{bsp:fichCube}} \label{fig:3DFichCube:sem} \end{figure} @@ -1891,38 +1928,9 @@ Die Konditionszahlen der $\hat V_{\ell}$ Matrix sehen wir in Abbildung \ref{fig: \noindent Diese Beobachtungen zeigen für dreidimensionale Geometrien, dass die analytische Berechnung auf feinen Netzen instabil wird. -Vergleichen wir unsere Ergebnisse mit denen aus dem Paper \cite[Figur 13]{fer:errbem}, so erreichen wir mit der "`analytischen"' Strategie die gleiche Genauigkeit. Dass das Netz die Ergebnisse beeinflusst, können wir fast ausschließen, da wir vergleichbare Forderungen und Parameter an die Netzverfeinerung gestellt haben. +Vergleichen wir unsere Ergebnisse mit denen aus dem Paper \cite[Abbildung 13]{fer:errbem}, so erreichen wir mit der "`analytischen"' Strategie die gleiche Genauigkeit. Dass das Netz die Ergebnisse beeinflusst, können wir fast ausschließen, da wir vergleichbare Forderungen und Parameter an die Netzverfeinerung gestellt haben. Durch geeignetes Ersetzen der Integrale durch Gauss-Quadratur können wir jedoch die Genauigkeit der Lösung beliebig erhöhen und erreichen bis zur Netzgröße von 9000 Elementen einen Fehler der Galerkin-Lösung von 0.01. Wenn wir den Fehler für feinere Netze berechnen wollen, müssten wir entweder einen größeren Arbeitsspeicher verwenden oder andere Strategien entwickeln, welche zum Beispiel unter Verwendung von $h$-Matrizen durch Approximation eine Komprimierung der Matrix zulassen. -\subsection{Beispielnetz mit Verfeinerung} -An dieser Stelle wollen wir noch einmal das Netz des Quadrats aus Abbildung \ref{fig:mesh:2DQuad:start} betrachten. Wir wenden dazu die Netzverfeinerung aus Kapitel \ref{sec:implement:refine} mit dem Markierungsvektor $marked = (2, 3, 1, 3)$ auf das Startnetz an und erhalten dadurch das Netz aus Abbildung \ref{exmpl12:lage}. Die drei zugehörigen Matrizen $COO$, $ELE$ und $NEI$, welche in Kapitel \ref{sec:implement:daten} genauer beschrieben wurden, finden wir in den Abbildungen \ref{exmpl12:coo},\ref{exmpl12:ele},\ref{exmpl12:nei}. - -\begin{figure}[h!t] - -\centering - -\subfloat[Lage \label{exmpl12:lage}]{ \includegraphics[width=0.6\textwidth]{fig/exmpl12_ref} } -\subfloat[Koordinatenmatrix]{\input{fig/exmpl12_coo}}\\ -\subfloat[Elementmatrix]{\input{fig/exmpl12_ele}} -\subfloat[Nachbarschaftsrelationen]{\input{fig/exmpl12_nei}} -\caption{{\small Dieses Beispielnetz entsteht durch die Verfeinerung von Netz \ref{fig:mesh:2DQuad} mit dem Markierungsvektor $marked = (2,3,1,3)$. Zum Verfeinern wurde der Algorithmus \ref{alg:refine} mit der Implementierung aus \ref{code:refineQuad} verwendet. In schwarz wurde der Index der Elemente und in rot der Index der Koordinaten eingezeichnet.}} -\label{exmpl12} -\end{figure} - -\noindent -Wenn wir nun in diesem Netz das Element 7 durch eine Teilung vom Typ 2 weiter verfeinern, muss auch das Element 4 geteilt werden. Abbildung \ref{exmpl13:lage} stellt dieses neue Netz dar und zeigt, dass der Algorithmus \ref{alg:refine} die nötigen Teilungen vornimmt. - -\begin{figure}[ht] -\centering -% \subfloat[Lage]{ -\includegraphics[width=0.6\textwidth]{fig/exmpl13_ref} -% } -% \subfloat[Koordinaten]{\input{fig/exmpl13_coo}}\\ -% \subfloat[Elemente]{\input{fig/exmpl13_ele}} -% \subfloat[Nachbarn]{\input{fig/exmpl13_nei}} -\caption{\small Dieses Netz entsteht durch die Verfeinerung von Element 7 aus dem Netz \ref{exmpl12}. In schwarz wurde der Index der Elemente und in rot der Index der Koordinaten eingezeichnet. Es zeigt, dass zusätzlich Elemente verfeinert werden, um die Forderung von maximal drei Knoten auf einer Kante zu erfüllen.} -\label{exmpl13:lage}\label{exmpl13} -\end{figure} % \begin{figure}[ht] % \centering diff --git a/doc/titelseite.tex b/doc/titelseite.tex index c01663a..ad48294 100644 --- a/doc/titelseite.tex +++ b/doc/titelseite.tex @@ -21,8 +21,8 @@ Analysis und Scientific Computing \\ der Technischen Universität Wien \\ \vspace{1.5cm} unter der Anleitung von \\ -Ao.Univ.Prof. Dipl.Math. Dr.techn. Dirk Praetorius \\ -Projektass.(FWF) Dipl.-Ing. Michael Karkulik\\ +Ao.Univ.Prof. Dr. Dirk Praetorius \\ +Dr. Michael Karkulik\\ Dipl.-Ing. Michael Feischl\\ \vspace{1cm} durch \\