]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[doc] listings eingebunden
authorPeter Schaefer <peter.schaefer@tuwien.ac.at>
Fri, 5 Oct 2012 16:11:57 +0000 (18:11 +0200)
committerPeter Schaefer <peter.schaefer@tuwien.ac.at>
Fri, 5 Oct 2012 16:11:57 +0000 (18:11 +0200)
doc/doc.bib [new file with mode: 0644]
doc/doc.pdf
doc/doc.tex
doc/lstings.sty [new file with mode: 0755]
src/compute.m

diff --git a/doc/doc.bib b/doc/doc.bib
new file mode 100644 (file)
index 0000000..a4b22bb
--- /dev/null
@@ -0,0 +1,40 @@
+@comment{x-kbibtex-personnameformatting=<%l><, %f>}
+
+@article{dor:adapt,
+       __markedentry = "[treecity:6]",
+       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ö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{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"
+}
+
+@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"
+}
+
index 8b35c2c45c492a93a510069220687427ba2c978c..5970c0c4e79ff72fcef6b0914b9b03105b3c31c2 100644 (file)
Binary files a/doc/doc.pdf and b/doc/doc.pdf differ
index dc5e71ad907c4250c4434ac842168d2375dd4f78..0cc8ed33bbbc89ec9873195268fa5502cccc9882 100644 (file)
@@ -1,5 +1,10 @@
 \documentclass[a4paper,11pt,fleqn]{article}
 \usepackage{fullpage}  %Seiten etwas Größer
+
+\usepackage[ngerman]{babel}    %Sprachpacket für Überschriften
+\usepackage[utf8]{inputenc}    %Eingabekodierung
+\usepackage{fixltx2e}  %Deutschsprach Bugs
+
 \usepackage{amsmath,amssymb}   %Mathematische Symbole
 %\usepackage{moreverb}
 \usepackage{graphicx,psfrag,subfig}    %Grafiken einbinden/Texte ersetzen/Bilder nebeneinander
 \usepackage{hyperref}  %Links im Inhaltsverzeichnis
 \hypersetup{linkbordercolor={1 1 1},citebordercolor={1 1 1},urlbordercolor={1 1 1}}
 
-
-\usepackage[ngerman]{babel}    %Sprachpacket für Überschriften
-\usepackage[utf8]{inputenc}    %Eingabekodierung
-\usepackage{fixltx2e}  %Deutschsprach Bugs
+\usepackage{bibgerm}   %Zitate und Referenzen Style
+  
+\usepackage{lstings}   %Code Einbinden (Private)
+  
+\lstdefinelanguage{oC++}[ANSI]{C++}{
+  morekeywords=[2]{pow,sqrt,fabs,log,asinh,atan,arsinh,cos,sin},       %lib Functions
+  morekeywords=[3]{quad,gauss_nodes,HILBERT3D_LAPLACE_SLPRECTANGLE_HPP_GUARD_},        %Globals
+  morekeywords=[4]{sign,max,min,switch_site,switch_dim ,dist,dist2,dist_s2,dist_s,
+                   f_A,g_QY,g_AY,G_QY1Y2,G_AY2X2},     %own Functions
+}
+\lstdefinelanguage{oM}[]{Matlab}{
+  morekeywords=[2]{},  %lib Functions
+  morekeywords=[3]{G_D},       %Globals
+  morekeywords=[4]{compute},   %own Functions
+}
 
 \definecolor{gray}{gray}{.8}
 \definecolor{dred}{rgb}{.8,0,0}
@@ -220,7 +236,7 @@ wobei $\varDelta u := \partial_x^2u+\partial_y^2u$ den Laplace-Operator bezeichn
 \section{Randelementmethode}
 \todo{
 \begin{itemize}
- \item kuerzer als in Ferraz-DA 
+ \item kuerzer als in Ferraz-DA \cite{fer:errbem}
  \item insbesondere fastregulaere Triangulierung + K-Gitter (vgl. Ferraz-DA) 
 \end{itemize}
 }
@@ -306,6 +322,16 @@ analytisch/semidiskret/volldiskret
 \end{itemize}
 }
 
+\noindent
+Ziel diese Abschnitts ist die approximative Berechnung des Integrals
+\begin{eqnarray}\label{math:gal:kap}
+A_{jk} &=& \int_{T_j} \int_{T_k} \kappa(\bs x,\bs y) ds_{\bs y} ds_{\bs x}.
+\end{eqnarray}
+beziehungsweise als Spezialfall davon die Berechnung des Integrals
+\begin{eqnarray}\label{math:gal:frac}
+A_{jk} &=&\frac{1}{4\pi} \int_{T_j} \int_{T_k} \frac{1}{|\bs x- \bs y|} ds_{\bs y} ds_{\bs x}.
+\end{eqnarray}
+unter bestimmten Vorraussetzungen an die affinen Randstücke $T_j,T_k$ und den asymptotisch glatten Integranden $\kappa : \R^3 \times \R^3 \to \R$.
 
 \subsection{Gauss-Quadratur}
 \begin{displaymath}
@@ -346,16 +372,19 @@ $\enorm{a}-\norm{b}$
 Einfachschichtpotentials}
 \todo{
 \begin{itemize}
- \item Zusammenfassung des Maischak-Papers
+ \item Zusammenfassung des Maischak-Papers \cite{mai:3dbem}
  \item Ergebnisse ohne Beweise
  \item Betonen, wo Sie im Maischak-Paper einen Fehler gefunden haben 
 \end{itemize}
 }
-Es seien $T_j,T_k \subseteq\R^3$ zwei beschränkte, achsenorientierte Rechtecke in $\R^3$.
-Die Berechnung der Matrix für das Galerkin-Verfahren benötigt die Auswertung von
+\noindent
+In diesem Abschnitt wollen wir uns mit der analytischen Berechnung der Galerkin-Matrix
 \begin{eqnarray}\label{math:V}
-\frac{1}{4\pi} \int_{T_j} \int_{T_k} \frac{1}{|\bs x- \bs y|} ds_{\bs y} ds_{\bs x} \in \R^3.
+A_{jk} &=& \frac{1}{4\pi} \int_{T_j} \int_{T_k} \frac{1}{|\bs x- \bs y|} ds_{\bs y} ds_{\bs x} \in \R^3.
 \end{eqnarray}
+mit zwei beschränkte, achsenorientierte Rechtecke $T_j,T_k \subseteq\R^3$ beschäftigen.
+
+\noindent
 Wir betrachten zunächst die Berechnung von zwei Integralen, die dabei auftreten werden.
 \subsection{einfach Integral}
 Wir bezeichnen
@@ -367,7 +396,7 @@ Für beliebige $x,p,y, \lambda \in \R$ mit $\lambda \neq 0$ gilt die Rekursionsf
 \begin{eqnarray*}
  (2p+1)g(p;y;x;\lambda) = (y-x) \{(y-x)^2+\lambda^2\}^p + 2p\lambda g(p-1;y;x;\lambda)
 \end{eqnarray*}
-Für $p \in \{1/2 , 0 , -1/2 , -1, -3/2\}$ gilt explizit:
+Für den Parameter $p \in \{1/2 , 0 , -1/2 , -1, -3/2\}$ gilt explizit:
 \begin{eqnarray*}
  g(1/2;y;x;\lambda) &=& \frac{y-x}{2}\{(y-x)^2+\lambda^2\}^{1/2} + \frac{\lambda^2}{2} \text{arsinh} \frac{y-x}{|\lambda|}\\
  g(0;y;x;\lambda) &=& y-x\\
@@ -615,7 +644,7 @@ $[COO_{fine}, ELE_{fine}, NEI_{fine}, F2S ] = refineQuad(COO, ELE, NEI, marked);
 
 
 
-\subsection{Markieren}
+\subsection{Markieren} \cite{dor:adapt}
 Bestimme $M_{\ell} \subseteq T_{\ell}$ mit minimaler Kardinalität
 \begin{eqnarray*}
 \theta \sum_{T\in T_{\ell}} \mu_{\ell}(T)^2 & \leq & \sum_{T\in M_{\ell}} \mu_{\ell}(T)^2
@@ -707,7 +736,7 @@ Wie interpretiert man das?
 \subsection{Fehlerschätzer}
 In diesem Abschnitt definieren wir die a-posteriori Fehlerschätzer, die wir im Folgenden zur Steuerung des adaptiven Algorithmus einsetzen werden. Wir verwenden dazu die $h-h/2$ Strategie aus Ferraz-Leite (Provet. 108),wo die folgende Aussage bewiesen wird.
 
-\begin{defi}Es bezeichne $\phi$ die Lösung von Formel \ref{Formel}, $\phi_{\ell}$ die Galerkinlösung auf dem Gitter $\T_{\ell}$ und $\hat \phi_{\ell}$ die Galerkinlösung auf dem uniform verfeinerten Gitter $\hat \T_{\ell}$. Dann gilt, der Schätzer
+\begin{defi}Es bezeichne $\phi$ die Lösung von Formel , $\phi_{\ell}$ die Galerkinlösung auf dem Gitter $\T_{\ell}$ und $\hat \phi_{\ell}$ die Galerkinlösung auf dem uniform verfeinerten Gitter $\hat \T_{\ell}$. Dann gilt, der Schätzer
 \begin{align}
  \eta_{\ell} &:= \enorm{\hat \phi_{\ell} - \phi_{\ell}}
 \end{align}
@@ -851,8 +880,11 @@ Die wichtigsten Funktionen
  \item plot
 \end{enumerate}
 }
+\lstinputlisting[language=oC++]{../src/slpRectangle.cpp}
+\lstinputlisting[language=oM]{../src/compute.m}
 
-
+\bibliographystyle{gerabbrv}
+\bibliography{doc}
 
 
 \end{document}
\ No newline at end of file
diff --git a/doc/lstings.sty b/doc/lstings.sty
new file mode 100755 (executable)
index 0000000..7cc6820
--- /dev/null
@@ -0,0 +1,54 @@
+%% Dieses Package ist eine Zusammenfassung von Packages und Konfigurationen
+%%
+%% TITLE = lstings
+%%
+%% + package listings & color
+%% + sets the tt Font (to use bf with it)
+%% + defines own colors (lst_*)
+%% + sets the lststyle and default coloring styles
+%%
+%% P. Schaefer
+
+
+
+\usepackage{listings}
+\usepackage{color}
+
+\renewcommand{\ttdefault}{pcr}
+
+\definecolor{lst_green}{rgb}{0,0.6,0}
+\definecolor{lst_lgreen}{rgb}{0.6,0.6,0}
+\definecolor{lst_gray}{rgb}{0.6,0.6,0.6}
+\definecolor{lst_mauve}{rgb}{0.6,0,0.6}
+\definecolor{lst_dmauve}{rgb}{0.3,0,0.3}
+\definecolor{lst_blue}{rgb}{0,0,0.6}
+\definecolor{lst_bleen}{rgb}{0,0.6,0.6}
+
+
+\lstset{ %
+  basicstyle=\small\ttfamily,
+  numbers=left,                   
+  numberstyle=\tiny\color{lst_gray},
+%   stepnumber=2,                                                    
+%   numbersep=5pt,                  
+%   backgroundcolor=\color{white},     
+  showspaces=false,               
+  showstringspaces=false,         
+%   showtabs=false,                 
+%   frame=single,                   
+%   rulecolor=\color{black},        
+  tabsize=2,                      
+%   captionpos=b,                   
+%   breaklines=true,                
+%   breakatwhitespace=false,
+%   title=\lstname,
+%   identifierstyle=\color{red},  %
+  keywordstyle=[1]\color{lst_mauve}\bfseries,          %buildin commands
+  keywordstyle=[2]\bfseries\color{lst_dmauve},         %lib commands
+  keywordstyle=[3]\color{lst_bleen},                   %globals
+  keywordstyle=[4]\bfseries,                           %Functions
+  commentstyle=\color{lst_green},
+  stringstyle=\color{lst_blue},
+%   escapeinside={\%*}{*)},
+extendedchars=true
+}
\ No newline at end of file
index 2e69bd7c988b205e9db29a8994c6e7945e71cc12..d83bc0d80db505b7a705a1d64d1ab498f60c8ad4 100644 (file)
@@ -1,6 +1,6 @@
 function [data er fileo] = compute(file,times,zeta,type,theta,nu,vcon)
 % [data er] = compute(file,times,zeta,type,theta,nu,vcon,out)
-% Führt times Verfeinerungsschritte aus
+% Fuehrt times Verfeinerungsschritte aus
 %
 % file - StartNetz
 % times - wie oft Verfeinert werden soll
@@ -8,7 +8,7 @@ function [data er fileo] = compute(file,times,zeta,type,theta,nu,vcon)
 % theta - adaptiv?
 % nu - isotrop?
 % vcon - Vorkonditionierung der Matrix? 1 oder 0
-% out - (optional) Dateizusatz um Netz, Lösung & co zu speichern
+% out - (optional) Dateizusatz um Netz, Loesung & co zu speichern
 %
 % P. Schaefer
 
@@ -28,8 +28,6 @@ for j = 1:times
     old_x_fine = x_fine;
   end
   
-  
-
   %uniformIsotrop Verfeinern
   [coo_fine,ele_fine,neigh_fine,f2s,sit_fine]=refineQuad(coordinates,elements,neigh,sites,2);
 
@@ -50,7 +48,7 @@ for j = 1:times
     %Matrix aufbauen -> MEX
     V_fine = mex_build_V(coo_fine,ele_fine,zeta,type(i));
     
-    %Testet auf Fehlerhafte Einträge (NaN +/-Inf)
+    %Testet auf Fehlerhafte Eintraege (NaN +/-Inf)
     [r c] = find(isnan(V_fine)~=isinf(V_fine));
     if(~isempty(r))
         figure(9)
@@ -60,11 +58,11 @@ for j = 1:times
     end
  
     if(~vcon)
-    %Lösung Berechnen
+    %Loesung Berechnen
         x_fine = V_fine\b_fine;
         con = cond(V_fine);
     else
-    %Vorkonditionierte Lösung!
+    %Vorkonditionierte Loesung!
         D = diag(diag(V_fine.^(-1/2)));
 
         A = D * V_fine * D;
@@ -77,7 +75,7 @@ for j = 1:times
     % \tilde \mu ( \Pi h -h + L_2 )
     tmu = hmin.* b .* sum((x_fine(f2s)'-repmat(sum(x_fine(f2s)',1)/4,4,1)).^2)' /4;
     
-    %Fehlerschätzer 2 aufbauen
+    %Fehlerschaetzer 2 aufbauen
     V = mex_build_V(coordinates,elements,zeta,type(i));
     
     if(~vcon)
@@ -197,7 +195,7 @@ for j = 1:times
 %   marked = ones(1,size(G_E,1));
 %   marked(find(sum((G_N(:,1:4)==0),2))) = 2;
 
-  % Markieren mit gewählten Parametern
+  % Markieren mit gewaehlten Parametern
   marked = mark(x_fine(f2s)',tmu,theta,nu);
   
   % Netz bunt Plotten!
@@ -306,4 +304,4 @@ function str = t2str(time)
   end
 
 str = [num2str(round(time*1000)/1000) type];
-end
\ No newline at end of file
+end