]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[doc] alle Fehler beseitigt und Kommentare entfernt
authorPeter Schaefer <schaeferpm@gmail.com>
Mon, 27 May 2013 11:21:49 +0000 (13:21 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Mon, 27 May 2013 11:21:49 +0000 (13:21 +0200)
[src] Code noch mal überprüft
[doc] Plots aktualisiert

20 files changed:
.cproject
.settings/org.eclipse.cdt.codan.core.prefs
doc/doc.pdf
doc/doc.tex
doc/fig/132t05n05_2DQuad_cond.eps
doc/fig/132t05n05_2DQuad_error.eps
doc/fig/132t05n05_2DQuad_hminmax.eps
doc/fig/132t05n05_2DQuad_time.eps
doc/fig/132t05n05_3DFichCube_cond.eps
doc/fig/132t05n05_3DFichCube_error.eps
doc/fig/132t05n05_3DFichCube_hminmax.eps
doc/fig/132t05n05_3DFichCube_time.eps
src/A_plots.m
src/compute.m
src/export_exmpl.m
src/mark.m
src/mex_build_V.cpp
src/refineQuad.m
src/slpRectangle.cpp
src/slpRectangle.hpp

index 13bd80be9a3583e892555830487bdf1ed8602848..be5a581922dbcff6e4e3020431b7c24789d625bd 100644 (file)
--- a/.cproject
+++ b/.cproject
@@ -38,7 +38,7 @@
                                                                <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.261762668" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
                                                                <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1465922940" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
                                                                <option id="gnu.cpp.compiler.option.include.paths.1897313773" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
-                                                                       <listOptionValue builtIn="false" value="/opt/MATLAB/extern/include"/>
+                                                                       <listOptionValue builtIn="false" value="/usr/local/MATLAB/R2013a/extern/include"/>
                                                                </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.78369668" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
                                                        </tool>
                                                        </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1578439369" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
                                                                <option defaultValue="true" id="gnu.cpp.link.option.shared.573528711" name="Shared (-shared)" superClass="gnu.cpp.link.option.shared" valueType="boolean"/>
-                                                               <option id="gnu.cpp.link.option.libs.181645367" superClass="gnu.cpp.link.option.libs" valueType="libs">
+                                                               <option id="gnu.cpp.link.option.libs.181645367" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
                                                                        <listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="lm"/>
                                                                </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1068735872" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
index a54da21b1de9c6d20c0dfa559fc81f1b0ba59ac6..77386c23cbe3d3828b719e46914e7d33ce67f7a5 100644 (file)
@@ -1,66 +1,67 @@
-#Thu Dec 01 19:22:52 CET 2011
 eclipse.preferences.version=1
 org.eclipse.cdt.codan.checkers.errnoreturn=Warning
-org.eclipse.cdt.codan.checkers.errnoreturn.params={implicit\=>false}
+org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
 org.eclipse.cdt.codan.checkers.errreturnvalue=Error
-org.eclipse.cdt.codan.checkers.errreturnvalue.params={}
+org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.checkers.noreturn=Error
-org.eclipse.cdt.codan.checkers.noreturn.params={implicit\=>false}
+org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
 org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error
-org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error
-org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={}
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error
-org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={}
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={no_break_comment\=>"no break",last_case_param\=>true,empty_case_param\=>false}
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false}
 org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning
-org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={unknown\=>false,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()}
 org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error
-org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true}
 org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error
-org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error
-org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error
-org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error
-org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error
-org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error
-org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error
-org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
-org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
 org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={}
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error
-org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error
-org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error
-org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
-org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={}
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
-org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={}
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()}
 org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={paramNot\=>false}
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false}
 org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={else\=>false,afterelse\=>false}
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false}
 org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error
-org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
 org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
 org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
 org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning
-org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={macro\=>true,exceptions\=>("@(\#)","$Id")}
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")}
 org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error
-org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
index 057566d36a7bb662b689efd8f6573f4a39f67fae..5e27c3364d0ac1ae88fd3b55cf992cd63da98919 100644 (file)
Binary files a/doc/doc.pdf and b/doc/doc.pdf differ
index de9ca99ab784f62e1f7c3de87c57ad83121a351e..d111223ab52f88ea99e67777bc35c9f7e54bf1b6 100644 (file)
 \psfrag{min hmin/hmax 1t05n05 A}{\tiny $\min (h_{\min}/h_{\max})$}
 
 
-\psfrag{tmu 132t05n05 A}{\tiny $\tilde \mu$ analytisch}
-\psfrag{eta 132t05n05 A}{\tiny $\eta$ analytisch}
-\psfrag{fehler 132t05n05 A}{\tiny Fehler analytisch}
-\psfrag{Zeit 132t05n05 A}{\tiny Zeit analytisch}
-\psfrag{cond 132t05n05 A}{\tiny Kondition analytisch}
+\psfrag{tmu 142t05n05 A}{\tiny $\tilde \mu$ analytisch}
+\psfrag{eta 142t05n05 A}{\tiny $\eta$ analytisch}
+\psfrag{fehler 142t05n05 A}{\tiny Fehler analytisch}
+\psfrag{Zeit 142t05n05 A}{\tiny Zeit analytisch}
+\psfrag{cond 142t05n05 A}{\tiny Kondition analytisch}
 
-\psfrag{tmu 132t05n05 QEQA}{\tiny $\tilde \mu$ semianalytisch QE}
-\psfrag{eta 132t05n05 QEQA}{\tiny $\eta$ semianalytisch QE}
-\psfrag{fehler 132t05n05 QEQA}{\tiny Fehler semianalytisch QE}
-\psfrag{Zeit 132t05n05 QEQA}{\tiny Zeit semianalytisch QE}
-\psfrag{cond 132t05n05 QEQA}{\tiny Kondition semianalytisch QE}
+\psfrag{tmu 142t05n05 QE}{\tiny $\tilde \mu$ semianalytisch QE}
+\psfrag{eta 142t05n05 QE}{\tiny $\eta$ semianalytisch QE}
+\psfrag{fehler 142t05n05 QE}{\tiny Fehler semianalytisch QE}
+\psfrag{Zeit 142t05n05 QE}{\tiny Zeit semianalytisch QE}
+\psfrag{cond 142t05n05 QE}{\tiny Kondition semianalytisch QE}
 
-\psfrag{tmu 132t05n05 QA}{\tiny $\tilde \mu$ volle Quadratur}
-\psfrag{eta 132t05n05 QA}{\tiny $\eta$ volle Quadratur}
-\psfrag{fehler 132t05n05 QA}{\tiny Fehler volle Quadratur}
-\psfrag{Zeit 132t05n05 QA}{\tiny Zeit volle Quadratur}
-\psfrag{cond 132t05n05 QA}{\tiny Kondition volle Quadratur}
+\psfrag{tmu 142t05n05 QA}{\tiny $\tilde \mu$ volle Quadratur}
+\psfrag{eta 142t05n05 QA}{\tiny $\eta$ volle Quadratur}
+\psfrag{fehler 142t05n05 QA}{\tiny Fehler volle Quadratur}
+\psfrag{Zeit 142t05n05 QA}{\tiny Zeit volle Quadratur}
+\psfrag{cond 142t05n05 QA}{\tiny Kondition volle Quadratur}
 
 
 \pagestyle{fancy}
 
 % \lhead{\bf \large Aufgabe \thesubsection}
 % \chead{\thesection. Übung ZtuA}
-\rhead{\todo{ \scriptsize \today}}
+\rhead{\todo{ \scriptsize \today}}
 \cfoot{\thepage}
 % \setlength{\headheight}{4\baselineskip}
 
@@ -2289,11 +2289,11 @@ In der letzten Strategie "`volle Quadratur"' berechnen wir alle $\zeta_Q$-zuläs
 \begin{figure}[ht]
 
 \centering
-\subfloat[Fehler und Fehlerschätzer für das Quadrat \label{fig:2DQuad:sem:err}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_error}}
+\subfloat[Fehler und Fehlerschätzer für das Quadrat \label{fig:2DQuad:sem:err}]{\includegraphics[width=0.5\textwidth]{fig/142t05n05_2DQuad_error}}
 % \subfloat[Seitenverhältnisse auf dem Quadrat \label{fig:2DQuad:quad:hminmax}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_hminmax}}
 \\
-\subfloat[Kondition der $\hat V_{\ell}$ Matrix \label{fig:2DQuad:sem:cond}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_cond}}
-\subfloat[Berechnungszeit für das Quadrat \label{fig:2DQuad:sem:time}]{\includegraphics[width=0.5\textwidth]{fig/132t05n05_2DQuad_time}}
+\subfloat[Kondition der $\hat V_{\ell}$ Matrix \label{fig:2DQuad:sem:cond}]{\includegraphics[width=0.5\textwidth]{fig/142t05n05_2DQuad_cond}}
+\subfloat[Berechnungszeit für das Quadrat \label{fig:2DQuad:sem:time}]{\includegraphics[width=0.5\textwidth]{fig/142t05n05_2DQuad_time}}
 \caption{Vergleich der Berechnungsarten von $\hat V_{\ell}$ auf dem Quadrat}
 \label{fig:2DQuad:sem}
 \end{figure}
@@ -2303,13 +2303,13 @@ In Abbildung \ref{fig:2DQuad:sem:err} haben wir die Ergebnisse des Fehlers gegen
 2000 Elemente eine gute Konvergenzrate von $N^{-3/4}$.
 
 \noindent
-In Abbildung \ref{fig:2DQuad:sem:cond} vergleichen wir noch einmal die Konditionszahlen der $\hat V_{\ell}$ Matrix für die verschiedenen Strategien. Auch hier wurde die \figErr[e] Grenzlinie bei etwa 2000 Elementen eingezeichnet. Anhand der Linie in \figLineA[] erkennen wir deutlich, dass ab der 2000 Elemente Grenze die Konditionszahlen für die analytische Berechnung sprunghaft gegenüber den Konditionszahlen der beiden Quadraturn in \figLineB[] und \figLineC[] ansteigen. Wir erkennen an dieser Stelle aber auch, dass die Kondtionszahlen der "`analytischen"' Berechnung schon ab 1000 Elementen von den Quadraturen geringfügig Abweichen und damit auf eine ungünstige Berechnung hindeuten.
+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 Berechnungsschritt, welches wieder das Aufstellen der Matritzen und Lösen des Gleichungssystems beinhaltet. Hier erkennen wir, dass sich die Laufzeiten der drei Strategien nur minimal von einander unterscheiden. Für fast $10^4$ Elemente benötigen alle drei Berechnungsarten etwa $4*10^4$ Sekunden, was etwa elf Stunden entspricht. Da die Zeit zum Aufstellen im Vergleich der Quadraturgrade wesentlich kürzer war, können wir daraus schließen, dass die meiste Zeit beim Lösen und berechnen der Konditionszahlen verloren geht.
+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 Zeit zum Aufstellen im Vergleich der Quadraturgrade wesentlich kürzer ist, können wir daraus schließen, dass die meiste Zeit beim Lösen und Berechnen der Konditionszahlen verloren geht.
 
 \noindent
-Die Ergebnisse zeigen, dass wir durch Gauss-Quadratur über das kleinere Element auf $\zeta_E$-zulässigen Elementen bis an die Speichergrenze stabil rechnen können und es nicht nötig ist alle Integrale durch Quadratur zu ersetzen. Weiterhin nimmt die Art der Berechnung von $\hat V_{\ell}$ kaum Einfluss auf die Laufzeit.
+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}
@@ -2337,9 +2337,9 @@ Auch hier wurde die Energienorm $\enorm{\phi}^2 \approx 16.2265$ der exakten Lö
 \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 den selben 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. 
-\todo{Strategie SEMIANALYTISCH}
+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.
 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]
@@ -2361,28 +2361,27 @@ Weiterhin werden wir in der Strategie "`volle Quadratur"' alle auftretenden Inte
 In Abbildung \ref{fig:3DFichCube:sem:err} betrachten wir den Fehler und die Fehlerschätzer $\eta,\tilde \mu$ der Galerkin-Lösung für die verschiedenen Strategien. Gerechnet wurde hierbei bis zu einer Elementanzahl von etwa 8000. Anhand der Linien in \figLineA[] erkennen wir für die "`analytische"' Berechnung wieder die erwartete Konvergenzrate von $N^{-3/4}$. Da die Kurven des $\tilde \mu$ und $\eta$ Schätzers wieder parallel zum Fehler verlaufen, sind die Fehlerschätzer $\tilde \mu$ und $\eta$ effektiv und zuverlässig. Ab 4000 Elementen beobachten wir am $\tilde \mu$ Schätzer, dass die Lösung instabil wird. Diese Grenze haben wir in \figErr[] eingezeichnet. Weiterhin erkennen wir anhand der Linien in \figLineB[] und \figLineC[], dass die Berechnungen mithilfe von Quadratur weiterhin stabil bleiben und wir dadurch einen Fehler der Energienorm von etwa 0.01 erreichen.
 
 \noindent
-Die Konditionszahlen der $\hat V_{\ell}$ Matrix sehen wir in Abbildung \ref{fig:3DFichCube:sem:cond}. Bis zu der Elementanzahl 4000 steigt die Kondition der Matrix für alle Strategien auf $10^9$ an. Für feinere Netze, erkennen wir ab der Grenze von 4000 Elementen wieder den sprunghaften Anstieg der Konditionszahl für die "`analytische"' Berechnung in \figLineA[].
+Die Konditionszahlen der $\hat V_{\ell}$ Matrix sehen wir in Abbildung \ref{fig:3DFichCube:sem:cond}. Bis zu der Elementanzahl 4000 steigt die Kondition der Matrix für alle Strategien auf $10^9$ an. Für feinere Netze erkennen wir ab der Grenze von 4000 Elementen wieder den sprunghaften Anstieg der Konditionszahl für die "`analytische"' Berechnung in \figLineA[].
 
 \noindent
-Diese Beobachtungen zeigen für dreidimensionalen 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.
-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.
+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.
+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 Stellen 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}[ht]
+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.55\textwidth]{fig/exmpl12_ref}}
 \subfloat[Koordinatenmatrix]{\input{fig/exmpl12_coo}}\\
 \subfloat[Elementmatrix]{\input{fig/exmpl12_ele}}
 \subfloat[Nachbarschaftsrelationen]{\input{fig/exmpl12_nei}}
-\caption{{\scriptsize 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.}}
+\caption{{\scriptsize 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 ein Teilung vom Typ 2 weiter verfeinern, muss auch das Element 4 geteilt werden. Abbildung \ref{exmpl13:lage} stellt dieses neue Netz dar und zeigt das der Algorithmus \ref{alg:refine} die nötigen Teilungen vornimmt.
+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
@@ -2392,7 +2391,7 @@ Wenn wir nun in diesem Netz das Element 7 durch ein Teilung vom Typ 2 weiter ver
 % \subfloat[Koordinaten]{\input{fig/exmpl13_coo}}\\
 % \subfloat[Elemente]{\input{fig/exmpl13_ele}}
 % \subfloat[Nachbarn]{\input{fig/exmpl13_nei}}
-\caption{\scriptsize 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.}
+\caption{\scriptsize 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}
 
@@ -2437,7 +2436,7 @@ Wenn wir nun in diesem Netz das Element 7 durch ein Teilung vom Typ 2 weiter ver
 % \end{enumerate}
 % }
 \noindent
-Abschließend werden wir die für die Numerischen Experimente verwendeten Funktionen vorstellen. Hierbei wollen wir anmerken, dass wir im Laufe der Untersuchungen eine Erweiterung eingeführt haben auf die wir in den vorherigen Kapiteln nicht eingegangen sind.\\
+Abschließend werden wir die für die numerischen Experimente verwendeten Funktionen vorstellen. Hierbei wollen wir anmerken, dass wir im Laufe der Untersuchungen eine Erweiterung eingeführt haben, auf die wir in den vorherigen Kapiteln nicht eingegangen sind.\\
 Um Berechnungsfehler für die Seitenlängen und Flächeninhalte in \Matlab~zu vermeiden, haben wir die zusätzliche Matrix $sites\in\N^{N\times2}$ eingeführt. Eine Zeile $sites_j = (a_{j},b_{j})$ mit $j\in \{1,\ldots,N\}$ der Matrix entspricht der Anzahl der Halbierungen der Seitenlängen $a,b$ aus Definition \ref{thm:def:T} vom Element $T_j$, gelten muss hierbei $a = 2^{-a_j}$ und $b = 2^{-b_j}$.
 Dadurch können wir den Flächeninhalt von $T_j$ durch $\abs{T_j} = 2^{-(a_j+b_j)}$ bestimmen.\\ In der Implementierung für die Berechnung der Matrixeinträge $A_{jk} = \int_{T_j} \int_{T_k} \frac{1}{\abs{\bs x -\bs y}}ds_{\bs y} ds_{\bs x}$ wurde diese Erweiterung nicht verwendet.
  \subsection[C++]{\Cpp}
@@ -2448,14 +2447,14 @@ Dadurch können wir den Flächeninhalt von $T_j$ durch $\abs{T_j} = 2^{-(a_j+b_j
 \begin{lstlisting}[language=M,numbers=none]
 [A] = mex_build_V(coo,ele,zeta,typ);
 \end{lstlisting}
-  Hierbei ist \lstinline!coo! $\in \R^{M\times3}$ die Koordinatenmatrix aus Kapitel \ref{sec:implement:daten} und \lstinline!ele! $\in \N^{N\times4}$ die zugehörige Elementmatrix in der die Zeilenindizes der Koordinaten \lstinline!coo! stehen. Eine Zeile der Koordinatenmatrix entspricht einer Koordinate und eine Zeile aus der Elementmatrix steht für die Indizes der Koordinaten eines Elements. Weiterhin steht \lstinline!zeta! $ = (p, \zeta_Q, \zeta_E)$ für den Koordinatenvektor. 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 aus Kapitel \ref{sec:implement:A}. Zurück gegeben wird die zur Parametrisierung gehörende Matrix $A \in\R^{N\times N}$.
+  Hierbei ist \lstinline!coo! $\in \R^{M\times3}$ die Koordinatenmatrix aus Kapitel \ref{sec:implement:daten} und \lstinline!ele! $\in \N^{N\times4}$ die zugehörige Elementmatrix, in der die Zeilenindizes der Koordinaten \lstinline!coo! stehen. Eine Zeile der Koordinatenmatrix entspricht einer Koordinate und eine Zeile aus der Elementmatrix steht für die Indizes der Koordinaten eines Elements. Weiterhin steht \lstinline!zeta! $ = (p, \zeta_Q, \zeta_E)$ für den Koordinatenvektor. 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 aus Kapitel \ref{sec:implement:A}. Zurückgegeben wird die zur Parametrisierung gehörende Matrix $A \in\R^{N\times N}$.
  \lstinputlisting[language=C++,firstline=29,firstnumber=29]{../src/mex_build_V.cpp}
   \subsubsection{slpRectangle.hpp}\label{code:slpRectangle.hpp}
   Diese Datei stellt die Funktionen zur Berechnung eines Matrixeintrages $A_{jk}$ bereit, welcher dann für parallele Elemente über
 \begin{lstlisting}[language=C++,numbers=none]
 double cParO1(b,d,t,v,d1,d2,d3,zeta*);
 \end{lstlisting}
-  berechnet werden kann. \lstinline!b,d! entspricht den Seitenlängen des Elements $T_j$ und \lstinline!t,v! denen des Elements $T_k$ und $\bs \delta =$\lstinline!(d1,d2,d3)! dem Abstandsvektor, wie in Kapitel \ref{sec:analyt:int}. Hierbei ist zu beachten, dass \lstinline!b,t! in der selben Dimension liegen wie auch \lstinline!d1! und wie auch \lstinline!d,v,d2! in der selben Dimension liegen. Die Zulässigkeitsbedingungen werden durch \lstinline!zeta*! = $(\zeta_Q,\zeta_E)$ bestimmt. Für Ortogonale Elemente steht analog die Funktion
+  berechnet werden kann. \lstinline!b,d! entspricht den Seitenlängen des Elements $T_j$ und \lstinline!t,v! denen des Elements $T_k$ und $\bs \delta =$\lstinline!(d1,d2,d3)! dem Abstandsvektor, wie in Kapitel \ref{sec:analyt:int}. Hierbei ist zu beachten, dass \lstinline!b,t! in der selben Dimension liegen, wie auch \lstinline!d1! und wie auch \lstinline!d,v,d2! in der selben Dimension liegen. Die Zulässigkeitsbedingungen werden durch \lstinline!zeta*! = $(\zeta_Q,\zeta_E)$ bestimmt. Für orthogonale Elemente steht analog die Funktion
 \begin{lstlisting}[language=C++,numbers=none]
 double cOrtO1(b,d,t,v,d1,d2,d3,zeta*);
 \end{lstlisting}
@@ -2481,25 +2480,25 @@ for(int i=0;i<GAUSS_SIZE[3];++i)
 \end{lstlisting}
 
   \noindent
-  Da die Datei fast nur Quadraturpunkte und Gewichte enthält wollen wir hier nur den Anfang vorstellen.
+  Da die Datei fast nur Quadraturpunkte und Gewichte enthält, wollen wir hier nur den Anfang vorstellen.
  \lstinputlisting[language=C++,firstline=26,firstnumber=26,lastline=41]{../src/gauss.hpp}
 
  \subsection[Matlab]{\Matlab}
- Hier wollen wir alle \Matlab-Funktionen für den adaptiven Algorithmus \ref{alg:adapt} vorstellen. Funktionen die lediglich zum Erstellen von Grafiken und zum Testen dienen werden wir hier nicht zeigen.
+ Hier wollen wir alle \Matlab-Funktionen für den adaptiven Algorithmus \ref{alg:adapt} vorstellen. Funktionen, die lediglich zum Erstellen von Grafiken und zum Testen dienen, werden wir hier nicht zeigen.
   \subsubsection{compute.m}\label{code:compute}
-  Diese Funktion Implementiert im Wesentlichen den Algorithmus \ref{alg:adapt}. Nachdem das Startnetz aus der Datei \lstinline!file! geladen wurde, werden \lstinline!times! $\in\N$ Verfeinerungsschritte durchgeführt. Sollte \lstinline!times! größer als 40 sein, wird nicht nach 40 Schritten abgebrochen sondern nachdem die Elementanzahl \lstinline!times! vom Netz $\T_{\ell}$ erreicht wurde. Die Berechnungsarten werden über den Vektor \lstinline!typ! $\in\{1,2,3,4\}^n$ bestimmt. Hierbei werden in jedem Verfeinerungsschritt alle $n$ Berechnungsarten aus \lstinline!typ!  auf dem selben Netz durchgeführt. \lstinline!zeta! ist ein Array welcher zu den $n$ Berechnungsarten den entsprechenden $\zeta=(p,\zeta_Q,\zeta_E)$ Vektor enthält. Zum steuern des Verfeinernalgorithmus \ref{alg:refine} dienen die Parameter \lstinline!theta,nu! $\in[0,1]$ und über den Parameter \lstinline!vcon! $\in\{0,1\}$ kann die Vorkonditionierung der $A$ Matrix eingeschaltet werden. Das neue Netz $\T_{\ell+1}$ wird durch die letzte 
-Berechnungsart bestimmt. Zurück gegeben wird die Matrix \lstinline!data!, in der alle wichtigen Auswertungen gespeichert sind.
+  Diese Funktion implementiert im Wesentlichen den Algorithmus \ref{alg:adapt}. Nachdem das Startnetz aus der Datei \lstinline!file! geladen wurde, werden \lstinline!times! $\in\N$ Verfeinerungsschritte durchgeführt. Sollte \lstinline!times! größer als 40 sein, wird nicht nach 40 Schritten abgebrochen sondern nachdem die Elementanzahl \lstinline!times! vom Netz $\T_{\ell}$ erreicht wurde. Die Berechnungsarten werden über den Vektor \lstinline!typ! $\in\{1,2,3,4\}^n$ bestimmt. Hierbei werden in jedem Verfeinerungsschritt alle $n$ Berechnungsarten aus \lstinline!typ!  auf dem selben Netz durchgeführt. \lstinline!zeta! ist ein Array, welcher zu den $n$ Berechnungsarten den entsprechenden $\zeta=(p,\zeta_Q,\zeta_E)$ Vektor enthält. Zum Steuern des Verfeinern-Algorithmus \ref{alg:refine} dienen die Parameter \lstinline!theta,nu! $\in[0,1]$ und über den Parameter \lstinline!vcon! $\in\{0,1\}$ kann die Vorkonditionierung der $A$ Matrix eingeschaltet werden. Das neue Netz $\T_{\ell+1}$ wird durch die letzte 
+Berechnungsart bestimmt. Zurückgegeben wird die Matrix \lstinline!data!, in der alle wichtigen Auswertungen gespeichert sind.
   Die folgende Zeile 
 \begin{lstlisting}[language=M,numbers=none]
 compute('exmpl_2DQuad',500,{[0 0 0] [3 2 2]},[1 2],0.5,0.5,0);
 \end{lstlisting}
-führt eine adaptiv anisotrope ($\theta=0.5,\nu=0.5$) voll Analytische und volle Quadratur, für $\zeta_Q=2$-Zulässige Elemente, (\lstinline!typ=[1 2]!) Berechnung bis \lstinline!times=500! Elemente auf einem Quadrat durch. Hierbei wird eine Gauss-Quadratur vom Grad 8 verwendet, keine Vorkonditionierung und zum Markieren der zu verfeinernden Elemente die Galerkin-Lösung zum Typ "`volle Quadratur"'. Gelöst wird das Problem aus \eqref{math:bsp:Quad:gls}.
+führt eine adaptiv anisotrope ($\theta=0.5,\nu=0.5$) voll analytische und volle Quadratur für $\zeta_Q=2$-zulässige Elemente, (\lstinline!typ=[1 2]!) Berechnung bis \lstinline!times=500! Elemente auf einem Quadrat durch. Hierbei wird eine Gauss-Quadratur vom Grad 8 verwendet, keine Vorkonditionierung und zum Markieren der zu verfeinernden Elemente die Galerkin-Lösung zum Typ "`volle Quadratur"'. Gelöst wird das Problem aus \eqref{math:bsp:Quad:gls}.
 \begin{lstlisting}[language=M]
 function [data er fileo] = compute(file,times,zeta,typ,theta,nu,vcon)
 \end{lstlisting}
  \lstinputlisting[language=M,firstline=19,firstnumber=19]{../src/compute.m}
   \subsubsection{refineQuad.m}\label{code:refineQuad}
-  Diese Funktion implementiert den Verfeinern Algorithmus \ref{alg:refine}. Übergeben werden vom Netz $\T_{\ell}$, die Koordinatenmatrix \lstinline!coordinates! $\in\R^{M\times3}$, die Elementmatrix \lstinline!elements! $\in\{1,\ldots,M\}^{N\times4}$, die Nachbarschaftsrelationen \lstinline!neigh! $\in\{0,1,\ldots,N\}^{N\times8}$. Weiterhin wird auch die Seitenmatrix \lstinline!sites! $\in\N^{N\times2}$ übergeben. Die $j$te Zeile $(a_{j},b_{j})$ entspricht der Anzahl der Halbierungen der Seitenlängen $a,b$ vom Element $T_j$, gelten muss hierbei $a = 2^{-a_j}$ und $b = 2^{-b_j}$. Außerdem entspricht \lstinline!typ! $\in\{1,\ldots,5\}^N$ der Markierung. Bei der Rückgabe des verfeinerten Netzes $\tilde{\T_{\ell}}$ werden zusätzlich die VaterSohn Beziehungen \lstinline!f2s! zurückgegeben.
+  Diese Funktion implementiert den Verfeinern-Algorithmus \ref{alg:refine}. Übergeben werden vom Netz $\T_{\ell}$, die Koordinatenmatrix \lstinline!coordinates! $\in\R^{M\times3}$, die Elementmatrix \lstinline!elements! $\in\{1,\ldots,M\}^{N\times4}$, die Nachbarschaftsrelationen \lstinline!neigh! $\in\{0,1,\ldots,N\}^{N\times8}$. Weiterhin wird auch die Seitenmatrix \lstinline!sites! $\in\N^{N\times2}$ übergeben. Die $j$te Zeile $(a_{j},b_{j})$ entspricht der Anzahl der Halbierungen der Seitenlängen $a,b$ vom Element $T_j$, gelten muss hierbei $a = 2^{-a_j}$ und $b = 2^{-b_j}$. Außerdem entspricht \lstinline!typ! $\in\{1,\ldots,5\}^N$ der Markierung. Bei der Rückgabe des verfeinerten Netzes $\tilde{\T_{\ell}}$ werden zusätzlich die VaterSohn-Beziehungen \lstinline!f2s! zurückgegeben.
 \begin{lstlisting}[language=M]
 function [coo,ele,nei,f2s,sit,err] = refineQuad(coordinates,elements,neigh,sites,typ)
 \end{lstlisting}  
@@ -2511,9 +2510,9 @@ function [coo,ele,nei,f2s,sit,err] = refineQuad(coordinates,elements,neigh,sites
 % \end{lstlisting}  
 %  \lstinputlisting[language=M,firstline=30,firstnumber=30]{../src/areaQuad.m}
   \subsubsection{mark.m}\label{code:mark}
-  Diese Funktion Implementiert die Definition \ref{thm:def:mark}. Die Funktion wird mit der Matrix $xF2S$, dem Fehlerschätzer $\tilde \mu$ und den beiden Parametern $\theta,\nu$ aufgerufen.
-  Hierbei seien die Einträge der Matrix $xF2S \in \R^{N\times4}$ geben durch $(xF2S)_{ij} = \langle\hat\phi_{\ell},\chi_{(F2S_{ij})}\rangle$, wobei $F2S\in\N^{N\times4}$ die Matrix der Vater-Sohnrelationen und $\hat \phi_{\ell}$ die Galerkin-Lösung zum $\hat \T_{\ell}$ Netz ist.
-  Zurück geben wird der Markierungsvektor $marked\in\{1,2,3,4\}^N$.
+  Diese Funktion implementiert die Definition \ref{thm:def:mark}. Die Funktion wird mit der Matrix $xF2S$, dem Fehlerschätzer $\tilde \mu$ und den beiden Parametern $\theta,\nu$ aufgerufen.
+  Hierbei seien die Einträge der Matrix $xF2S \in \R^{N\times4}$ geben durch $(xF2S)_{ij} = \langle\hat\phi_{\ell},\chi_{(F2S_{ij})}\rangle$, wobei $F2S\in\N^{N\times4}$ die Matrix der VaterSohn-Relationen und $\hat \phi_{\ell}$ die Galerkin-Lösung zum $\hat \T_{\ell}$ Netz ist.
+  Zurückgeben wird der Markierungsvektor $marked\in\{1,2,3,4\}^N$.
 \begin{lstlisting}[language=M]
 function REF = mark(xF2S,ind,theta,nu)
 \end{lstlisting}  
index 3e6093a2c699e249c64606d79950a8dfd159d903..90e0050e9af2830069c2c41d94c5d8d4e06d0519 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_2DQuad_cond.eps
-%%CreationDate: 05/21/2013  12:12:18
+%%CreationDate: 05/23/2013  11:40:01
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
@@ -779,9 +779,9 @@ gr
 
 DA
 c2
-0 -2769 3963 3041 2 MP stroke
-0 -2592 3963 3041 2 MP stroke
-0 -2608 3963 3041 2 MP stroke
+0 -2769 3847 3041 2 MP stroke
+0 -2592 3847 3041 2 MP stroke
+0 -2608 3847 3041 2 MP stroke
 gr
 
 c2
index 3590c9c0f98d279f848cf9d4ae363cbcf50fd89c..4c91aace6fcf13d0f55e69c4d93f69568294567e 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_2DQuad_error.eps
-%%CreationDate: 05/21/2013  12:12:17
+%%CreationDate: 05/23/2013  11:40:00
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
@@ -1103,9 +1103,9 @@ DA
 45 27 62 37 48 28 52 31 70 41 51 31 90 53 71 42 
 103 61 123 72 190 113 254 150 560 331 1183 1114 30 MP stroke
 c2
-0 -2147 3963 2995 2 MP stroke
-0 -2144 3963 2992 2 MP stroke
-0 -2144 3963 2992 2 MP stroke
+0 -2147 3847 2995 2 MP stroke
+0 -2144 3847 2992 2 MP stroke
+0 -2144 3847 2992 2 MP stroke
 gr
 
 c2
index e3c2e154358fb3ec609170f9426784743d73b4cf..4b5c14c6c93094a347a2b3b56df56a20858d6ad6 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_2DQuad_hminmax.eps
-%%CreationDate: 05/21/2013  12:12:18
+%%CreationDate: 05/23/2013  11:40:00
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
@@ -1179,9 +1179,9 @@ gr
 
 DA
 c2
-0 -2797 3963 3142 2 MP stroke
-0 -2797 3963 3142 2 MP stroke
-0 -2797 3963 3142 2 MP stroke
+0 -2797 3847 3142 2 MP stroke
+0 -2797 3847 3142 2 MP stroke
+0 -2797 3847 3142 2 MP stroke
 gr
 
 c2
index dd7849ae4885ddbfb1807728bd2f5b26457333da..10a7e8ba488df9085be39c614fbf7a359879360f 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_2DQuad_time.eps
-%%CreationDate: 05/21/2013  12:12:19
+%%CreationDate: 05/23/2013  11:40:01
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
index 8a6b09d6d57010228a166b0d842af3c33d84fa32..877134e621217735e59beb2990d5db9f887c8651 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_3DFichCube_cond.eps
-%%CreationDate: 05/21/2013  12:12:20
+%%CreationDate: 05/23/2013  11:40:04
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
@@ -702,9 +702,9 @@ gr
 
 DA
 c2
-0 -2330 4029 2924 2 MP stroke
-0 -1947 4029 2924 2 MP stroke
-0 -1947 4029 2924 2 MP stroke
+0 -2330 3907 2924 2 MP stroke
+0 -1947 3907 2924 2 MP stroke
+0 -1947 3907 2924 2 MP stroke
 gr
 
 c2
index 3b6b3041a27ce75bed408df1b0a490a04d4b5b20..26945ef587f3b9d4a9b7f016c4130039824a3f71 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_3DFichCube_error.eps
-%%CreationDate: 05/21/2013  12:12:19
+%%CreationDate: 05/23/2013  11:40:03
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
@@ -917,9 +917,9 @@ DA
 73 32 99 44 92 41 97 43 131 58 114 51 152 67 120 53 
 219 98 142 63 245 108 235 105 528 234 1095 1542 22 MP stroke
 c2
-0 -1805 4029 2690 2 MP stroke
-0 -1766 4029 2651 2 MP stroke
-0 -1766 4029 2651 2 MP stroke
+0 -1805 3907 2690 2 MP stroke
+0 -1766 3907 2651 2 MP stroke
+0 -1766 3907 2651 2 MP stroke
 gr
 
 c2
index a631271190bd583749f4ae1d36d4c9714f520af1..1bd15ad4f79ca9a67887b79e9d20d6ca7abc8b29 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_3DFichCube_hminmax.eps
-%%CreationDate: 05/21/2013  12:12:20
+%%CreationDate: 05/23/2013  11:40:04
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
@@ -936,9 +936,9 @@ gr
 
 DA
 c2
-0 -2353 4029 2726 2 MP stroke
-0 -2353 4029 2726 2 MP stroke
-0 -2353 4029 2726 2 MP stroke
+0 -2353 3907 2726 2 MP stroke
+0 -2353 3907 2726 2 MP stroke
+0 -2353 3907 2726 2 MP stroke
 gr
 
 c2
index 563fb7d454ce52901c28b44d2869d2fb1b1679e9..2a7fac8e0e795276e8986a454fb8a56cdfea7a6e 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-1.2
 %%Creator: MATLAB, The MathWorks, Inc. Version 8.1.0.604 (R2013a). Operating System: Linux 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64.
 %%Title: ../doc/fig/132t05n05_3DFichCube_time.eps
-%%CreationDate: 05/21/2013  12:12:21
+%%CreationDate: 05/23/2013  11:40:05
 %%DocumentNeededFonts: Helvetica
 %%DocumentProcessColors: Cyan Magenta Yellow Black
 %%Extensions: CMYK
index efd4a957a656a28d20795baae144aa23becdde64..66278ca95a2ad68c533c7ab63ead8208ac2bd25e 100644 (file)
@@ -156,7 +156,7 @@ i=0;
 % shift2 = shift2+shift2/10;
 % error*(eta(l)-shift2)/error(l)
 
-first = 1 +find(([ (G_D(2:end,2+rows*i)-G_D(1:end-1,2+rows*i))./G_D(2:end,2+rows*i)])>=0,1)
+first = 0 +find(([ (G_D(2:end,2+rows*i)-G_D(1:end-1,2+rows*i))./G_D(2:end,2+rows*i)])>=0,1)
 Ferr = (X(first,i+1)+X(first-1,i+1))/2;
 
 loglog(X(:,i+1),G_D(:,2+rows*i),type2sym(i*3+1), ...
index 9ba527ac766e1358706e76214c80c917ece2941d..8cae628f4ef9ea4afa04f46906e5945aa277250b 100644 (file)
@@ -19,7 +19,7 @@ function [data er fileo] = compute(file,times,zeta,typ,theta,nu,vcon)
 % Datei laden
 load(file)
 
-% Kontainer fuer Messungen initialisieren
+% Container fuer Messungen initialisieren
 if(~exist('data','var'))
     data=[];
 end
@@ -28,7 +28,7 @@ kap3 = 0;
 
 %times mal verfeinern oder bis Elementanzahl fuer times > 40
 for j = 1:times
-  %Beende Schleife wenn Element Anzahl erreicht
+  %beende Schleife wenn Elementanzahl erreicht
   if(times>40 && size(elements,1) > times)
     break;
   end
@@ -41,11 +41,11 @@ for j = 1:times
     old_x_fine = x_fine;
   end
 
-  %uniformIsotrop Verfeinern
+  %uniformIsotrop verfeinern
   [coo_fine,ele_fine,neigh_fine,f2s,sit_fine]...
     =refineQuad(coordinates,elements,neigh,sites,2);
 
-  %Flaecheninhalte Berechnen (rhs)
+  %Flaecheninhalte berechnen (rhs)
   b_fine = 2.^-sum(sit_fine,2);
   
   b = 2.^-sum(sites,2);
@@ -56,7 +56,7 @@ for j = 1:times
   %data -> ErgebnisVektor
   dataS = size(elements,1);
   
-  %zeta Vorbereiten
+  %zeta vorbereiten
   if(~iscell(zeta))
     zeta_tmp = zeta;
     clear zeta;
@@ -65,14 +65,14 @@ for j = 1:times
     end
   end
   
-  %Alle MatrixBrechenungsArten mit dem selben Netz berechnen
+  %alle MatrixBrechenungsArten mit dem selben Netz berechnen
   for i = 1:length(typ)
     start_time = toc;
     disp([num2str(size(elements,1)) ' : ' t2str(toc) ' ->' num2str(i)])
     %Matrix aufbauen -> MEX
     V_fine = mex_build_V(coo_fine,ele_fine,zeta{i},typ(i));
     build_time = toc;
-    %Testet auf Fehlerhafte Eintraege (NaN +/-Inf)
+    %testet auf fehlerhafte Eintraege (NaN +/-Inf)
     [r c] = find(isnan(V_fine)~=isinf(V_fine));
     if(~isempty(r))
         figure(9)
@@ -82,7 +82,7 @@ for j = 1:times
     end
  
     if(~vcon)
-    %Loesung Berechnen
+    %Loesung berechnen
         x_fine = V_fine\b_fine;
         con = cond(V_fine);
     else
@@ -125,14 +125,14 @@ for j = 1:times
     mu = hmin.*b.*sum((x_fine(f2s)'-repmat(x',4,1)).^2)'/4;
 
 
-    %Energienorm^2 Berechnen |||h||| & |||h/2|||
+    %Energienorm^2 berechnen |||h||| & |||h/2|||
 %     xe_fine = x_fine'*A_fine*x_fine;
     xe_fine = b_fine'*x_fine;
 %     xe = x'*A*x;
     xe = b'*x;
     
     
-    %Enorm^2 Elementweise Vergleich
+    %Enorm^2 Elementweise vergleichen
     if(exist('old_F_fine','var'))
       for k = 1:size(ele_fine,1)
         e_f = find(sum(k==f2s,2));
@@ -191,10 +191,10 @@ for j = 1:times
         ];
   end
 
-  % Markieren mit gewaehlten Parametern
+  % markieren mit gewaehlten Parametern
   marked = mark(x_fine(f2s)',tmu,theta,nu);
   
-  % Netz bunt Plotten!
+  % Netz bunt plotten!
 %   figure(1)
 %   plotShape(G_C,G_E,'s',tmu);
 %   title('Elemente mit Fehlerschaetzer')
@@ -209,7 +209,7 @@ for j = 1:times
   old_E = elements;
   old_S = sites;
   
-  %Netz Verfeinern, wie durch marked bestimmt
+  %Netz verfeinern, wie durch marked bestimmt
   [coordinates, elements, neigh, f, sites, er]...
     = refineQuad(coordinates,elements,neigh,sites,marked);
   
@@ -243,7 +243,7 @@ for j = 1:times
      p2(2) = p2(2) -2;
    end
   
-  %ErgebnisWerte Speichern
+  %ErgebnisWerte speichern
   data(size(data,1)+1,1:length(dataS)) = dataS;
   typeN = int2str(typ);
   fileo = [typeN(typeN~=' ')...
index f6b30025715ac57bc776e11ae642f7edbab4bee9..fb83974d2e5abf66ffcb18b9db1bae41c66c78d1 100644 (file)
@@ -166,10 +166,11 @@ A_plots({'meshSave/1t1n0_2DQuad_6',...
 
 %% Semianalytisch
 A_plots({'meshSave/132t05n05_2DQuad_30'},'../doc/fig/132t05n05_2DQuad')
+A_plots({'meshSave/142t05n05_2DQuad_30'},'../doc/fig/142t05n05_2DQuad')
 A_plots({'meshSave/142t05n05_3DFichCube_22'},'../doc/fig/132t05n05_3DFichCube')
 
-A_plots({'meshSave/1432t05n05_3DFichCube_21'},'../doc/fig/1432t05n05_3DFichCube')
-A_plots({'meshSave/1432t05n05_2DQuad_29'},'../doc/fig/1432t05n05_2DQuad')
+A_plots({'meshSave/1432t05n05_3DFichCube_21'},'../doc/fig/1432t05n05_3DFichCube')
+A_plots({'meshSave/1432t05n05_2DQuad_29'},'../doc/fig/1432t05n05_2DQuad')
 
 % A_plots({'meshSave/2222t05n05_2DQuad_30'},'../doc/fig/2222t05n05_2DQuad')
 
index 17ba062aae254841fb8d9b46180652a0a87f7fc3..93a56ca0944ef8fd5d9e2f274babe72f0ade45e4 100644 (file)
@@ -18,7 +18,7 @@ t3 =0; t4 = 0;
 
 Ct = T4*xF2S;
 
-%% Muss ueberhaupt verfeinert werden (welche sollen nicht verfeinert werden)
+%% muss ueberhaupt verfeinert werden (welche sollen nicht verfeinert werden)
 if(theta <1)
     [s_ind idx] = sort(ind,'descend');
 
@@ -33,14 +33,14 @@ if(theta <1)
 end
 
 
-%% Wie muss verfeinert werden
+%% wie muss verfeinert werden
 if(nu > 0) % Horizontal oder Vertikal
     t3 = (nu*abs(Ct(3,:)) >= sqrt(Ct(2,:).^2+Ct(4,:).^2));
     REF(t3-t1==1) = 3;   
     t4 = (nu*abs(Ct(4,:)) >= sqrt(Ct(2,:).^2+Ct(3,:).^2));
     REF(t4-t1==1) = 4;
 end
-REF(~(t4+t3+t1)) = 2;   % Rest wird Horizontal UND Vertikal geteilt
+REF(~(t4+t3+t1)) = 2;   % Rest wird horizontal UND vertikal geteilt
 
 
 end
index 332915a65ed0193562de4af9ae4e4ced40599409..f0b5641276db3458b046b1ea884ef8593bec9c6f 100644 (file)
@@ -27,7 +27,7 @@
 /***************************************************************************/\r
 \r
 /*\r
- * wenn gesetzt wird paralleles Rechnen benutzt\r
+ * wenn gesetzt wird, paralleles Rechnen benutzt\r
  */\r
 #define PARALLEL\r
 #include <cmath>\r
@@ -209,7 +209,7 @@ double inline distT_ort(double b, double d, double t, double v, double d1,
 }\r
 \r
 /*\r
- * mexFunktion zum aufbauen der Galerkin Matrix\r
+ * mexFunktion zum Aufbauen der Galerkin Matrix\r
  */\r
 void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {\r
 \r
@@ -294,19 +294,19 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                        double*);\r
 \r
        switch (type) {\r
-       default: // Voll Analytisch\r
+       default: // voll analytisch\r
                ctypeP = cParO1;\r
                ctypeO = cOrtO1;\r
                break;\r
-       case 2: // Analytisch oder Qadratur\r
+       case 2: // analytisch oder Qadratur\r
                ctypeP = cParO2;\r
                ctypeO = cOrtO2;\r
                break;\r
-       case 3: // Analytisch oder Qadratur oder Qy[1]x2\r
+       case 3: // analytisch oder Qadratur oder Qy[1]x2\r
                ctypeP = cParO3;\r
                ctypeO = cOrtO3;\r
                break;\r
-       case 4: // Analytisch oder Qy[1]x2\r
+       case 4: // analytisch oder Qy[1]x2\r
                ctypeP = cParO4;\r
                ctypeO = cOrtO4;\r
 //             ctypeO = cOrtO2;\r
@@ -317,7 +317,7 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                break;\r
        }\r
 \r
-       //LageInformationen\r
+       //Lageinformationen\r
        int rx, rxa, rxb, ry, rya, ryb;\r
        double tmp;\r
        double x[4][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };\r
index 8ee43f21cf06ccda449f8d51255a8d2d28d703b6..a405677af8432313fa435ba2f29759365dd3658f 100644 (file)
@@ -17,7 +17,7 @@ function [coo,ele,nei,f2s,sit,err] = refineQuad(coordinates,elements,neigh,sites
 
 err = [];
 
-%Type wenn nur ein Wert: aufblaehen
+%Type: wenn nur ein Wert: aufblaehen
 if([1 1] == size(typ))
     typ = repmat(typ, size(elements,1),1);
 end
@@ -31,12 +31,12 @@ global G_ref_E;
 global G_ref_C;
 global G_ref_N;
 global G_ref_S;
-global G_ref_f2s; %Finale Beziehung (VaterSohn)
+global G_ref_f2s; %finale Beziehung (VaterSohn)
 global G_ref_t;  %wie soll verfeinert werden
 global G_ref_tD; %wie wurde bereits verfeinert (in diesem Durchlauf)
-global G_ref_f2sT; %Temporaere Beziehung
+global G_ref_f2sT; %temporaere Beziehung
 
-%INTERNE Globale Variablen zuweisen
+%INTERNE globale Variablen zuweisen
 G_ref_E = elements;
 G_ref_C = coordinates;
 G_ref_N = neigh;
@@ -45,7 +45,7 @@ G_ref_t = typ;
 G_ref_f2s = repmat((1:size(elements,1))',1,4);
 G_ref_tD = ones(size(elements,1),1);
 
-%Parameter Freigeben (Speicher...)
+%Parameter freigeben (Speicher...)
 clear elements coordinates neigh typ
 
 % figure(11)
@@ -57,17 +57,17 @@ clear elements coordinates neigh typ
 ref_old = [];
 ref_old2 = [];
 
-%Jedes Element verfeinern
+%jedes Element verfeinern
 while(1==1)
-  %jeden 4ten 2er durch schrittweise Verfeinerung (5) ersetzen
+  %jeden vierten 2er durch schrittweise Verfeinerung (5) ersetzen
   t_ref=find(G_ref_t==2);
   G_ref_t(t_ref(2:4:end)) = 5;
   
-  %Welche Elemente muessen bearbeitet werden
+  %welche Elemente muessen bearbeitet werden
   ref = find(G_ref_t>1);
   ref = reshape(ref,1,length(ref));
   
-  %Muss noch weiter Verfeinert werden?
+  %muss noch weiter Verfeinert werden?
   if(isequal(ref,ref_old))
       assert(~isequal(ref_old2,G_ref_t,'Markierte sind verschieden'));
     break;
@@ -78,7 +78,7 @@ while(1==1)
     break;
   end
   
-  % Elementeweise Bearbeiten
+  % Elementeweise bearbeiten
   for ele = ref % ref(randperm(length(ref)))
 
     % HangingNode Check
@@ -95,7 +95,7 @@ while(1==1)
        N2 = N2(mod(N2tt,2)==1);
     end
 
-    %Hat noch zu teilende Nachbarn?
+    %hat noch zu teilende Nachbarn?
     if(~isempty(N2))
       N3t = mod(find((G_ref_N(N2',:)==ele)')-1,4)+1; %Nachbarseiten    
       N4t = find(diag(G_ref_N(N2',(N3t + 4)'))~=0)';  %Nachbarn mit 2Nachbarn
@@ -122,16 +122,16 @@ while(1==1)
             
           end
           
-          % Da Nachbarn noch Verfeinert werden muessen erst mal weiter
+          % Da Nachbarn noch verfeinert werden muessen, erst mal weiter
           continue;
         end
     end
 
-    % Wenn Alle Ueberpruefungen durchgelaufen sind
+    % Wenn alle Ueberpruefungen durchgelaufen sind
      assert(G_ref_tD(ele)~=2,'Element ist schon verfeinert')
      assert(G_ref_t(ele)>1,'Element ist nicht Markiert')
      G_ref_f2sT = ones(1,4)*ele;
-     refineE(ele); %Element Teilen
+     refineE(ele); %Element teilen
      updateN(ele); %Nachbarn des Elements aktualisieren
      updateF2S(ele); %VaterSohn Relation setzen
   end
@@ -144,16 +144,16 @@ nei = G_ref_N;
 f2s = G_ref_f2s;
 sit = G_ref_S;
 
-%Doppelte Koordinaten loeschen
+%doppelte Koordinaten loeschen
 [coo , ~, pos] = unique(coo,'rows');
 pos = pos';
 ele = pos(ele);
 
- %INTERNE Globale Variablen freigeben
+ %INTERNE globale Variablen freigeben
 clear G_ref_E G_ref_C G_ref_N G_ref_f2s G_ref_t G_ref_tD G_ref_s
 end
 
-%% Element Verfeinern ! sollte nur ausgefuehrt werden wenn wirklich moeglich
+%% Element verfeinern ! sollte nur ausgefuehrt werden wenn wirklich moeglich
 function refineE(ele)
 % Element wird gnadenlos Verfeinert
 
@@ -219,11 +219,11 @@ global G_ref_f2sT;
 global G_ref_t;
 
 this = G_ref_N(ele,:);
-%An welchen Kanten habe ich Nachbarn
-S = find(mod((this(1:4)~=0).*(this(5:8)==0),2))'; %Einen Nachbar (Single)
-D = find(this(5:8)~=0)';    %Zwei Nachbarn (Double)
+%an welchen Kanten habe ich Nachbarn
+S = find(mod((this(1:4)~=0).*(this(5:8)==0),2))'; %einen Nachbar (Single)
+D = find(this(5:8)~=0)';    %zwei Nachbarn (Double)
 
-%An welchen Kanten bin ich Nachbar
+%an welchen Kanten bin ich Nachbar
 MSt = mod(find((G_ref_N(this(S),:)==ele)')-1,8)+1;
 MS = mod(MSt-1,4)+1;  % (Single)    %OHNE MOD????
 MD = mod(find((G_ref_N(this([D D+4]),:)==ele)')-1,4)+1;
@@ -329,15 +329,15 @@ end
 
 end
 
-%% Aktualisieren der VaterSohn Beziehung ! sollte nur ausgefuehrt werden wenn wirklich moeglich
+%% aktualisieren der VaterSohn Beziehung ! sollte nur ausgefuehrt werden wenn wirklich moeglich
 function updateF2S(ele)
-%Vater Sohn Beziehungen richtig Setzen
+%VaterSohn Beziehungen richtig Setzen
     global G_ref_f2s;
     global G_ref_f2sT;
     global G_ref_t;
     global G_ref_tD;
    
-    if(G_ref_tD(ele)==1) %Wenn Element zum ersten Mal verfeinert wird
+    if(G_ref_tD(ele)==1) %wenn Element zum ersten Mal verfeinert wird
         G_ref_f2s(ele,:) = G_ref_f2sT;
         if(G_ref_t(ele)<5)
             G_ref_tD(G_ref_f2sT) = G_ref_t(ele);
@@ -346,7 +346,7 @@ function updateF2S(ele)
             G_ref_tD(G_ref_f2sT) = 3;
             G_ref_t(G_ref_f2sT) = 4;
         end
-    else %Wenn Element zum zweiten Mal verfeinert wird
+    else %wenn Element zum zweiten Mal verfeinert wird
         G_ref_tD(G_ref_f2sT) = 2;
         org=floor((find(G_ref_f2s'==ele,1)-1)/4)+1;
         pos=find(G_ref_f2s(org,:)==ele,1);
index c7e9b7fc847c2e0058671332009e3cb137d2d6e3..294d50f9902d1a74a7f2fb08008eb2b692024157 100644 (file)
@@ -21,8 +21,6 @@ int GAUSS_size = GAUSS_SIZE[2];
 gauss * GAUSS_nodes = GAUSS_NODES[2];\r
 \r
 \r
-double count[][2] = {{0,0},{0,0}};\r
-\r
 \r
 /*\r
  * setzt den Quadraturgrad, also 2^q Auswertungsstellen\r
@@ -34,14 +32,7 @@ int setQuad(int q) {
 }\r
 \r
 /*\r
- * gibt die count Matrix zurueck\r
- */\r
-double ** getCount(){\r
-       return (double **) count;\r
-}\r
-\r
-/*\r
- * gibt das signum von x zurueck\r
+ * gibt das Signum von x zurueck\r
  */\r
 int inline sign(double x) {\r
        return x > 0 ? 1 : (x < 0 ? -1 : 0);\r
@@ -55,7 +46,7 @@ double inline max(double x, double y) {
 }\r
 \r
 /*\r
- * gibt das minimum der beiden Zahlen x,y zurueck\r
+ * gibt das Minimum der beiden Zahlen x,y zurueck\r
  */\r
 double inline min(double x, double y) {\r
        return x > y ? y : x;\r
@@ -496,7 +487,7 @@ double inline intA4(double b, double d, double t, double v, double d1,
 \r
 /*\r
  * fuer parallele Elemente\r
- * voll Analytisch\r
+ * voll analytisch\r
  */\r
 double cParO1(double b, double d, double t, double v, double d1, double d2,\r
                double d3, double* zeta) {\r
@@ -504,7 +495,7 @@ double cParO1(double b, double d, double t, double v, double d1, double d2,
 }\r
 /*\r
  * fuer orthogonale Elemente\r
- * voll Analytisch\r
+ * voll analytisch\r
  */\r
 double cOrtO1(double b, double d, double t, double v, double d1, double d2,\r
                double d3, double* zeta) {\r
index 5a8516a57b87e792b1b7925ee12ba2a7b7b2a583..4982fe88d37a98fd4112a02a06df5d4339ed82b8 100644 (file)
@@ -14,7 +14,7 @@
 #define HILBERT3D_LAPLACE_SLPRECTANGLE_HPP_GUARD_
 
 /*
- * voll Analytisch rechnen
+ * voll analytisch rechnen
  */
 double cParO1(double, double, double, double, double, double, double, double*);
 double cOrtO1(double, double, double, double, double, double, double, double*);
@@ -46,9 +46,4 @@ double cOrtO4(double, double, double, double, double, double, double, double*);
  */
 int setQuad(int);
 
-/*
- * gibt die count Matrix zurueck
- */
-double ** getCount();
-
 #endif