]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[src] A_plots automatische Plot Generierung
authortreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Wed, 18 Jan 2012 10:03:26 +0000 (10:03 +0000)
committertreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Wed, 18 Jan 2012 10:03:26 +0000 (10:03 +0000)
[src] mex Skript eta und eps angepasst

git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@74 26120e32-c555-405d-b3e1-1f783fb42516

13 files changed:
.cproject
.settings/org.eclipse.ltk.core.refactoring.prefs [new file with mode: 0644]
src/A_loadMeshF.m
src/A_plot.m
src/A_plots.m [new file with mode: 0644]
src/gauss.cpp [deleted file]
src/gauss.hpp [new file with mode: 0644]
src/mark.m
src/marked.m [new file with mode: 0644]
src/mesh.tar.gz [new file with mode: 0644]
src/mex_build_AU.cpp
src/slpRectangle.cpp
src/slpRectangle.hpp

index b3be917f4cf5223e9890fa1789f5e1a2dec02bca..dbf0e662a8cd3ad246cf70b0a0d5f4465c55b9f5 100644 (file)
--- a/.cproject
+++ b/.cproject
                                                <entry flags="BUILTIN|READONLY|RESOLVED" kind="includePath" name="/usr/lib/gcc/i686-linux-gnu/4.6.1/include-fixed"/>
                                                <entry flags="BUILTIN|READONLY|RESOLVED" kind="includePath" name="/usr/local/include"/>
                                                <entry flags="BUILTIN|READONLY|RESOLVED" kind="includePath" name="/usr/lib/gcc/i686-linux-gnu/4.6.1/include"/>
-                                               <entry flags="BUILTIN|READONLY|RESOLVED" kind="includePath" name="/usr/include/c++/4.6/backward"/>
                                                <entry flags="BUILTIN|READONLY|RESOLVED" kind="includePath" name="/usr/include/c++/4.6/i686-linux-gnu"/>
                                                <entry flags="BUILTIN|READONLY|RESOLVED" kind="includePath" name="/usr/include/c++/4.6"/>
-                                               <entry flags="RESOLVED" kind="libraryPath" name="/usr/include"/>
-                                               <entry flags="RESOLVED" kind="libraryFile" name="/usr/include"/>
+                                               <entry flags="RESOLVED" kind="includePath" name="/usr/include"/>
+                                               <entry flags="RESOLVED" kind="includePath" name="/usr/local/bin/MATLAB/R2011b/extern/include"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/bacc"/>
+                                               <entry flags="BUILTIN|READONLY|RESOLVED" kind="includePath" name="/usr/include/c++/4.6/backward"/>
                                        </externalSetting>
                                </externalSettings>
                                <extensions>
                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
                                <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1374879834" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
                                        <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1374879834." name="/" resourcePath="">
-                                               <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1402892739" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
+                                               <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1402892739" name="Linux GCC" resourceTypeBasedDiscovery="true" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
                                                        <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.216825272" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
-                                                       <builder buildPath="${workspace_loc:/bacc/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.314569416" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/bacc/Debug}" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="cdt.managedbuild.target.gnu.builder.exe.debug.314569416" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelizationNumber="1" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
                                                        <tool id="cdt.managedbuild.tool.gnu.archiver.base.673975031" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
                                                        <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1492228430" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
-                                                               <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1325017702" 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.1378814057" 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.810493965" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011b/extern/include"/>
+                                                               <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/R2011b/extern/include"/>
                                                                </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.78369668" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
                                                        </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1994406106" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
-                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.475185212" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
-                                                               <option id="gnu.c.compiler.exe.debug.option.debugging.level.1115195033" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
-                                                               <option id="gnu.c.compiler.option.include.paths.601253491" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011b/extern/include"/>
-                                                               </option>
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1330994210" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="gnu.c.compiler.exe.debug.option.debugging.level.433961131" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
                                                                <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1826163962" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
                                                        </tool>
-                                                       <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1178007821" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1178007821" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug">
+                                                               <option defaultValue="true" id="gnu.c.link.option.shared.1821033537" name="Shared (-shared)" superClass="gnu.c.link.option.shared" valueType="boolean"/>
+                                                       </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.993850582" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
-                                                               <option id="gnu.cpp.link.option.paths.1152453706" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
-                                                                       <listOptionValue builtIn="false" value="/usr/include"/>
-                                                               </option>
-                                                               <option id="gnu.cpp.link.option.libs.779138886" superClass="gnu.cpp.link.option.libs" valueType="libs">
-                                                                       <listOptionValue builtIn="false" value="/usr/include"/>
-                                                               </option>
+                                                               <option defaultValue="true" id="gnu.cpp.link.option.shared.1335634906" name="Shared (-shared)" superClass="gnu.cpp.link.option.shared" valueType="boolean"/>
                                                                <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1907807136" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
                                                                        <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
                                                                        <additionalInput kind="additionalinput" paths="$(LIBS)"/>
                                                                </inputType>
                                                        </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.843191636" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
-                                                               <option id="gnu.both.asm.option.include.paths.631245337" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/>
                                                                <inputType id="cdt.managedbuild.tool.gnu.assembler.input.741618650" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
                                                        </tool>
                                                </toolChain>
                </cconfiguration>
                <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1551091927">
                        <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1551091927" moduleId="org.eclipse.cdt.core.settings" name="Release">
-                               <externalSettings/>
+                               <externalSettings>
+                                       <externalSetting>
+                                               <entry flags="RESOLVED" kind="includePath" name="/usr/local/include"/>
+                                               <entry flags="RESOLVED" kind="includePath" name="/usr/local/bin/MATLAB/R2011b/extern/include"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/bacc"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/bacc/Release"/>
+                                               <entry flags="RESOLVED" kind="libraryFile" name="bacc"/>
+                                       </externalSetting>
+                               </externalSettings>
                                <extensions>
                                        <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
                                        <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
                                                        <builder buildPath="${workspace_loc:/bacc/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1991018479" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
                                                        <tool id="cdt.managedbuild.tool.gnu.archiver.base.516543900" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
                                                        <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.554293945" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
-                                                               <option id="gnu.cpp.compiler.exe.release.option.optimization.level.1757107776" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
-                                                               <option id="gnu.cpp.compiler.exe.release.option.debugging.level.2091671155" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
-                                                               <option id="gnu.cpp.compiler.option.include.paths.2103558113" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
-                                                                       <listOptionValue builtIn="false" value="/usr/include"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/include/c++/4.6/"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011a/extern/include/mex.h"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011b/extern/include/"/>
-                                                               </option>
+                                                               <option id="gnu.cpp.compiler.exe.release.option.optimization.level.645094830" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+                                                               <option id="gnu.cpp.compiler.exe.release.option.debugging.level.565478908" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
                                                                <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1789503460" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
                                                        </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.525421822" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
-                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.914297347" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
-                                                               <option id="gnu.c.compiler.exe.release.option.debugging.level.259006688" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
-                                                               <option id="gnu.c.compiler.option.include.paths.482973660" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
-                                                                       <listOptionValue builtIn="false" value="/usr/include"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/include/c++/4.6/"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011a/extern/include/mex.h"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011b/extern/include/"/>
-                                                               </option>
+                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1616815281" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="gnu.c.compiler.exe.release.option.debugging.level.234634063" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
                                                                <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1989618474" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
                                                        </tool>
-                                                       <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1777534795" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1777534795" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release">
+                                                               <option defaultValue="true" id="gnu.c.link.option.shared.1159102880" name="Shared (-shared)" superClass="gnu.c.link.option.shared" valueType="boolean"/>
+                                                       </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 id="gnu.cpp.link.option.paths.1144247696" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
-                                                                       <listOptionValue builtIn="false" value="/lib"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/include"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011a/extern/include"/>
-                                                               </option>
-                                                               <option id="gnu.cpp.link.option.libs.1698259338" superClass="gnu.cpp.link.option.libs" valueType="libs">
-                                                                       <listOptionValue builtIn="false" value="/usr/include"/>
-                                                               </option>
+                                                               <option defaultValue="true" id="gnu.cpp.link.option.shared.573528711" name="Shared (-shared)" superClass="gnu.cpp.link.option.shared" valueType="boolean"/>
                                                                <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1068735872" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
                                                                        <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
                                                                        <additionalInput kind="additionalinput" paths="$(LIBS)"/>
                                                                </inputType>
                                                        </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.244810253" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
-                                                               <option id="gnu.both.asm.option.include.paths.1456270326" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
-                                                                       <listOptionValue builtIn="false" value="/usr/include"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/include/c++/4.6/"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011a/extern/include/mex.h"/>
-                                                                       <listOptionValue builtIn="false" value="/usr/local/bin/MATLAB/R2011b/extern/include/"/>
-                                                               </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.assembler.input.780165160" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
                                                        </tool>
                                                </toolChain>
diff --git a/.settings/org.eclipse.ltk.core.refactoring.prefs b/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644 (file)
index 0000000..044f491
--- /dev/null
@@ -0,0 +1,3 @@
+#Mon Jan 16 22:45:22 CET 2012
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
index fa59a8042c2868b665e052c26545cdc80f57fa2d..9879040d5f44c01d9d2e4bbb835fded2e0029d2c 100644 (file)
@@ -21,7 +21,7 @@ function A_loadMeshF(file)
   if(exist('time','var')~=0)
     G_T = time;
   end
-  if(exist('datA','var')~=0)
+  if(exist('data','var')~=0)
     G_D = data;
   end
 end
index 72a1dc015fa15d352d1b79193eb4e782036448ec..dffc3a9aa161f5c973a18bfee7cfd45ec4ba62c0 100644 (file)
@@ -15,16 +15,18 @@ if step<1
 else
 
 figure(4)
-loglog(G_D(:,1),G_D(:,[3+(0:step-1)*3]))
+loglog(G_D(:,1),[G_D(:,[3+(0:step-1)*3]),20*G_D(:,1).^(-1/2),6*G_D(:,1).^(-1/4),5*G_D(:,1).^(-3/4)],...
+    G_D(1:end-1,1), sqrt(G_D(2:end,[4+(0:step-1)*3])-G_D(1:end-1,[4+(0:step-1)*3])),'--')
 
+title('Fehler')
 xlabel('Elemente');
 ylabel('Schaetzer');
-legend(type2str (G_D(1,[2+(0:step-1)*3])',:));
+legend([['m';'m';'m'] type2str(G_D(1,[2+(0:step-1)*3])',:); 'N^{-1/2}     '; 'N^{-1/4}     '; 'N^{-3/4}     ';['g';'g';'g'] type2str(G_D(1,[2+(0:step-1)*3])',:)] ,'location','best');
 
 
 figure(5)
 loglog(G_D(:,1),G_D(:,[4+(0:step-1)*3]))
-
+title('Energie Norm')
 xlabel('Elemente');
 ylabel('eNorm');
 legend(type2str(G_D(1,[2+(0:step-1)*3])',:));
diff --git a/src/A_plots.m b/src/A_plots.m
new file mode 100644 (file)
index 0000000..deecfe7
--- /dev/null
@@ -0,0 +1,90 @@
+function A_plots(files,printt)
+
+type2str = {'Analytisch  '   'Quad Element'   'Quad Achse  '  'Quad Seite  '};
+
+G_D=[];
+X = [];
+leg1 = {};
+leg2 = {};
+leg3 = {};
+
+for i = 1:length(files)
+   
+   load(files{i});
+      
+   [m n] = size(data);
+   step = round(n/3);
+   if step<1
+    disp (['Error: No Data to show. : ' i])
+    continue;
+   end
+   
+   if(size(X,1)>m&&size(X,1)~=0)
+       data(size(X,1),end) = 0;
+   end
+   if(size(X,1)<m&&size(X,1)~=0)
+       G_D(m,1) = 0;
+       X(m,1) = 0;
+   end
+   
+   G_D = [G_D data(:,2:end)];
+   X = [X repmat(data(:,1),1,step*3)];
+   
+   p1 = find(files{i}=='/',1,'last')+1;
+   p2 = find(files{i}(p1:end)=='_',1);
+   
+   l0 = [files{i}(p1:p1+p2-2) ' '];
+   l1 = {type2str{data(1,[2+(0:step-1)*3])}};
+   l2 ={};
+   l3 ={};
+   l4 ={};
+   for i = 1:step
+      l2{i} = [ l0 l1{i}];
+      l3{i} = ['\mu ' l0 l1{i}];
+      l4{i} = ['error ' l0 l1{i}];
+   end
+
+   leg1 = {leg1{:} l2{:}}';
+   leg2 = {leg2{:} l3{:}}';
+   leg3 = {leg3{:} l4{:}}';
+    
+end
+
+   [m n] = size(G_D);
+   step = round(n/3);
+
+if step<1
+    disp ('Error: No Data to show.')
+else
+    
+    sol = neville2(1./X(round(1):12,12)',G_D(round(1):12,12)',0)
+
+figure(4)
+loglog(X(:,[2+(0:step-1)*3]),G_D(:,[2+(0:step-1)*3]),'--o')
+hold on
+loglog(X(:,1),[20*X(:,1).^(-1/2),6*X(:,1).^(-1/4),5*X(:,1).^(-3/4)],'-.')
+loglog(X(:,[3+(0:step-1)*3]), sqrt(sol -G_D(:,3+(0:step-1)*3))*G_D(1,2)/sqrt(sol-G_D(1,3)),'-*')
+hold off
+
+title('Fehler')
+xlabel('Elemente');
+ylabel('Schaetzer');
+legend({leg2{:}...
+      'N^{-1/2}'  'N^{-1/4}'  'N^{-3/4}'...
+     leg3{:}} ,'location','eastoutside','box', 'off');
+
+print('-r600','-depsc',[printt '_error.eps'])
+figure(5)
+loglog(X(:,[3+(0:step-1)*3]),G_D(:,[3+(0:step-1)*3]),'-*',X(:,1),repmat(sol,size(X,1),1),'-.')
+ylim([min(min(G_D(:,[3+(0:step-1)*3]))) 1.005*max(max(G_D(:,[3+(0:step-1)*3])))])
+title('Energie Norm')
+xlabel('Elemente');
+ylabel('eNorm^2');
+legend({leg1{:} , 'extrapoliert' },'location','SouthEast');
+
+
+print('-r600','-depsc',[printt '_norm.eps'])
+end
+
+end
\ No newline at end of file
diff --git a/src/gauss.cpp b/src/gauss.cpp
deleted file mode 100644 (file)
index 76b4630..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef GAUSS_NODES
-#define GAUSS_NODES
-
-#include <iostream>
-
-using namespace std;
-
-typedef struct _Gauss{
-       double n;
-       double w;
-} Gauss;
-
-Gauss gauss[][32] =  {
-               {
-                       {0.5,1}},
-               {
-                       {0.2113248654051871,0.4999999999999999},
-                       {0.7886751345948129,0.4999999999999999}},
-               {
-                       {0.06943184420297371,0.1739274225687271},
-                       {0.3300094782075718,0.3260725774312732},
-                       {0.6699905217924281,0.326072577431273},
-                       {0.9305681557970263,0.173927422568727}},
-               {
-                       {0.01985507175123191,0.05061426814518822},
-                       {0.1016667612931866,0.1111905172266873},
-                       {0.2372337950418356,0.1568533229389437},
-                       {0.4082826787521751,0.1813418916891811},
-                       {0.5917173212478251,0.1813418916891812},
-                       {0.7627662049581644,0.1568533229389436},
-                       {0.8983332387068135,0.1111905172266873},
-                       {0.980144928248768,0.05061426814518825}},
-               {
-                       {0.005299532504175253,0.01357622970587728},
-                       {0.02771248846338364,0.03112676196932351},
-                       {0.06718439880608407,0.04757925584124631},
-                       {0.1222977958224983,0.06231448562776711},
-                       {0.1910618777986778,0.07479799440828819},
-                       {0.2709916111713863,0.08457825969750139},
-                       {0.3591982246103706,0.09130170752246231},
-                       {0.4524937450811814,0.09472530522753414},
-                       {0.5475062549188187,0.09472530522753445},
-                       {0.6408017753896295,0.09130170752246193},
-                       {0.7290083888286135,0.08457825969750142},
-                       {0.808938122201322,0.0747979944082887},
-                       {0.8777022041775016,0.06231448562776742},
-                       {0.9328156011939159,0.04757925584124623},
-                       {0.9722875115366163,0.03112676196932403},
-                       {0.9947004674958249,0.0135762297058772}},
-               {
-                       {0.001368069075259104,0.003509305004735008},
-                       {0.007194244227365809,0.008137197365452637},
-                       {0.01761887220624681,0.01269603265463125},
-                       {0.03254696203113011,0.01713693145651049},
-                       {0.05183942211697379,0.02141794901111367},
-                       {0.07531619313371507,0.02549902963118811},
-                       {0.1027581020160289,0.0293420467392677},
-                       {0.1339089406298552,0.03291111138818078},
-                       {0.1684778665348924,0.03617289705442425},
-                       {0.2061421213796186,0.03909694789353495},
-                       {0.2465500455338854,0.04165596211347347},
-                       {0.2893243619346824,0.04382604650220204},
-                       {0.3340656988589361,0.04558693934788215},
-                       {0.3803563188739316,0.04692219954040191},
-                       {0.4277640192086017,0.04781936003963715},
-                       {0.4758461671561307,0.04827004425736407},
-                       {0.5241538328438691,0.04827004425736345},
-                       {0.5722359807913984,0.04781936003963707},
-                       {0.6196436811260685,0.04692219954040222},
-                       {0.6659343011410638,0.04558693934788176},
-                       {0.7106756380653179,0.04382604650220195},
-                       {0.7534499544661147,0.04165596211347328},
-                       {0.7938578786203814,0.03909694789353577},
-                       {0.8315221334651075,0.03617289705442422},
-                       {0.866091059370145,0.03291111138818064},
-                       {0.8972418979839712,0.02934204673926768},
-                       {0.9246838068662852,0.02549902963118814},
-                       {0.9481605778830262,0.0214179490111134},
-                       {0.9674530379688698,0.01713693145651111},
-                       {0.9823811277937532,0.01269603265463138},
-                       {0.992805755772634,0.008137197365453092},
-                       {0.9986319309247407,0.003509305004734969}}};
-
-int main(){
-
-       cout << "--" << endl;
-       cout << gauss[0][0].w << endl;
-       return 0;
-}
-
-#endif
diff --git a/src/gauss.hpp b/src/gauss.hpp
new file mode 100644 (file)
index 0000000..0d68bbf
--- /dev/null
@@ -0,0 +1,121 @@
+#ifndef GAUSS_NODES
+#define GAUSS_NODES
+/*
+ * Gaus Auswertungspunkte auf dem Intervall [0 1]
+ *
+ * 2^$NUM entspricht der Anzahl der Auswertungspunkte
+ *
+ * Anzahl der Punkte:    gauss_size[$NUM]
+ * Auswertungstellen:    gauss_nodes[$NUM][$I].n  ($I aktuelle Position)
+ * Gewichte:             gauss_nodes[$NUM][$I].w  ($I aktuelle Position)
+ *
+ * Beispiel:
+ *
+ * > double sol;
+ * > for(int i=0;i<gauss_size[3];++i)
+ * >    sol += sin(gauss_nodes[3][i].n) * gauss_nodes[3][i].w;
+ *
+ * Peter Schaefer
+ */
+
+typedef struct _gauss{
+       double n;
+       double w;
+} gauss;
+
+/*
+int inline exp2(int exp){
+       int e = 1;
+       for(int i=0; i<exp;++i)
+               e *=2;
+       return e;
+}
+*/
+
+double gauss_size [] = {1,2,4,8,16,32};
+gauss gauss_nodes[][32] =  {
+               {
+                       {0.5,1}},
+               {
+                       {0.2113248654051871,0.4999999999999999},
+                       {0.7886751345948129,0.4999999999999999}},
+               {
+                       {0.06943184420297371,0.1739274225687271},
+                       {0.3300094782075718,0.3260725774312732},
+                       {0.6699905217924281,0.326072577431273},
+                       {0.9305681557970263,0.173927422568727}},
+               {
+                       {0.01985507175123191,0.05061426814518822},
+                       {0.1016667612931866,0.1111905172266873},
+                       {0.2372337950418356,0.1568533229389437},
+                       {0.4082826787521751,0.1813418916891811},
+                       {0.5917173212478251,0.1813418916891812},
+                       {0.7627662049581644,0.1568533229389436},
+                       {0.8983332387068135,0.1111905172266873},
+                       {0.980144928248768,0.05061426814518825}},
+               {
+                       {0.005299532504175253,0.01357622970587728},
+                       {0.02771248846338364,0.03112676196932351},
+                       {0.06718439880608407,0.04757925584124631},
+                       {0.1222977958224983,0.06231448562776711},
+                       {0.1910618777986778,0.07479799440828819},
+                       {0.2709916111713863,0.08457825969750139},
+                       {0.3591982246103706,0.09130170752246231},
+                       {0.4524937450811814,0.09472530522753414},
+                       {0.5475062549188187,0.09472530522753445},
+                       {0.6408017753896295,0.09130170752246193},
+                       {0.7290083888286135,0.08457825969750142},
+                       {0.808938122201322,0.0747979944082887},
+                       {0.8777022041775016,0.06231448562776742},
+                       {0.9328156011939159,0.04757925584124623},
+                       {0.9722875115366163,0.03112676196932403},
+                       {0.9947004674958249,0.0135762297058772}},
+               {
+                       {0.001368069075259104,0.003509305004735008},
+                       {0.007194244227365809,0.008137197365452637},
+                       {0.01761887220624681,0.01269603265463125},
+                       {0.03254696203113011,0.01713693145651049},
+                       {0.05183942211697379,0.02141794901111367},
+                       {0.07531619313371507,0.02549902963118811},
+                       {0.1027581020160289,0.0293420467392677},
+                       {0.1339089406298552,0.03291111138818078},
+                       {0.1684778665348924,0.03617289705442425},
+                       {0.2061421213796186,0.03909694789353495},
+                       {0.2465500455338854,0.04165596211347347},
+                       {0.2893243619346824,0.04382604650220204},
+                       {0.3340656988589361,0.04558693934788215},
+                       {0.3803563188739316,0.04692219954040191},
+                       {0.4277640192086017,0.04781936003963715},
+                       {0.4758461671561307,0.04827004425736407},
+                       {0.5241538328438691,0.04827004425736345},
+                       {0.5722359807913984,0.04781936003963707},
+                       {0.6196436811260685,0.04692219954040222},
+                       {0.6659343011410638,0.04558693934788176},
+                       {0.7106756380653179,0.04382604650220195},
+                       {0.7534499544661147,0.04165596211347328},
+                       {0.7938578786203814,0.03909694789353577},
+                       {0.8315221334651075,0.03617289705442422},
+                       {0.866091059370145,0.03291111138818064},
+                       {0.8972418979839712,0.02934204673926768},
+                       {0.9246838068662852,0.02549902963118814},
+                       {0.9481605778830262,0.0214179490111134},
+                       {0.9674530379688698,0.01713693145651111},
+                       {0.9823811277937532,0.01269603265463138},
+                       {0.992805755772634,0.008137197365453092},
+                       {0.9986319309247407,0.003509305004734969}}};
+
+// ======================================================================================
+
+/*
+#include <iostream>
+
+using namespace std;
+
+int main(){
+
+       cout << "--" << endl;
+       cout << gauss[0][0].w << endl;
+       return 0;
+}
+*/
+#endif
index aae5d94e3079a128609750625848a9c15a0412ea..83af46fa1927d73c8bbc781fac3a3f480ed6e848 100644 (file)
@@ -1,5 +1,5 @@
-function REF = mark(xF2S,ind,eta,eps)
-% function REF = mark(xF2S,ind,eta,eps)
+function REF = mark(xF2S,ind,theta,eta)
+% function REF = mark(xF2S,ind,theta,eta)
 % xF2S - Father son 
 % ind - error estimator
 % eta - refine element? (0..1, 1 = All)
@@ -18,12 +18,12 @@ t3 =0; t4 = 0;
 Ct = T4*xF2S;
 
 %% Muss ueberhaupt verfeinert werden
-if(eta <1)
+if(theta <1)
     [s_ind idx] = sort(ind,'descend');
 
     sum_ind = cumsum(s_ind,1);
 
-    ell = find(sum_ind  >= sum_ind(end) * eta,1);
+    ell = find(sum_ind  >= sum_ind(end) * theta,1);
 
     t1(idx(ell:end)) = 1;
 end
@@ -31,9 +31,9 @@ end
 
 %% Wie muss verfeinert werden
 if(eps > 0)
-    t3 = (eps*abs(Ct(3,:)) >= sqrt(Ct(2,:).^2+Ct(4,:).^2));
+    t3 = (eta*abs(Ct(3,:)) >= sqrt(Ct(2,:).^2+Ct(4,:).^2));
     REF(t3) = 3;
-    t4 = (eps*abs(Ct(4,:)) >= sqrt(Ct(2,:).^2+Ct(3,:).^2));
+    t4 = (eta*abs(Ct(4,:)) >= sqrt(Ct(2,:).^2+Ct(3,:).^2));
     REF(t4) = 4;
 end
 REF(~(t4+t3+t1)) = 2;
diff --git a/src/marked.m b/src/marked.m
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/mesh.tar.gz b/src/mesh.tar.gz
new file mode 100644 (file)
index 0000000..0a432f9
Binary files /dev/null and b/src/mesh.tar.gz differ
index 7f540611d08d3282ded1e4d124f7d931bc2dddba..2648cd0496b39207fa3d38468c0900afa8788a21 100644 (file)
 \r
 //#include "tbb/parallel_for.h"\r
 \r
-\r
 #include "slpRectangle.hpp"\r
 \r
 using namespace std;\r
 using namespace slpR;\r
 \r
 int dimOfVec(double* vec) {\r
+       std::cout << "";\r
        if (vec[2] != 0)\r
                return 2;\r
-       else if (vec[1] !=0)\r
+       else if (vec[1] != 0)\r
                return 1;\r
-       else if (vec[0] !=0)\r
+       else if (vec[0] != 0)\r
                return 0;\r
        else {\r
-               cerr << "dimOfVec : (" << vec[0] << " " << vec[1]<< " " << vec[2]\r
+               cerr << "dimOfVec : (" << vec[0] << " " << vec[1] << " " << vec[2]\r
                                << ") alle Werte 0 \n";\r
                return -1;\r
        }\r
@@ -77,7 +77,6 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
        double * C = mxGetPr(prhs[0]);\r
        double * E = mxGetPr(prhs[1]);\r
 \r
-\r
        int type = (int) *(mxGetPr(prhs[3]));\r
        double * mu = mxGetPr(prhs[2]);\r
 \r
@@ -113,6 +112,10 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                ctypeP = cParO1;\r
                ctypeO = NULL;\r
                break;\r
+       case 0:\r
+               ctypeP = cParO0;\r
+               ctypeO = NULL;\r
+               break;\r
        case 2:\r
                ctypeP = cParO2;\r
                ctypeO = NULL;\r
@@ -178,7 +181,7 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                        }\r
                }\r
 \r
-               for (k = 0; k < em; ++k) {\r
+               for (k = 0; k <= j; ++k) {\r
                        y0[0] = C[(int) E[k] - 1];\r
                        y0[1] = C[cm + (int) E[k] - 1];\r
                        y0[2] = C[2 * cm + (int) E[k] - 1];\r
@@ -229,50 +232,39 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
 \r
                        if (rx == ry) {\r
                                if (rxa == rya) {\r
-                                       tmp\r
-                                                       = ctypeP(fabs(xa[rxa]), fabs(xb[rxb]),\r
-                                                                       fabs(ya[rxa]), fabs(yb[rxb]), d[rxa],\r
-                                                                       d[rxb], d[rx], mu);\r
+                                       tmp = ctypeP(fabs(xa[rxa]), fabs(xb[rxb]), fabs(ya[rxa]),\r
+                                                       fabs(yb[rxb]), d[rxa], d[rxb], d[rx], mu);\r
 \r
                                } else {\r
-                                       tmp\r
-                                                       = ctypeP(fabs(xa[rxa]), fabs(xb[rxb]),\r
-                                                                       fabs(yb[rxa]), fabs(ya[rxb]), d[rxa],\r
-                                                                       d[rxb], d[rx], mu);\r
+                                       tmp = ctypeP(fabs(xa[rxa]), fabs(xb[rxb]), fabs(yb[rxa]),\r
+                                                       fabs(ya[rxb]), d[rxa], d[rxb], d[rx], mu);\r
                                }\r
 \r
                        } else {\r
 \r
                                if (rxa == rya) {\r
-                                       tmp\r
-                                                       = ctypeO(fabs(xb[rxb]), fabs(xa[rxa]),\r
-                                                                       fabs(ya[rya]), fabs(yb[ryb]), d[rxb],\r
-                                                                       d[rxa], d[rx], mu);\r
+                                       tmp = ctypeO(fabs(xb[rxb]), fabs(xa[rxa]), fabs(ya[rya]),\r
+                                                       fabs(yb[ryb]), d[rxb], d[rxa], d[rx], mu);\r
                                } else if (rxa == ryb) {\r
-                                       tmp\r
-                                                       = ctypeO(fabs(xb[rxb]), fabs(xa[rxa]),\r
-                                                                       fabs(yb[ryb]), fabs(ya[rya]), d[rxb],\r
-                                                                       d[rxa], d[rx], mu);\r
+                                       tmp = ctypeO(fabs(xb[rxb]), fabs(xa[rxa]), fabs(yb[ryb]),\r
+                                                       fabs(ya[rya]), d[rxb], d[rxa], d[rx], mu);\r
                                } else if (rxb == rya) {\r
-                                       tmp\r
-                                                       = ctypeO(fabs(xa[rxa]), fabs(xb[rxb]),\r
-                                                                       fabs(ya[rya]), fabs(yb[ryb]), d[rxa],\r
-                                                                       d[rxb], d[rx], mu);\r
+                                       tmp = ctypeO(fabs(xa[rxa]), fabs(xb[rxb]), fabs(ya[rya]),\r
+                                                       fabs(yb[ryb]), d[rxa], d[rxb], d[rx], mu);\r
                                } else {\r
-                                       tmp\r
-                                                       = ctypeO(fabs(xa[rxa]), fabs(xb[rxb]),\r
-                                                                       fabs(yb[ryb]), fabs(ya[rya]), d[rxa],\r
-                                                                       d[rxb], d[rx], mu);\r
+                                       tmp = ctypeO(fabs(xa[rxa]), fabs(xb[rxb]), fabs(yb[ryb]),\r
+                                                       fabs(ya[rya]), d[rxa], d[rxb], d[rx], mu);\r
                                }\r
 \r
                        }\r
                        A[(k * em) + j] = 1. / (4 * M_PI) * tmp;\r
-       //              if(k!=j)\r
-//                             A[(j * em) + k] = 1. / (4 * M_PI) * tmp;\r
-/*                     if(count++ > ((em*(em+1))/2)/10){\r
+                       if (k != j)\r
+                               A[(j * em) + k] = 1. / (4 * M_PI) * tmp;\r
+/*                     if (count++ > ((em * (em + 1)) / 2) / 10) {\r
                                count = 0;\r
-                               cout << "#";\r
-                               cout.flush();\r
+//                             mexPrintf("#");\r
+//                             cout << "#";\r
+//                             cout.flush();\r
                        }*/\r
 \r
                }\r
@@ -280,14 +272,18 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
        }\r
        cout << endl;\r
        //Rueckgabe (eventuell zurueck schreiben)\r
-       //mxFree(x0);\r
-       //mxFree(x1);\r
-       //mxFree(x3);\r
-       //mxFree(y0);\r
-       //mxFree(y1);\r
-       //mxFree(y3);\r
-       //mxFree(d);\r
-       //mxFree(dt);\r
-\r
+/*     mxFree(x0);\r
+       mxFree(x1);\r
+       mxFree(x3);\r
+       mxFree(xa);\r
+       mxFree(xb);\r
+       mxFree(y0);\r
+       mxFree(y1);\r
+       mxFree(y3);\r
+       mxFree(ya);\r
+       mxFree(yb);\r
+       mxFree(d);\r
+       mxFree(dt);\r
+*/\r
        return;\r
 }\r
index ccdfc86adba3098668992b064d7ad1470eecfecb..a6d212cc7ef5d64b9e05cfb9c860aaa4b973ec8a 100644 (file)
@@ -7,21 +7,20 @@
 //#include <mex.h>\r
 \r
 #include "slpRectangle.hpp"\r
-//#include "gauss.hpp"\r
+#include "gauss.hpp"\r
 \r
+#define quad 2 // Anzahl der Quadratur Auswertungstellen 2^quad\r
 using namespace std;\r
 //using namespace slpR;\r
 \r
-double gauss_w5[] = { 0.1185, 0.2393, 0.2844, 0.2393, 0.1185 };\r
-double gauss_n5[] = { 0.0469, 0.2308, 0.5000, 0.7692, 0.9531 };\r
+//double gauss_w5[] = { 0.1185, 0.2393, 0.2844, 0.2393, 0.1185 };\r
+//double gauss_n5[] = { 0.0469, 0.2308, 0.5000, 0.7692, 0.9531 };\r
 \r
 int sign(double);\r
 //double arsinh(double);\r
 \r
-\r
 /* ============================== */\r
 \r
-\r
 int inline sign(double x) {\r
        return x > 0 ? 1 : (x < 0 ? -1 : 0);\r
 }\r
@@ -39,13 +38,19 @@ double inline min(double x, double y) {
        return x > y ? y : x;\r
 }\r
 \r
+double inline f_A(double x1, double x2, double y1, double y2, double l) {\r
+       return 1. / sqrt((x1 - y1) * (x1 - y1) + (x2 - y2) * (x2 - y2) + l * l);\r
+}\r
+\r
 double slpR::g_QY(double p, double y, double x, double l) {\r
 \r
        double sol = 0;\r
 \r
-       for (int i = 0; i < 5; ++i) {\r
-               sol += pow((x - gauss_n5[i] * y) * (x - gauss_n5[i] * y) + l * l, p)\r
-                               * gauss_w5[i] * y;\r
+       for (int i = 0; i < gauss_size[quad]; ++i) {\r
+               sol += pow(\r
+                               (x - gauss_nodes[quad][i].n * y)\r
+                                               * (x - gauss_nodes[quad][i].n * y) + l * l, p)\r
+                               * gauss_nodes[quad][i].w * y;\r
        }\r
 \r
        return sol;\r
@@ -59,8 +64,8 @@ double slpR::g_AY(double p, double y, double x, double l) {
 \r
        if (l != 0) {\r
                if (p == 0.5) {\r
-                       sol = (y - x) / 2 * sqrt((y - x) * (y - x) + l * l) + l * l / 2\r
-                                       * asinh((y - x) / fabs(l));\r
+                       sol = (y - x) / 2 * sqrt((y - x) * (y - x) + l * l)\r
+                                       + l * l / 2 * asinh((y - x) / fabs(l));\r
                        //          printf("%.2f |",sol);\r
                } else if (p == 0)\r
                        sol = y - x;\r
@@ -71,8 +76,8 @@ double slpR::g_AY(double p, double y, double x, double l) {
                else if (p == -1.5)\r
                        sol = (y - x) / ((l * l) * sqrt((y - x) * (y - x) + l * l));\r
                else\r
-                       sol = (y - x) * pow((y - x) * (y - x) + l * l, p) + 2 * p * l * l\r
-                                       * g_AY(p - 1, y, x, l) / (2 * p + 1);\r
+                       sol = (y - x) * pow((y - x) * (y - x) + l * l, p)\r
+                                       + 2 * p * l * l * g_AY(p - 1, y, x, l) / (2 * p + 1);\r
        } else {\r
                if (p == -0.5)\r
                        sol = sign(y - x) * log(fabs(y - x));\r
@@ -83,15 +88,19 @@ double slpR::g_AY(double p, double y, double x, double l) {
        return sol;\r
 }\r
 \r
-double slpR::G_QY1Y2(double p, double y1, double y2, double x1, double x2, double l) {\r
+double slpR::G_QY1Y2(double p, double y1, double y2, double x1, double x2,\r
+               double l) {\r
 \r
        double sol = 0;\r
-       for (int i = 0; i < 5; ++i) {\r
-               for (int j = 0; j < 5; ++j) {\r
+       for (int i = 0; i < gauss_size[quad]; ++i) {\r
+               for (int j = 0; j < gauss_size[quad]; ++j) {\r
                        sol += pow(\r
-                                       (x1 - y1 * gauss_n5[i]) * (x1 - y1 * gauss_n5[i]) + (x2\r
-                                                       - y2 * gauss_n5[j]) * (x2 - y2 * gauss_n5[j]) + l\r
-                                                       * l, p) * y1 * gauss_w5[i] * y2 * gauss_w5[j];\r
+                                       (x1 - y1 * gauss_nodes[quad][i].n)\r
+                                                       * (x1 - y1 * gauss_nodes[quad][i].n)\r
+                                                       + (x2 - y2 * gauss_nodes[quad][j].n)\r
+                                                                       * (x2 - y2 * gauss_nodes[quad][j].n)\r
+                                                       + l * l, p) * y1 * gauss_nodes[quad][i].w * y2\r
+                                       * gauss_nodes[quad][j].w;\r
                }\r
        }\r
        return sol;\r
@@ -105,44 +114,46 @@ double slpR::G_AY2X2(double y1, double y2, double x1, double x2, double d3) {
 \r
        double sol = sqrt(hlp);\r
 \r
-\r
        if ((x2 - y2) != 0)\r
                //sol -= (x2 - y2) * g_AY(-0.5,x2,y2, sqrt((x1 - y1) * (x1 - y1) + d3 * d3));\r
                sol += (x2 - y2) * log(sqrt(hlp) - (x2 - y2));\r
 \r
-       if (sol!=sol||fabs(sol)==numeric_limits<double>::infinity()){\r
-               cout << "G_AY2X2: " << sol << " isn't a Number. ("\r
-                       << y1 << "," << y2 << ")(" << x1 << "," << x2 << ")(" << d3 << ")" << endl;\r
-               cout << (x2-y2) << "__" << sqrt(hlp) << endl;\r
-               cout << (x1-y1)*(x1-y1) << " " << hlp << endl;\r
+       if (sol != sol || fabs(sol) == numeric_limits<double>::infinity()) {\r
+               cout << "G_AY2X2: " << sol << " isn't a Number. (" << y1 << "," << y2\r
+                               << ")(" << x1 << "," << x2 << ")(" << d3 << ")" << endl;\r
+               cout << (x2 - y2) << "__" << sqrt(hlp) << endl;\r
+               cout << (x1 - y1) * (x1 - y1) << " " << hlp << endl;\r
        }\r
        return sol;\r
 }\r
 \r
-double slpR::G_AY1Y2(double p, double y1, double y2, double x1, double x2, double l) {\r
+double slpR::G_AY1Y2(double p, double y1, double y2, double x1, double x2,\r
+               double l) {\r
        //      printf("%.1f | %.1f %.1f | %.1f %.1f | %.1f +",p,x1,x2,y1,y2,l);\r
        double pt = p + 1.5;\r
        double sol = 0;\r
        if (pt == 0) {\r
                if (l == 0) {\r
-                       sol = -sqrt((y1 - x1) * (y1 - x1) + (y2 - x2) * (y2 - x2)) / ((y1\r
-                                       - x1) * (y2 - x2));\r
+                       sol = -sqrt((y1 - x1) * (y1 - x1) + (y2 - x2) * (y2 - x2))\r
+                                       / ((y1 - x1) * (y2 - x2));\r
                } else {\r
-                       sol = sign((y1 - x1) * (y2 - x2)) / (2 * fabs(l)) * acos(\r
-                                       -2 * (y1 - x1) * (y1 - x1) * (y2 - x2) * (y2 - x2) / (((y1\r
-                                                       - x1) * (y1 - x1) + l * l) * ((y2 - x2) * (y2 - x2)\r
-                                                       + l * l)) + 1);\r
+                       sol = sign((y1 - x1) * (y2 - x2)) / (2 * fabs(l))\r
+                                       * acos(\r
+                                                       -2 * (y1 - x1) * (y1 - x1) * (y2 - x2) * (y2 - x2)\r
+                                                                       / (((y1 - x1) * (y1 - x1) + l * l)\r
+                                                                                       * ((y2 - x2) * (y2 - x2) + l * l))\r
+                                                                       + 1);\r
                }\r
 \r
        } else if ((pt > 0) && ((int) pt == pt)) {\r
                if (l != 0)\r
                        sol = 2 * p * l * l * G_AY1Y2(p - 1, y1, y2, x1, x2, l);\r
                if ((y1 - x1) != 0)\r
-                       sol += (y1 - x1) * g_AY(p, y2, x2,\r
-                                       sqrt((y1 - x1) * (y1 - x1) + l * l));\r
+                       sol += (y1 - x1)\r
+                                       * g_AY(p, y2, x2, sqrt((y1 - x1) * (y1 - x1) + l * l));\r
                if ((y2 - x2) != 0)\r
-                       sol += (y2 - x2) * g_AY(p, y1, x1,\r
-                                       sqrt((y2 - x2) * (y2 - x2) + l * l));\r
+                       sol += (y2 - x2)\r
+                                       * g_AY(p, y1, x1, sqrt((y2 - x2) * (y2 - x2) + l * l));\r
                sol /= 2 * p + 2;\r
        } else {\r
                sol = NAN;\r
@@ -160,8 +171,8 @@ double slpR::Gs_AX2Y1Y2(double p, double y1, double y2, double x1, double x2,
        return sol;\r
 }\r
 \r
-double slpR::F_par(double x1, double x2, double y1, double y2, double d1, double d2,\r
-               double d3) {\r
+double slpR::F_par(double x1, double x2, double y1, double y2, double d1,\r
+               double d2, double d3) {\r
 \r
        //       printf("%.1f %.1f | %.1f %.1f | %.1f %.1f %.1f",x1,x2,y1,y2,d1,d2,d3);\r
        double sol = (x1 - y1 - d1) * (x2 - y2 - d2);\r
@@ -170,40 +181,54 @@ double slpR::F_par(double x1, double x2, double y1, double y2, double d1, double
                sol *= G_AY1Y2(-0.5, x1, x2, y1 + d1, y2 + d2, d3);\r
 \r
        if ((x1 - y1 - d1) != 0)\r
-               sol -= (x1 - y1 - d1) * g_AY(0.5, x1, y1 + d1,\r
-                               sqrt((x2 - y2 - d2) * (x2 - y2 - d2) + d3 * d3));\r
+               sol -= (x1 - y1 - d1)\r
+                               * g_AY(0.5, x1, y1 + d1,\r
+                                               sqrt((x2 - y2 - d2) * (x2 - y2 - d2) + d3 * d3));\r
 \r
        if ((x2 - y2 - d2) != 0)\r
-               sol -= (x2 - y2 - d2) * g_AY(0.5, x2, y2 + d2,\r
-                               sqrt((x1 - y1 - d1) * (x1 - y1 - d1) + d3 * d3));\r
+               sol -= (x2 - y2 - d2)\r
+                               * g_AY(0.5, x2, y2 + d2,\r
+                                               sqrt((x1 - y1 - d1) * (x1 - y1 - d1) + d3 * d3));\r
 \r
-       double hlp = ((x1 - y1 - d1) * (x1 - y1 - d1) + (x2 - y2 - d2) * (x2 - y2\r
-                       - d2) + d3 * d3);\r
+       double hlp = ((x1 - y1 - d1) * (x1 - y1 - d1)\r
+                       + (x2 - y2 - d2) * (x2 - y2 - d2) + d3 * d3);\r
        sol += 1. / 3 * hlp * sqrt(hlp);\r
        return sol;\r
 }\r
 \r
-double slpR::F_ort(double x1, double x2, double y2, double y3, double d1, double d2,\r
-               double d3) {\r
+double slpR::F_ort(double x1, double x2, double y2, double y3, double d1,\r
+               double d2, double d3) {\r
 \r
        //       printf("%.1f %.1f | %.1f %.1f | %.1f %.1f %.1f",x1,x2,y2,y3,d1,d2,d3);\r
        double sol = -G_AY1Y2(0.5, y3, x1, -d3, d1, x2 - y2 - d2);\r
 \r
        if ((x1 - d1) * (x2 - y2 - d2) != 0)\r
-               sol -= (x1 - d1) * (x2 - y2 - d2) * G_AY1Y2(-0.5, x2, y3, y2 + d2, -d3,\r
-                               x1 - d1);\r
+               sol -= (x1 - d1) * (x2 - y2 - d2)\r
+                               * G_AY1Y2(-0.5, x2, y3, y2 + d2, -d3, x1 - d1);\r
 \r
        if ((x1 - d1) != 0)\r
-               sol += (x1 - d1) * g_AY(0.5, y3, -d3,\r
-                               sqrt((x1 - d1) * (x1 - d1) + (x2 - y2 - d2) * (x2 - y2 - d2)));\r
+               sol += (x1 - d1)\r
+                               * g_AY(\r
+                                               0.5,\r
+                                               y3,\r
+                                               -d3,\r
+                                               sqrt(\r
+                                                               (x1 - d1) * (x1 - d1)\r
+                                                                               + (x2 - y2 - d2) * (x2 - y2 - d2)));\r
 \r
        if ((y3 + d3) * (x2 - y2 - d2) != 0)\r
-               sol -= (y3 + d3) * (x2 - y2 - d2) * G_AY1Y2(-0.5, x1, x2, d1, y2 + d2,\r
-                               -y3 - d3);\r
+               sol -= (y3 + d3) * (x2 - y2 - d2)\r
+                               * G_AY1Y2(-0.5, x1, x2, d1, y2 + d2, -y3 - d3);\r
 \r
        if ((y3 + d3) != 0)\r
-               sol += (y3 + d3) * g_AY(0.5, x1, d1,\r
-                               sqrt((x2 - y2 - d2) * (x2 - y2 - d2) + (y3 + d3) * (y3 + d3)));\r
+               sol += (y3 + d3)\r
+                               * g_AY(\r
+                                               0.5,\r
+                                               x1,\r
+                                               d1,\r
+                                               sqrt(\r
+                                                               (x2 - y2 - d2) * (x2 - y2 - d2)\r
+                                                                               + (y3 + d3) * (y3 + d3)));\r
 \r
        return sol / 2.;\r
 }\r
@@ -225,24 +250,27 @@ double slpR::F_ort(double x1, double x2, double y2, double y3, double d1, double
 \r
 double slpR::apply0Int4(\r
                double(*f)(double, double, double, double, double, double, double),\r
-               double b, double d, double t, double v, double d1, double d2, double d3) {\r
+               double b, double d, double t, double v, double d1, double d2,\r
+               double d3) {\r
 \r
-       return f(b, d, t, v, d1, d2, d3) - f(b, d, t, 0, d1, d2, d3) - f(b, d, 0,\r
-                       v, d1, d2, d3) + f(b, d, 0, 0, d1, d2, d3) - f(b, 0, t, v, d1, d2,\r
-                       d3) + f(b, 0, t, 0, d1, d2, d3) + f(b, 0, 0, v, d1, d2, d3) - f(b,\r
-                       0, 0, 0, d1, d2, d3) - f(0, d, t, v, d1, d2, d3) + f(0, d, t, 0,\r
-                       d1, d2, d3) + f(0, d, 0, v, d1, d2, d3) - f(0, d, 0, 0, d1, d2, d3)\r
-                       + f(0, 0, t, v, d1, d2, d3) - f(0, 0, t, 0, d1, d2, d3) - f(0, 0,\r
-                       0, v, d1, d2, d3) + f(0, 0, 0, 0, d1, d2, d3);\r
+       return f(b, d, t, v, d1, d2, d3) - f(b, d, t, 0, d1, d2, d3)\r
+                       - f(b, d, 0, v, d1, d2, d3) + f(b, d, 0, 0, d1, d2, d3)\r
+                       - f(b, 0, t, v, d1, d2, d3) + f(b, 0, t, 0, d1, d2, d3)\r
+                       + f(b, 0, 0, v, d1, d2, d3) - f(b, 0, 0, 0, d1, d2, d3)\r
+                       - f(0, d, t, v, d1, d2, d3) + f(0, d, t, 0, d1, d2, d3)\r
+                       + f(0, d, 0, v, d1, d2, d3) - f(0, d, 0, 0, d1, d2, d3)\r
+                       + f(0, 0, t, v, d1, d2, d3) - f(0, 0, t, 0, d1, d2, d3)\r
+                       - f(0, 0, 0, v, d1, d2, d3) + f(0, 0, 0, 0, d1, d2, d3);\r
 \r
 }\r
 \r
 double slpR::apply0Int2(\r
                double(*f)(double, double, double, double, double, double, double),\r
-               double b, double d, double t, double v, double d1, double d2, double d3) {\r
+               double b, double d, double t, double v, double d1, double d2,\r
+               double d3) {\r
 \r
-       return f(b, d, t, v, d1, d2, d3) - f(b, 0, t, v, d1, d2, d3) - f(0, d, t,\r
-                       v, d1, d2, d3) + f(0, 0, t, v, d1, d2, d3);\r
+       return f(b, d, t, v, d1, d2, d3) - f(b, 0, t, v, d1, d2, d3)\r
+                       - f(0, d, t, v, d1, d2, d3) + f(0, 0, t, v, d1, d2, d3);\r
 \r
 }\r
 \r
@@ -258,16 +286,20 @@ double slpR::calcParIntQX1X2(double b, double d, double t, double v, double d1,
        //Fall 2\r
        double sol = 0;\r
 \r
-       for (int i = 0; i < 5; ++i) {\r
-               for (int j = 0; j < 5; ++j) {\r
-                       sol += G_AY1Y2(-0.5, t + d1, v + d2, b * gauss_n5[i],\r
-                                       d * gauss_n5[j], d3) * b * d * gauss_w5[i] * gauss_w5[j];\r
-                       sol -= G_AY1Y2(-0.5, d1, v + d2, b * gauss_n5[i], d * gauss_n5[j],\r
-                                       d3) * b * d * gauss_w5[i] * gauss_w5[j];\r
-                       sol -= G_AY1Y2(-0.5, t + d1, d2, b * gauss_n5[i], d * gauss_n5[j],\r
-                                       d3) * b * d * gauss_w5[i] * gauss_w5[j];\r
-                       sol += G_AY1Y2(-0.5, d1, d2, b * gauss_n5[i], d * gauss_n5[j], d3)\r
-                                       * b * d * gauss_w5[i] * gauss_w5[j];\r
+       for (int i = 0; i < gauss_size[quad]; ++i) {\r
+               for (int j = 0; j < gauss_size[quad]; ++j) {\r
+                       sol += G_AY1Y2(-0.5, t + d1, v + d2, b * gauss_nodes[quad][i].n,\r
+                                       d * gauss_nodes[quad][j].n, d3) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol -= G_AY1Y2(-0.5, d1, v + d2, b * gauss_nodes[quad][i].n,\r
+                                       d * gauss_nodes[quad][j].n, d3) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol -= G_AY1Y2(-0.5, t + d1, d2, b * gauss_nodes[quad][i].n,\r
+                                       d * gauss_nodes[quad][j].n, d3) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol += G_AY1Y2(-0.5, d1, d2, b * gauss_nodes[quad][i].n,\r
+                                       d * gauss_nodes[quad][j].n, d3) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
                }\r
        }\r
 \r
@@ -280,40 +312,51 @@ double slpR::calcParIntQY1X1(double b, double d, double t, double v, double d1,
        //Fall 3\r
        double sol = 0;\r
 \r
-       for (int i = 0; i < 5; ++i) {\r
-               for (int j = 0; j < 5; ++j) {\r
-\r
-\r
-                       sol\r
-                                       += G_AY2X2(t * gauss_n5[j] + d1, v + d2, b * gauss_n5[i], d, d3)\r
-                                       * t * b * gauss_w5[i] * gauss_w5[j];\r
-                       sol\r
-                                       -= G_AY2X2(t * gauss_n5[j] + d1, v + d2, b * gauss_n5[i], 0, d3)\r
-                                       * t * b * gauss_w5[i] * gauss_w5[j];\r
-                       sol -= G_AY2X2(t * gauss_n5[j] + d1, d2, b * gauss_n5[i], d, d3)\r
-                                       * t * b * gauss_w5[i] * gauss_w5[j];\r
-                       sol += G_AY2X2(t * gauss_n5[j] + d1, d2, b * gauss_n5[i], 0, d3)\r
-                                       * t * b * gauss_w5[i] * gauss_w5[j];\r
-\r
-                       if (sol!=sol||fabs(sol)==numeric_limits<double>::infinity()){\r
+       for (int i = 0; i < gauss_size[quad]; ++i) {\r
+               for (int j = 0; j < gauss_size[quad]; ++j) {\r
+\r
+                       sol += G_AY2X2(t * gauss_nodes[quad][j].n + d1, v + d2,\r
+                                       b * gauss_nodes[quad][i].n, d, d3) * t * b\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol -= G_AY2X2(t * gauss_nodes[quad][j].n + d1, v + d2,\r
+                                       b * gauss_nodes[quad][i].n, 0, d3) * t * b\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol -= G_AY2X2(t * gauss_nodes[quad][j].n + d1, d2,\r
+                                       b * gauss_nodes[quad][i].n, d, d3) * t * b\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol += G_AY2X2(t * gauss_nodes[quad][j].n + d1, d2,\r
+                                       b * gauss_nodes[quad][i].n, 0, d3) * t * b\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+\r
+                       if (sol != sol || fabs(sol) == numeric_limits<double>::infinity()) {\r
                                cout << "->(" << i << "," << j << ")" << endl;\r
-                               cout << "-|(" <<\r
-                                               G_AY2X2(t * gauss_n5[j] + d1, v + d2, b * gauss_n5[i], d, d3)\r
-                                                                                       * t * b * gauss_w5[i] * gauss_w5[j]\r
-                               << "," <<\r
-                                               G_AY2X2(t * gauss_n5[j] + d1, v + d2, b * gauss_n5[i], 0, d3)\r
-                                                                                       * t * b * gauss_w5[i] * gauss_w5[j]\r
-                               << "," <<\r
-                                               G_AY2X2(t * gauss_n5[j] + d1, d2, b * gauss_n5[i], d, d3)\r
-                                                                                       * t * b * gauss_w5[i] * gauss_w5[j]\r
-                               << "," <<\r
-                                               G_AY2X2(t * gauss_n5[j] + d1, d2, b * gauss_n5[i], 0, d3)\r
-                                                                                       * t * b * gauss_w5[i] * gauss_w5[j]\r
-                               << ")" << endl;\r
-                               cout << "||"<< t * b * gauss_w5[i] * gauss_w5[j] <<"||-----------------" << endl;\r
-\r
-                               cout << "? (" << G_AY2X2(t * gauss_n5[j] + d1, d2, b * gauss_n5[i], 0, d3)\r
-                                               << "," <<  t * b * gauss_w5[i] * gauss_w5[j] << ")" << endl;\r
+                               cout << "-|("\r
+                                               << G_AY2X2(t * gauss_nodes[quad][j].n + d1, v + d2,\r
+                                                               b * gauss_nodes[quad][i].n, d, d3) * t * b\r
+                                                               * gauss_nodes[quad][i].w\r
+                                                               * gauss_nodes[quad][j].w << ","\r
+                                               << G_AY2X2(t * gauss_nodes[quad][j].n + d1, v + d2,\r
+                                                               b * gauss_nodes[quad][i].n, 0, d3) * t * b\r
+                                                               * gauss_nodes[quad][i].w\r
+                                                               * gauss_nodes[quad][j].w << ","\r
+                                               << G_AY2X2(t * gauss_nodes[quad][j].n + d1, d2,\r
+                                                               b * gauss_nodes[quad][i].n, d, d3) * t * b\r
+                                                               * gauss_nodes[quad][i].w\r
+                                                               * gauss_nodes[quad][j].w << ","\r
+                                               << G_AY2X2(t * gauss_nodes[quad][j].n + d1, d2,\r
+                                                               b * gauss_nodes[quad][i].n, 0, d3) * t * b\r
+                                                               * gauss_nodes[quad][i].w\r
+                                                               * gauss_nodes[quad][j].w << ")" << endl;\r
+                               cout << "||"\r
+                                               << t * b * gauss_nodes[quad][i].w\r
+                                                               * gauss_nodes[quad][j].w\r
+                                               << "||-----------------" << endl;\r
+\r
+                               cout << "? ("\r
+                                               << G_AY2X2(t * gauss_nodes[quad][j].n + d1, d2,\r
+                                                               b * gauss_nodes[quad][i].n, 0, d3) << ","\r
+                                               << t * b * gauss_nodes[quad][i].w\r
+                                                               * gauss_nodes[quad][j].w << ")" << endl;\r
 \r
                                cout << endl;\r
                                return sol;\r
@@ -322,9 +365,10 @@ double slpR::calcParIntQY1X1(double b, double d, double t, double v, double d1,
                }\r
        }\r
 \r
-       if (sol!=sol||sol==numeric_limits<double>::infinity())\r
-               cout << "calcParIntQY1X1: " << sol << " isn't a Number. ("\r
-                       << b << "," << d << ")(" << t << "," << v << ")(" << d1 << "," << d2 << "," << d3 <<")" << endl;\r
+       if (sol != sol || sol == numeric_limits<double>::infinity())\r
+               cout << "calcParIntQY1X1: " << sol << " isn't a Number. (" << b << ","\r
+                               << d << ")(" << t << "," << v << ")(" << d1 << "," << d2 << ","\r
+                               << d3 << ")" << endl;\r
 \r
        return sol;\r
 }\r
@@ -333,16 +377,35 @@ double slpR::calcParIntQY1(double b, double d, double t, double v, double d1,
                double d2, double d3) {\r
        //Fall 4\r
 \r
+       double sol = 0;\r
 \r
+       return 0; ///ACHTUNG noch Falsch\r
 \r
+}\r
 \r
+double slpR::calcParIntQ(double b, double d, double t, double v, double d1,\r
+               double d2, double d3) {\r
+       //Fall 0\r
 \r
        double sol = 0;\r
+       int i,j,k,l;\r
+\r
+       for (i = 0; i < gauss_size[quad]; ++i) {\r
+               for (j = 0; j < gauss_size[quad]; ++j) {\r
+                       for (k = 0; k < gauss_size[quad]; ++k) {\r
+                               for (l = 0; l < gauss_size[quad]; ++l) {\r
+                                       sol += f_A(b * gauss_nodes[quad][i].n,\r
+                                                       d * gauss_nodes[quad][j].n,\r
+                                                       t * gauss_nodes[quad][k].n + d1,\r
+                                                       v * gauss_nodes[quad][l].n + d2, d3)\r
+                                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w\r
+                                                       * gauss_nodes[quad][k].w * gauss_nodes[quad][l].w;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
 \r
-\r
-\r
-       return 0; ///ACHTUNG noch Falsch\r
-\r
+       return sol;\r
 }\r
 \r
 double slpR::calcOrtIntA(double b, double d, double t, double v, double d1,\r
@@ -356,16 +419,20 @@ double slpR::calcOrtIntQX1X2(double b, double d, double t, double v, double d1,
        //Fall 2\r
        double sol = 0;\r
 \r
-       for (int i = 0; i < 5; ++i) {\r
-               for (int j = 0; j < 5; ++j) {\r
-                       sol += G_AY1Y2(-0.5, t + d2, v + d3, d * gauss_n5[j],0, b * gauss_n5[i] - d1)\r
-                                       * b * d * gauss_w5[i] * gauss_w5[j];\r
-                       sol -= G_AY1Y2(-0.5, d2, v + d3, d * gauss_n5[j],0, b * gauss_n5[i] - d1)\r
-                                       * b * d * gauss_w5[i] * gauss_w5[j];\r
-                       sol -= G_AY1Y2(-0.5, t + d2, d3, d * gauss_n5[j],0, b * gauss_n5[i] - d1)\r
-                                       * b * d * gauss_w5[i] * gauss_w5[j];\r
-                       sol += G_AY1Y2(-0.5, d2, d3, d * gauss_n5[j],0, b * gauss_n5[i] - d1)\r
-                                       * b * d * gauss_w5[i] * gauss_w5[j];\r
+       for (int i = 0; i < gauss_size[quad]; ++i) {\r
+               for (int j = 0; j < gauss_size[quad]; ++j) {\r
+                       sol += G_AY1Y2(-0.5, t + d2, v + d3, d * gauss_nodes[quad][j].n, 0,\r
+                                       b * gauss_nodes[quad][i].n - d1) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol -= G_AY1Y2(-0.5, d2, v + d3, d * gauss_nodes[quad][j].n, 0,\r
+                                       b * gauss_nodes[quad][i].n - d1) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol -= G_AY1Y2(-0.5, t + d2, d3, d * gauss_nodes[quad][j].n, 0,\r
+                                       b * gauss_nodes[quad][i].n - d1) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
+                       sol += G_AY1Y2(-0.5, d2, d3, d * gauss_nodes[quad][j].n, 0,\r
+                                       b * gauss_nodes[quad][i].n - d1) * b * d\r
+                                       * gauss_nodes[quad][i].w * gauss_nodes[quad][j].w;\r
                }\r
        }\r
 \r
@@ -375,11 +442,11 @@ double slpR::calcOrtIntQX1X2(double b, double d, double t, double v, double d1,
 \r
 double slpR::calcParIntO0(double b, double d, double t, double v, double d1,\r
                double d2, double d3, double eta) {\r
-       return calcParIntA(b,d,t,v,d1,d2,d3);\r
+       return calcParIntA(b, d, t, v, d1, d2, d3);\r
 }\r
 double slpR::calcOrtIntO0(double b, double d, double t, double v, double d1,\r
                double d2, double d3, double eta) {\r
-       return calcOrtIntA(b,d,t,v,d1,d2,d3);\r
+       return calcOrtIntA(b, d, t, v, d1, d2, d3);\r
 }\r
 \r
 double slpR::calcParIntO1(double b, double d, double t, double v, double d1,\r
@@ -446,7 +513,7 @@ double slpR::calcParIntO2(double b, double d, double t, double v, double d1,
        }\r
 \r
 //     if ((b * b + d * d) * eta < d1 * d1 + d2 * d2 + d3 * d3) {\r
-               return calcParIntQX1X2(b, d, t, v, d1, d2, d3);\r
+       return calcParIntQX1X2(b, d, t, v, d1, d2, d3);\r
 //     } else {\r
 //             cout << "2error";\r
 //             return calcParIntA(b, d, t, v, d1, d2, d3);\r
@@ -501,7 +568,7 @@ double slpR::calcParIntO3(double b, double d, double t, double v, double d1,
        }\r
 \r
 //     if ((min(b, t) * eta <= d1) && (min(d, v) * eta <= d2) ) {\r
-               return calcParIntQY1X1(b, d, t, v, d1, d2, d3);\r
+       return calcParIntQY1X1(b, d, t, v, d1, d2, d3);\r
 //     } else {\r
 //             cout << "3error";\r
 //             return calcParIntA(b, d, t, v, d1, d2, d3);\r
@@ -519,36 +586,63 @@ double slpR::calcOrtIntO3(double b, double d, double t, double v, double d1,
        }\r
 }\r
 \r
+double slpR::cParO0(double b, double d, double t, double v, double d1,\r
+               double d2, double d3, double* eta) {\r
+       double tmp = 0;\r
+\r
+       // kleine Seite nach vorn\r
+       if (b > t) {\r
+               tmp = b;\r
+               b = t;\r
+               t = tmp;\r
+               d1 = -d1;\r
+       }\r
+\r
+       // kleine Seite nach vorn\r
+       if (d > v) {\r
+               tmp = d;\r
+               d = v;\r
+               v = tmp;\r
+               d2 = -d2;\r
+       }\r
+\r
+       if ((t * t + v * v) * eta[0] < d1 * d1 + d2 * d2 + d3 * d3) {\r
+//             cout << "E";\r
+               return calcParIntQ(b, d, t, v, d1, d2, d3);\r
+       } else {\r
+               return calcParIntA(b, d, t, v, d1, d2, d3);\r
+       }\r
 \r
+       return 0;\r
+}\r
 \r
 double slpR::cParO1(double b, double d, double t, double v, double d1,\r
                double d2, double d3, double* eta) {\r
-       return calcParIntA(b, d, t, v, d1, d2, d3);;\r
+       return calcParIntA(b, d, t, v, d1, d2, d3);\r
 }\r
 \r
-\r
 double slpR::cParO2(double b, double d, double t, double v, double d1,\r
                double d2, double d3, double* eta) {\r
 \r
        double tmp = 0;\r
 \r
        // kleine Seite nach vorn\r
-       if(b>t){\r
+       if (b > t) {\r
                tmp = b;\r
                b = t;\r
                t = tmp;\r
-               d1=-d1;\r
+               d1 = -d1;\r
        }\r
 \r
        // kleine Seite nach vorn\r
-       if(d>v){\r
+       if (d > v) {\r
                tmp = d;\r
                d = v;\r
                v = tmp;\r
-               d2=-d2;\r
+               d2 = -d2;\r
        }\r
 \r
-       if ((b * b + d * d) * eta[0] < d1 * d1 + d2 * d2 + d3 * d3) {\r
+       if ((b * b + d * d)  < eta[0]* (d1 * d1 + d2 * d2 + d3 * d3)) {\r
 //             cout << "E";\r
                return calcParIntQX1X2(b, d, t, v, d1, d2, d3);\r
        } else {\r
@@ -564,22 +658,22 @@ double slpR::cParO3(double b, double d, double t, double v, double d1,
        double tmp = 0;\r
 \r
        // kleine Seite nach vorn\r
-       if(b>t){\r
+       if (b > t) {\r
                tmp = b;\r
                b = t;\r
                t = tmp;\r
-               d1=-d1;\r
+               d1 = -d1;\r
        }\r
 \r
        // kleine Seite nach vorn\r
-       if(d>v){\r
+       if (d > v) {\r
                tmp = d;\r
                d = v;\r
                v = tmp;\r
-               d2=-d2;\r
+               d2 = -d2;\r
        }\r
 \r
-       if ((b * b + d * d) * eta[0] < d1 * d1 + d2 * d2 + d3 * d3) {\r
+       if ((b * b + d * d)  < eta[0] * (d1 * d1 + d2 * d2 + d3 * d3)) {\r
 \r
                //kleinere Achse nach vorn\r
                if (b * b + t * t > d * d + v * v) {\r
@@ -597,10 +691,10 @@ double slpR::cParO3(double b, double d, double t, double v, double d1,
                        d2 = tmp;\r
                }\r
 \r
-               if (min(b, t) * eta[1] <= d1){\r
+               if (min(b, t)  <= eta[1] * d1) {\r
 //                     cout << "A";\r
                        return calcParIntQY1X1(b, d, t, v, d1, d2, d3);\r
-               }else{\r
+               } else {\r
 //                     cout << "E";\r
                        return calcParIntQX1X2(b, d, t, v, d1, d2, d3);\r
                }\r
index 6b568252266407bcd3642b708a4f555e2057956d..fae183d408b9f1b317846c36debc92147ea81741 100644 (file)
@@ -34,6 +34,7 @@ namespace slpR {
        double calcParIntQX1X2(double, double, double, double, double, double, double);
        double calcParIntQY1X1(double, double, double, double, double, double, double);
        double calcParIntQY1(double, double, double, double, double, double, double);
+       double calcParIntQ(double, double, double, double, double, double, double);
 
        // sol = calcOrtInt.(b,d,t,v,d1,d2,d3);
        double calcOrtIntA(double, double, double, double, double, double, double);
@@ -71,6 +72,8 @@ namespace slpR {
        // sol = cParIntX(b,d,t,v,d1,d2,d3,eta);
 
        //Voll Analytisch
+       double cParO0(double, double, double, double, double, double, double,
+                       double*);
        double cParO1(double, double, double, double, double, double, double,
                        double*);
        double cParO2(double, double, double, double, double, double, double,