From: treecity Date: Thu, 1 Dec 2011 19:29:15 +0000 (+0000) Subject: [src] G_AY2X2 Alternative Berechnung X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=2151ccb4bd6c24f7bcc8f28b59b515240db7e597;p=bacc.git [src] G_AY2X2 Alternative Berechnung [src] calcParIntO3 beschränkung eingeschaltet git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@70 26120e32-c555-405d-b3e1-1f783fb42516 --- diff --git a/.cproject b/.cproject index b9158d1..24c6a1f 100644 --- a/.cproject +++ b/.cproject @@ -5,7 +5,9 @@ - + + + @@ -25,451 +27,49 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -493,21 +93,41 @@ + + @@ -517,430 +137,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/.settings/org.eclipse.cdt.codan.core.prefs b/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..a54da21 --- /dev/null +++ b/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,66 @@ +#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.errreturnvalue=Error +org.eclipse.cdt.codan.checkers.errreturnvalue.params={} +org.eclipse.cdt.codan.checkers.noreturn=Error +org.eclipse.cdt.codan.checkers.noreturn.params={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.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.AssignmentInConditionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={} +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.CatchByReference=Warning +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={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.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.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.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.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.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.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.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.NamingConventionFunctionChecker=-Info +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={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.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.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.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.ReturnStyleProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={} +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.SuggestedParenthesisProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={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.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.UnusedFunctionDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={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.UnusedVariableDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={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}} diff --git a/src/slpRectangle.cpp b/src/slpRectangle.cpp index caf06c4..87cc986 100644 --- a/src/slpRectangle.cpp +++ b/src/slpRectangle.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +//#include //#include @@ -106,6 +106,7 @@ double G_AY2X2(double y1, double y2, double x1, double x2, double d3) { if ((x2 - y2) != 0) + //sol -= (x2 - y2) * g_AY(-0.5,x2,y2, sqrt((x1 - y1) * (x1 - y1) + d3 * d3)); sol += (x2 - y2) * log(sqrt(hlp) - (x2 - y2)); if (sol!=sol||fabs(sol)==numeric_limits::infinity()){ @@ -246,7 +247,7 @@ double apply0Int2( } -// Berechnet das eigentliche Integral für parallele Elemente voll Analytisch +// Berechnet das eigentliche Integral fuer parallele Elemente voll Analytisch double calcParIntA(double b, double d, double t, double v, double d1, double d2, double d3) { return apply0Int4(F_par, b, d, t, v, d1, d2, d3); @@ -489,7 +490,7 @@ double calcParIntO3(double b, double d, double t, double v, double d1, d2 = tmp; } - if ((min(b, t) * eta <= d1) /*&& (min(d, v) * eta <= d2)*/ ) { + if ((min(b, t) * eta <= d1) && (min(d, v) * eta <= d2) ) { return calcParIntQY1X1(b, d, t, v, d1, d2, d3); } else { return calcParIntA(b, d, t, v, d1, d2, d3); diff --git a/src/test_calcInt1.m b/src/test_calcInt1.m index b342959..2945b61 100644 --- a/src/test_calcInt1.m +++ b/src/test_calcInt1.m @@ -1 +1 @@ - coo = @(h,diff)[0 0 0;1 0 0; 1 1 0;0 1 0; 0 0 0 ; 0+h 0 0; 0+h h 0 ; 0 h 0]+[zeros(4,3);repmat(diff,4,1)]; elements=[1 2 3 4;5 6 7 8]; neigh = zeros(2,8); dat = []; diff = [2 0 0]; %% Laage Übersicht figure(1) h = 1; coordinates=coo(h,diff) current = coordinates(elements(1,[1:4,1])',:); fill3(current(:,1),current(:,2),current(:,3),'g'); hold on current = coordinates(elements(2,[1:4,1])',:); fill3(current(:,1),current(:,2),current(:,3),'b'); h = h/2; coordinates=coo(h,diff); current = coordinates(elements(2,[1:4,1])',:); fill3(current(:,1),current(:,2),current(:,3),'y'); hold off legend('Element1(h)','Element2(h)','Element2(h/2)'); title('Laage der Elemente'); %% Integrale bei kleiner werdenden Elementen h = 2; for I = 1:50 h = h/2; coordinates=coo(h,diff); A0 = mex_build_AU(coordinates,elements,0,0); A2 = mex_build_AU(coordinates,elements,1,2); A1 = mex_build_AU(coordinates,elements,1,1); I dat(I,1:4) = [h A0(1,2) A2(1,2) A1(1,2)]; dat(dat<0)=0; end figure(2) loglog(dat(:,1),abs(dat(:,2)),dat(:,1),abs(dat(:,3)),dat(:,1),abs(dat(:,4))); legend('Analytisch','Quad Element','Element vertauschen','location','best'); xlabel('Elementgroesse (kürzeste Seite)'); ylabel('Integral'); title('Integral bei kleiner werdenden Element'); %% Netzverfeinerung mit schlechtem Netz h = (1/2)^25; coordinates=coo(h,diff); A_loadMesh(coordinates,elements,neigh); datA=[]; for I = 1:5 datA(I,:) = A_stepIso(1,[0 3 2]); % datA(I,:) = A_stepAniso(1,[0 3 2],1,0); I end figure(3) loglog(datA(:,1),datA(:,3),datA(:,1),datA(:,9),datA(:,1),datA(:,6)) legend('Analytisch','Quad Element','Quad Achse','location','best'); xlabel('Anzahl der Elemente'); ylabel('mu Schaetzer'); title('mu Schaetzer mit "schlechtem" Startnetz'); figure(4) loglog(datA(:,1),datA(:,4),datA(:,1),datA(:,10),datA(:,1),datA(:,7)) legend('Analytisch','Quad Element','Quad Achse','location','best'); xlabel('Anzahl der Elemente'); ylabel('EnergieNorm ^2 '); title('EnergieNorm ^2 mit "schlechtem" Startnetz'); datA \ No newline at end of file + coo = @(h,diff)[0 0 0;1 0 0; 1 1 0;0 1 0; 0 0 0 ; 0+h 0 0; 0+h h 0 ; 0 h 0]+[zeros(4,3);repmat(diff,4,1)]; elements=[1 2 3 4;5 6 7 8]; neigh = zeros(2,8); dat = []; diff = [2 0 0]; %% Laage ??bersicht figure(1) h = 1; coordinates=coo(h,diff) current = coordinates(elements(1,[1:4,1])',:); fill3(current(:,1),current(:,2),current(:,3),'g'); hold on current = coordinates(elements(2,[1:4,1])',:); fill3(current(:,1),current(:,2),current(:,3),'b'); h = h/2; coordinates=coo(h,diff); current = coordinates(elements(2,[1:4,1])',:); fill3(current(:,1),current(:,2),current(:,3),'y'); hold off legend('Element1(h)','Element2(h)','Element2(h/2)'); title('Laage der Elemente'); %% Integrale bei kleiner werdenden Elementen h = 2; for I = 1:50 h = h/2; coordinates=coo(h,diff); A0 = mex_build_AU(coordinates,elements,0,0); A2 = mex_build_AU(coordinates,elements,1,2); A1 = mex_build_AU(coordinates,elements,1,1); I dat(I,1:4) = [h A0(1,2) A2(1,2) A1(1,2)]; dat(dat<0)=0; end figure(2) loglog(dat(:,1),abs(dat(:,2)),dat(:,1),abs(dat(:,3)),dat(:,1),abs(dat(:,4))); legend('Analytisch','Quad Element','Element vertauschen','location','best'); xlabel('Elementgroesse (k??rzeste Seite)'); ylabel('Integral'); title('Integral bei kleiner werdenden Element'); %% Netzverfeinerung mit schlechtem Netz h = (1/2)^25; coordinates=coo(h,diff); A_loadMesh(coordinates,elements,neigh); datA=[]; for I = 1:4 datA(I,:) = A_stepIso(1,[0 3 2]); % datA(I,:) = A_stepAniso(1,[0 3 2],1,0); I end figure(3) loglog(datA(2:end,1),datA(2:end,3),datA(2:end,1),datA(2:end,9),datA(2:end,1),datA(2:end,6)) legend('Analytisch','Quad Element','Quad Achse','location','best'); xlabel('Anzahl der Elemente'); ylabel('mu Schaetzer'); title('mu Schaetzer mit "schlechtem" Startnetz'); figure(4) loglog(datA(:,1),datA(:,4),datA(:,1),datA(:,10),datA(:,1),datA(:,7)) legend('Analytisch','Quad Element','Quad Achse','location','best'); xlabel('Anzahl der Elemente'); ylabel('EnergieNorm ^2 '); title('EnergieNorm ^2 mit "schlechtem" Startnetz'); datA \ No newline at end of file diff --git a/src/test_calcInt2.m b/src/test_calcInt2.m index 5d9c92e..6087e4b 100644 --- a/src/test_calcInt2.m +++ b/src/test_calcInt2.m @@ -7,7 +7,7 @@ dat = []; diff = [5 0 0]; -%% Laage Übersicht +%% Laage ??bersicht figure(1) h = 1; coordinates=coo(h,diff) @@ -45,7 +45,7 @@ figure(2) loglog(dat(:,1),abs(dat(:,2)),dat(:,1),abs(dat(:,3)),'-.',dat(:,1),abs(dat(:,4)),'--'); legend('Analytisch','Quad Element','Quad Achse','location','best'); -xlabel('Elementgroesse (kürzeste Seite)'); +xlabel('Elementgroesse (k??rzeste Seite)'); ylabel('Integral'); title('Integral bei kleiner werdenden Element'); @@ -56,13 +56,13 @@ coordinates=coo(h,diff); A_loadMesh(coordinates,elements,neigh); datA=[]; -for I = 1:2 +for I = 1:4 datA(I,:) = A_stepIso(1,[0 3 2]); % datA(I,:) = A_stepAniso(1,[0 1 3 2],1,0); I end figure(3) -loglog(datA(:,1),datA(:,3),datA(:,1),datA(:,9),datA(:,1),datA(:,6)) +loglog(datA(2:end,1),datA(2:end,3),datA(2:end,1),datA(2:end,9),datA(2:end,1),datA(2:end,6)) legend('Analytisch','Quad Element','Quad Achse','location','best'); xlabel('Anzahl der Elemente'); diff --git a/src/test_calcInt3.m b/src/test_calcInt3.m index d530636..359ad3d 100644 --- a/src/test_calcInt3.m +++ b/src/test_calcInt3.m @@ -7,7 +7,7 @@ dat = []; diff = [5 0 0]; -%% Laage Übersicht +%% Laage ??bersicht figure(1) h = 1; coordinates=coo(h,diff) @@ -47,7 +47,7 @@ figure(2) loglog(dat(:,1),abs(dat(:,2)),dat(:,1),abs(dat(:,3)),dat(:,1),abs(dat(:,4))); legend('Analytisch','Quad Element','Quad Achse','location','best'); -xlabel('Elementgroesse (kürzeste Seite)'); +xlabel('Elementgroesse (k??rzeste Seite)'); ylabel('Integral'); title('Integral bei kleiner werdenden Element'); @@ -58,13 +58,13 @@ coordinates=coo(h,diff); A_loadMesh(coordinates,elements,neigh); datA=[]; -for I = 1:5 +for I = 1:4 datA(I,:) = A_stepIso(1,[0 3 2]); % datA(I,:) = A_stepAniso(1,[0 3 2],1,0); I end figure(3) -loglog(datA(:,1),datA(:,3),datA(:,1),datA(:,9),datA(:,1),datA(:,6)) +loglog(datA(2:end,1),datA(2:end,3),datA(2:end,1),datA(2:end,9),datA(2:end,1),datA(2:end,6)) legend('Analytisch','Quad Element','Quad Achse','location','best'); xlabel('Anzahl der Elemente');