]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[src] neuer Fall 4 QEA
authorPeter Schaefer <schaeferpm@gmail.com>
Wed, 3 Apr 2013 12:54:16 +0000 (14:54 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Wed, 3 Apr 2013 12:54:16 +0000 (14:54 +0200)
src/mex_build_V.cpp
src/slpRectangle.cpp
src/slpRectangle.hpp

index 0e952cccc357b5344a45ebca438fc7024c325350..694ebb654c53a5d30d46db54bf4a7ee111885135 100644 (file)
@@ -291,10 +291,14 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                ctypeP = cParO2;\r
                ctypeO = cOrtO2;\r
                break;\r
-       case 3: // Analytisch oder Qy[1]x2\r
+       case 3: // Analytisch oder Qadratur oder Qy[1]x2\r
                ctypeP = cParO3;\r
                ctypeO = cOrtO3;\r
                break;\r
+       case 4: // Analytisch oder Qy[1]x2\r
+               ctypeP = cParO4;\r
+               ctypeO = cOrtO4;\r
+               break;\r
        case 0: // Distanz der Elemente\r
                ctypeP = distT_par;\r
                ctypeO = distT_ort;\r
index 77c73b5f4e61872a78765b41383b898327018c8c..aa35c19429792c7a0a2870ba303c9da3c8f61ffb 100644 (file)
@@ -534,9 +534,9 @@ double cOrtO2(double b, double d, double t, double v, double d1, double d2,
 \r
        return intA4<F_ort>(b, d, t, v, d1, d2, d3);\r
 }\r
+\r
 /*\r
  * fuer parallele Elemente\r
- * volle Quadratur fuer zeta_1 zulaessige Elemente\r
  * Quadratur ueber ein Element fuer zeta_2 zulaessige Elemente\r
  * volle Quadratur fuer zeta_1 zulaessige Elemente\r
  * analytisch sonst\r
@@ -555,6 +555,7 @@ double cParO3(double b, double d, double t, double v, double d1, double d2,
 \r
        return intA4<F_par>(b, d, t, v, d1, d2, d3);\r
 }\r
+\r
 /*\r
  * fuer orthogonale Elemente\r
  * Quadratur ueber ein Element fuer zeta_2 zulaessige Elemente\r
@@ -577,3 +578,36 @@ double cOrtO3(double b, double d, double t, double v, double d1, double d2,
        return intA4<F_ort>(b, d, t, v, d1, d2, d3);\r
 }\r
 \r
+/*\r
+ * fuer parallele Elemente\r
+ * Quadratur ueber ein Element fuer zeta_2 zulaessige Elemente\r
+ * analytisch sonst\r
+ */\r
+double cParO4(double b, double d, double t, double v, double d1, double d2,\r
+               double d3, double* zeta) {\r
+\r
+       //kurze Seite nach vorn\r
+       switch_site_par(b, d, t, v, d1, d2);\r
+\r
+       if (zeta[0] * zeta[1] * (b * b + d * d) < dist2_par(b, d, t, v, d1, d2, d3))\r
+               return intQ2A2<FY1Y2_par>(b, d, t, v, d1, d2, d3);\r
+\r
+       return intA4<F_par>(b, d, t, v, d1, d2, d3);\r
+}\r
+/*\r
+ * fuer orthogonale Elemente\r
+ * Quadratur ueber ein Element fuer zeta_2 zulaessige Elemente\r
+ * analytisch sonst\r
+ */\r
+double cOrtO4(double b, double d, double t, double v, double d1, double d2,\r
+               double d3, double* zeta) {\r
+       double tmp = 0, dis2 = 0;\r
+\r
+       //kurze Seite nach vorn\r
+       switch_site_ort(b, d, t, v, d1, d2, d3);\r
+\r
+       if (zeta[0] * zeta[1] * (b * b + d * d) < dist2_ort(b, d, t, v, d1, d2, d3))\r
+               return intQ2A2<FY2Y3_ort>(b, d, t, v, d1, d2, d3);\r
+\r
+       return intA4<F_ort>(b, d, t, v, d1, d2, d3);\r
+}\r
index cf2c0f0d1d0aab3464328bff9e474f51519a4e1d..2dbf1e4ac9f3e4773ccdc292d6bbaec2b80a87b0 100644 (file)
@@ -34,6 +34,13 @@ double cOrtO2(double, double, double, double, double, double, double, double*);
 double cParO3(double, double, double, double, double, double, double, double*);
 double cOrtO3(double, double, double, double, double, double, double, double*);
 
+/*
+ * Quadratur ueber ein Element fuer zeta_1 zulaessige Elemente
+ * analytisch sonst
+ */
+double cParO4(double, double, double, double, double, double, double, double*);
+double cOrtO4(double, double, double, double, double, double, double, double*);
+
 /*
  * setzt die 2^Anzahl der Auswertungsstellen
  */