From: Peter Schaefer Date: Thu, 2 Aug 2012 12:50:21 +0000 (+0200) Subject: [src] mexV Zulässigkeitsbedingungen angepasst X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=bb8f42632a528bbe31fb3b731f452a81b6f77fbd;p=bacc.git [src] mexV Zulässigkeitsbedingungen angepasst --- diff --git a/src/mex_build_V.cpp b/src/mex_build_V.cpp index 5605095..cb20cc4 100644 --- a/src/mex_build_V.cpp +++ b/src/mex_build_V.cpp @@ -127,20 +127,20 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { //Art der Berechnung bestimmen // cout << " Typ:" << type << endl; switch (type) { - default: + default: // Voll Analytisch ctypeP = cParO1; ctypeO = NULL; break; - case 2: - ctypeP = cParO0; + case 2: // Analytisch oder Qadratur + ctypeP = cParO2; ctypeO = NULL; break; - case 3: - ctypeP = cParO2; + case 3: // Analytisch oder Qx1x2 + ctypeP = cParO3; ctypeO = NULL; break; case 4: - ctypeP = cParO3; + ctypeP = cParO4; ctypeO = NULL; break; } diff --git a/src/slpRectangle.cpp b/src/slpRectangle.cpp index 8b59659..b9e5aaf 100644 --- a/src/slpRectangle.cpp +++ b/src/slpRectangle.cpp @@ -435,6 +435,7 @@ double calcParIntO0(double b, double d, double t, double v, double d1, double d2, double d3, double zeta) { return calcParIntA(b, d, t, v, d1, d2, d3); } + double calcOrtIntO0(double b, double d, double t, double v, double d1, double d2, double d3, double zeta) { return calcOrtIntA(b, d, t, v, d1, d2, d3); @@ -577,7 +578,12 @@ double calcOrtIntO3(double b, double d, double t, double v, double d1, } } -double cParO0(double b, double d, double t, double v, double d1, double d2, +double cParO1(double b, double d, double t, double v, double d1, double d2, + double d3, double* zeta) { + return calcParIntA(b, d, t, v, d1, d2, d3); +} + +double cParO2(double b, double d, double t, double v, double d1, double d2, double d3, double* zeta) { double tmp = 0; @@ -606,17 +612,12 @@ double cParO0(double b, double d, double t, double v, double d1, double d2, return 0; } -double cParO1(double b, double d, double t, double v, double d1, double d2, - double d3, double* zeta) { - return calcParIntA(b, d, t, v, d1, d2, d3); -} - -double cParO2(double b, double d, double t, double v, double d1, double d2, +double cParO3(double b, double d, double t, double v, double d1, double d2, double d3, double* zeta) { double tmp = 0; - // kleine Seite nach vorn + // kleine Seite nach vorn (x1 y1) if (b > t) { tmp = b; b = t; @@ -624,7 +625,7 @@ double cParO2(double b, double d, double t, double v, double d1, double d2, d1 = -d1; } - // kleine Seite nach vorn + // kleine Seite nach vorn (x2 y2) if (d > v) { tmp = d; d = v; @@ -642,7 +643,7 @@ double cParO2(double b, double d, double t, double v, double d1, double d2, return 0; } -double cParO3(double b, double d, double t, double v, double d1, double d2, +double cParO4(double b, double d, double t, double v, double d1, double d2, double d3, double* zeta) { double tmp = 0; @@ -663,33 +664,15 @@ double cParO3(double b, double d, double t, double v, double d1, double d2, d2 = -d2; } - if ((b * b + d * d) < zeta[0] * (d1 * d1 + d2 * d2 + d3 * d3)) { - - //kleinere Achse nach vorn - if (b * b + t * t > d * d + v * v) { - double tmp = 0; - - tmp = b; - b = d; - d = tmp; - tmp = t; - t = v; - v = tmp; + if ((t * t + v * v) < zeta[1] * (d1 * d1 + d2 * d2 + d3 * d3)) { - tmp = d1; - d1 = d2; - d2 = tmp; - } - - if (min(b, t) <= zeta[1] * d1) { -// cout << "A"; - return calcParIntQY1X1(b, d, t, v, d1, d2, d3); - } else { -// cout << "E"; + if ((b * b + d * d) < zeta[0] * (d1 * d1 + d2 * d2 + d3 * d3)) { return calcParIntQX1X2(b, d, t, v, d1, d2, d3); + } else { + return calcParIntA(b, d, t, v, d1, d2, d3); } } else { - return calcParIntA(b, d, t, v, d1, d2, d3); + return calcParIntQ(b, d, t, v, d1, d2, d3); } return 0; diff --git a/src/slpRectangle.hpp b/src/slpRectangle.hpp index bcb57fa..d7992d4 100644 --- a/src/slpRectangle.hpp +++ b/src/slpRectangle.hpp @@ -74,14 +74,17 @@ // 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*); + //A oder Q double cParO2(double, double, double, double, double, double, double, double*); + //A oder Qx1x2 double cParO3(double, double, double, double, double, double, double, double*); + // A oder Q oder Qx1x2 + double cParO4(double, double, double, double, double, double, double, + double*); //}