Skip to content
Snippets Groups Projects
Commit 332e7d01 authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[NL] Unify function names in decl. and def.

parent f1c341e5
No related branches found
No related tags found
No related merge requests found
...@@ -89,7 +89,7 @@ void ShapeHex20::computeShapeFunction(const T_X& rst, T_N& N) ...@@ -89,7 +89,7 @@ void ShapeHex20::computeShapeFunction(const T_X& rst, T_N& N)
} }
template <class T_X, class T_N> template <class T_X, class T_N>
void ShapeHex20::computeGradShapeFunction(const T_X& rst, T_N& dNdr) void ShapeHex20::computeGradShapeFunction(const T_X& rst, T_N& dN)
{ {
const double r = rst[0]; const double r = rst[0];
const double s = rst[1]; const double s = rst[1];
...@@ -99,44 +99,44 @@ void ShapeHex20::computeGradShapeFunction(const T_X& rst, T_N& dNdr) ...@@ -99,44 +99,44 @@ void ShapeHex20::computeGradShapeFunction(const T_X& rst, T_N& dNdr)
const static double sign3[] = {1.0, 1.0, -1.0}; const static double sign3[] = {1.0, 1.0, -1.0};
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
dNdr[20 * i + 0] = dShapeFunctionHexHQ_Corner(r, s, t, i); dN[20 * i + 0] = dShapeFunctionHexHQ_Corner(r, s, t, i);
dNdr[20 * i + 1] = sign1[i] * dShapeFunctionHexHQ_Corner(-r, s, t, i); dN[20 * i + 1] = sign1[i] * dShapeFunctionHexHQ_Corner(-r, s, t, i);
dNdr[20 * i + 2] = dN[20 * i + 2] =
sign1[i] * sign2[i] * dShapeFunctionHexHQ_Corner(-r, -s, t, i); sign1[i] * sign2[i] * dShapeFunctionHexHQ_Corner(-r, -s, t, i);
dNdr[20 * i + 3] = sign2[i] * dShapeFunctionHexHQ_Corner(r, -s, t, i); dN[20 * i + 3] = sign2[i] * dShapeFunctionHexHQ_Corner(r, -s, t, i);
dNdr[20 * i + 4] = sign3[i] * dShapeFunctionHexHQ_Corner(r, s, -t, i); dN[20 * i + 4] = sign3[i] * dShapeFunctionHexHQ_Corner(r, s, -t, i);
dNdr[20 * i + 5] = dN[20 * i + 5] =
sign1[i] * sign3[i] * dShapeFunctionHexHQ_Corner(-r, s, -t, i); sign1[i] * sign3[i] * dShapeFunctionHexHQ_Corner(-r, s, -t, i);
dNdr[20 * i + 6] = sign1[i] * sign2[i] * sign3[i] * dN[20 * i + 6] = sign1[i] * sign2[i] * sign3[i] *
dShapeFunctionHexHQ_Corner(-r, -s, -t, i); dShapeFunctionHexHQ_Corner(-r, -s, -t, i);
dNdr[20 * i + 7] = dN[20 * i + 7] =
sign2[i] * sign3[i] * dShapeFunctionHexHQ_Corner(r, -s, -t, i); sign2[i] * sign3[i] * dShapeFunctionHexHQ_Corner(r, -s, -t, i);
dNdr[20 * i + 8] = dShapeFunctionHexHQ_Middle(r, s, t, i); dN[20 * i + 8] = dShapeFunctionHexHQ_Middle(r, s, t, i);
dNdr[20 * i + 10] = sign2[i] * dShapeFunctionHexHQ_Middle(r, -s, t, i); dN[20 * i + 10] = sign2[i] * dShapeFunctionHexHQ_Middle(r, -s, t, i);
dNdr[20 * i + 14] = dN[20 * i + 14] =
sign2[i] * sign3[i] * dShapeFunctionHexHQ_Middle(r, -s, -t, i); sign2[i] * sign3[i] * dShapeFunctionHexHQ_Middle(r, -s, -t, i);
dNdr[20 * i + 12] = sign3[i] * dShapeFunctionHexHQ_Middle(r, s, -t, i); dN[20 * i + 12] = sign3[i] * dShapeFunctionHexHQ_Middle(r, s, -t, i);
{ {
int const co = (i + 2) % 3; int const co = (i + 2) % 3;
dNdr[20 * i + 11] = dShapeFunctionHexHQ_Middle(s, t, r, co); dN[20 * i + 11] = dShapeFunctionHexHQ_Middle(s, t, r, co);
dNdr[20 * i + 15] = dN[20 * i + 15] =
sign3[i] * dShapeFunctionHexHQ_Middle(s, -t, r, co); sign3[i] * dShapeFunctionHexHQ_Middle(s, -t, r, co);
dNdr[20 * i + 13] = dN[20 * i + 13] =
sign1[i] * sign3[i] * dShapeFunctionHexHQ_Middle(s, -t, -r, co); sign1[i] * sign3[i] * dShapeFunctionHexHQ_Middle(s, -t, -r, co);
dNdr[20 * i + 9] = dN[20 * i + 9] =
sign1[i] * dShapeFunctionHexHQ_Middle(s, t, -r, co); sign1[i] * dShapeFunctionHexHQ_Middle(s, t, -r, co);
} }
{ {
int const co = (i + 1) % 3; int const co = (i + 1) % 3;
dNdr[20 * i + 16] = dShapeFunctionHexHQ_Middle(t, r, s, co); dN[20 * i + 16] = dShapeFunctionHexHQ_Middle(t, r, s, co);
dNdr[20 * i + 17] = dN[20 * i + 17] =
sign1[i] * dShapeFunctionHexHQ_Middle(t, -r, s, co); sign1[i] * dShapeFunctionHexHQ_Middle(t, -r, s, co);
dNdr[20 * i + 18] = dN[20 * i + 18] =
sign1[i] * sign2[i] * dShapeFunctionHexHQ_Middle(t, -r, -s, co); sign1[i] * sign2[i] * dShapeFunctionHexHQ_Middle(t, -r, -s, co);
dNdr[20 * i + 19] = dN[20 * i + 19] =
sign2[i] * dShapeFunctionHexHQ_Middle(t, r, -s, co); sign2[i] * dShapeFunctionHexHQ_Middle(t, r, -s, co);
} }
} }
......
...@@ -24,20 +24,20 @@ public: ...@@ -24,20 +24,20 @@ public:
/** /**
* Evaluate the shape function at the given point * Evaluate the shape function at the given point
* *
* @param [in] r natural coordinates (r,s,t) * @param [in] rst natural coordinates (r,s,t)
* @param [out] N a vector of calculated shape functions * @param [out] N a vector of calculated shape functions
*/ */
template <class T_X, class T_N> template <class T_X, class T_N>
static void computeShapeFunction(const T_X& r, T_N& N); static void computeShapeFunction(const T_X& rst, T_N& N);
/** /**
* Evaluate derivatives of the shape function at the given point * Evaluate derivatives of the shape function at the given point
* *
* @param [in] r natural coordinates (r,s,t) * @param [in] rst natural coordinates (r,s,t)
* @param [out] dN a matrix of the derivatives * @param [out] dN a matrix of the derivatives
*/ */
template <class T_X, class T_N> template <class T_X, class T_N>
static void computeGradShapeFunction(const T_X& r, T_N& dN); static void computeGradShapeFunction(const T_X& rst, T_N& dN);
using MeshElement = MeshLib::Hex20; using MeshElement = MeshLib::Hex20;
static const unsigned DIM = MeshElement::dimension; static const unsigned DIM = MeshElement::dimension;
......
...@@ -25,32 +25,32 @@ void ShapeQuad8::computeShapeFunction(const T_X& r, T_N& N) ...@@ -25,32 +25,32 @@ void ShapeQuad8::computeShapeFunction(const T_X& r, T_N& N)
} }
template <class T_X, class T_N> template <class T_X, class T_N>
void ShapeQuad8::computeGradShapeFunction(const T_X& rs, T_N& dNdr) void ShapeQuad8::computeGradShapeFunction(const T_X& rs, T_N& dN)
{ {
const double r = rs[0]; const double r = rs[0];
const double s = rs[1]; const double s = rs[1];
// dN/dr // dN/dr
dNdr[0] = (1 + s) * (2 * r + s) * 0.25; dN[0] = (1 + s) * (2 * r + s) * 0.25;
dNdr[1] = (1 + s) * (2 * r - s) * 0.25; dN[1] = (1 + s) * (2 * r - s) * 0.25;
dNdr[2] = (1 - s) * (2 * r + s) * 0.25; dN[2] = (1 - s) * (2 * r + s) * 0.25;
dNdr[3] = (1 - s) * (2 * r - s) * 0.25; dN[3] = (1 - s) * (2 * r - s) * 0.25;
dNdr[4] = -r * (1 + s); dN[4] = -r * (1 + s);
dNdr[5] = -(1 - s * s) * 0.5; dN[5] = -(1 - s * s) * 0.5;
dNdr[6] = -r * (1 - s); dN[6] = -r * (1 - s);
dNdr[7] = (1 - s * s) * 0.5; dN[7] = (1 - s * s) * 0.5;
// dN/ds // dN/ds
dNdr[8] = (1 + r) * (r + 2 * s) * 0.25; dN[8] = (1 + r) * (r + 2 * s) * 0.25;
dNdr[9] = -(1 - r) * (r - 2 * s) * 0.25; dN[9] = -(1 - r) * (r - 2 * s) * 0.25;
dNdr[10] = (1 - r) * (r + 2 * s) * 0.25; dN[10] = (1 - r) * (r + 2 * s) * 0.25;
dNdr[11] = -(1 + r) * (r - 2 * s) * 0.25; dN[11] = -(1 + r) * (r - 2 * s) * 0.25;
dNdr[12] = (1 - r * r) * 0.5; dN[12] = (1 - r * r) * 0.5;
dNdr[13] = -(1 - r) * s; dN[13] = -(1 - r) * s;
dNdr[14] = -(1 - r * r) * 0.5; dN[14] = -(1 - r * r) * 0.5;
dNdr[15] = -(1 + r) * s; dN[15] = -(1 + r) * s;
} }
} // namespace NumLib } // namespace NumLib
...@@ -32,11 +32,11 @@ public: ...@@ -32,11 +32,11 @@ public:
/** /**
* Evaluate derivatives of the shape function at the given point * Evaluate derivatives of the shape function at the given point
* *
* @param [in] r point coordinates * @param [in] rs point coordinates
* @param [out] dN a matrix of the derivatives * @param [out] dN a matrix of the derivatives
*/ */
template <class T_X, class T_N> template <class T_X, class T_N>
static void computeGradShapeFunction(const T_X& r, T_N& dN); static void computeGradShapeFunction(const T_X& rs, T_N& dN);
using MeshElement = MeshLib::Quad8; using MeshElement = MeshLib::Quad8;
static const unsigned DIM = MeshElement::dimension; static const unsigned DIM = MeshElement::dimension;
......
...@@ -25,26 +25,26 @@ void ShapeQuad9::computeShapeFunction(const T_X& r, T_N& N) ...@@ -25,26 +25,26 @@ void ShapeQuad9::computeShapeFunction(const T_X& r, T_N& N)
} }
template <class T_X, class T_N> template <class T_X, class T_N>
void ShapeQuad9::computeGradShapeFunction(const T_X& r, T_N& dNdr) void ShapeQuad9::computeGradShapeFunction(const T_X& r, T_N& dN)
{ {
dNdr[0] = (r[0] + 0.5) * r[1] * (r[1] + 1) / 2; dN[0] = (r[0] + 0.5) * r[1] * (r[1] + 1) / 2;
dNdr[1] = (r[0] - 0.5) * r[1] * (r[1] + 1) / 2; dN[1] = (r[0] - 0.5) * r[1] * (r[1] + 1) / 2;
dNdr[2] = (r[0] - 0.5) * r[1] * (r[1] - 1) / 2; dN[2] = (r[0] - 0.5) * r[1] * (r[1] - 1) / 2;
dNdr[3] = (r[0] + 0.5) * r[1] * (r[1] - 1) / 2; dN[3] = (r[0] + 0.5) * r[1] * (r[1] - 1) / 2;
dNdr[4] = -r[0] * r[1] * (1 + r[1]); dN[4] = -r[0] * r[1] * (1 + r[1]);
dNdr[5] = (1 - r[1] * r[1]) * (r[0] - 0.5); dN[5] = (1 - r[1] * r[1]) * (r[0] - 0.5);
dNdr[6] = r[0] * r[1] * (1 - r[1]); dN[6] = r[0] * r[1] * (1 - r[1]);
dNdr[7] = (1 - r[1] * r[1]) * (r[0] + 0.5); dN[7] = (1 - r[1] * r[1]) * (r[0] + 0.5);
dNdr[8] = 2 * r[0] * (r[1] * r[1] - 1); dN[8] = 2 * r[0] * (r[1] * r[1] - 1);
dNdr[10] = (r[1] + 0.5) * r[0] * (r[0] - 1) / 2; dN[10] = (r[1] + 0.5) * r[0] * (r[0] - 1) / 2;
dNdr[11] = (r[1] - 0.5) * r[0] * (r[0] - 1) / 2; dN[11] = (r[1] - 0.5) * r[0] * (r[0] - 1) / 2;
dNdr[12] = (r[1] - 0.5) * r[0] * (r[0] + 1) / 2; dN[12] = (r[1] - 0.5) * r[0] * (r[0] + 1) / 2;
dNdr[13] = (1 - r[0] * r[0]) * (r[1] + 0.5); dN[13] = (1 - r[0] * r[0]) * (r[1] + 0.5);
dNdr[14] = r[0] * r[1] * (1 - r[0]); dN[14] = r[0] * r[1] * (1 - r[0]);
dNdr[15] = (1 - r[0] * r[0]) * (r[1] - 0.5); dN[15] = (1 - r[0] * r[0]) * (r[1] - 0.5);
dNdr[16] = -r[0] * r[1] * (1 + r[0]); dN[16] = -r[0] * r[1] * (1 + r[0]);
dNdr[17] = 2 * r[1] * (r[0] * r[0] - 1); dN[17] = 2 * r[1] * (r[0] * r[0] - 1);
dNdr[9] = (r[1] + 0.5) * r[0] * (r[0] + 1) / 2; dN[9] = (r[1] + 0.5) * r[0] * (r[0] + 1) / 2;
} }
} // namespace NumLib } // namespace NumLib
...@@ -26,40 +26,40 @@ void ShapeTet10::computeShapeFunction(const T_X& r, T_N& N) ...@@ -26,40 +26,40 @@ void ShapeTet10::computeShapeFunction(const T_X& r, T_N& N)
} }
template <class T_X, class T_N> template <class T_X, class T_N>
void ShapeTet10::computeGradShapeFunction(const T_X& r, T_N& dNdr) void ShapeTet10::computeGradShapeFunction(const T_X& r, T_N& dN)
{ {
dNdr[0] = 4.0 * (r[0] + r[1] + r[2]) - 3.0; dN[0] = 4.0 * (r[0] + r[1] + r[2]) - 3.0;
dNdr[1] = 4. * r[0] - 1.; dN[1] = 4. * r[0] - 1.;
dNdr[2] = 0.0; dN[2] = 0.0;
dNdr[3] = 0.0; dN[3] = 0.0;
dNdr[4] = 4.0 * (1.0 - 2.0 * r[0] - r[1] - r[2]); dN[4] = 4.0 * (1.0 - 2.0 * r[0] - r[1] - r[2]);
dNdr[5] = 4.0 * r[1]; dN[5] = 4.0 * r[1];
dNdr[6] = -4.0 * r[1]; dN[6] = -4.0 * r[1];
dNdr[7] = -4.0 * r[2]; dN[7] = -4.0 * r[2];
dNdr[8] = 4.0 * r[2]; dN[8] = 4.0 * r[2];
dNdr[9] = 0.0; dN[9] = 0.0;
dNdr[10] = 4. * (r[0] + r[1] + r[2]) - 3.; dN[10] = 4. * (r[0] + r[1] + r[2]) - 3.;
dNdr[11] = 0.0; dN[11] = 0.0;
dNdr[12] = 4. * r[1] - 1.; dN[12] = 4. * r[1] - 1.;
dNdr[13] = 0.; dN[13] = 0.;
dNdr[14] = -4.0 * r[0]; dN[14] = -4.0 * r[0];
dNdr[15] = 4.0 * r[0]; dN[15] = 4.0 * r[0];
dNdr[16] = 4.0 * (1.0 - r[0] - 2.0 * r[1] - r[2]); dN[16] = 4.0 * (1.0 - r[0] - 2.0 * r[1] - r[2]);
dNdr[17] = -4.0 * r[2]; dN[17] = -4.0 * r[2];
dNdr[18] = 0.0; dN[18] = 0.0;
dNdr[19] = 4.0 * r[2]; dN[19] = 4.0 * r[2];
dNdr[20] = 4. * (r[0] + r[1] + r[2]) - 3.; dN[20] = 4. * (r[0] + r[1] + r[2]) - 3.;
dNdr[21] = 0.; dN[21] = 0.;
dNdr[22] = 0.; dN[22] = 0.;
dNdr[23] = 4. * r[2] - 1.; dN[23] = 4. * r[2] - 1.;
dNdr[24] = -4.0 * r[0]; dN[24] = -4.0 * r[0];
dNdr[25] = 0.0; dN[25] = 0.0;
dNdr[26] = -4.0 * r[1]; dN[26] = -4.0 * r[1];
dNdr[27] = 4.0 * (1.0 - r[0] - r[1] - 2.0 * r[2]); dN[27] = 4.0 * (1.0 - r[0] - r[1] - 2.0 * r[2]);
dNdr[28] = 4.0 * r[0]; dN[28] = 4.0 * r[0];
dNdr[29] = 4.0 * r[1]; dN[29] = 4.0 * r[1];
} }
} // namespace NumLib } // namespace NumLib
...@@ -20,25 +20,25 @@ void ShapeTet4::computeShapeFunction(const T_X& r, T_N& N) ...@@ -20,25 +20,25 @@ void ShapeTet4::computeShapeFunction(const T_X& r, T_N& N)
} }
template <class T_X, class T_N> template <class T_X, class T_N>
void ShapeTet4::computeGradShapeFunction(const T_X& /*r*/, T_N& dNdr) void ShapeTet4::computeGradShapeFunction(const T_X& /*r*/, T_N& dN)
{ {
// dr // dr
dNdr[0] = -1.0; dN[0] = -1.0;
dNdr[1] = 1.0; dN[1] = 1.0;
dNdr[2] = 0.0; dN[2] = 0.0;
dNdr[3] = 0.0; dN[3] = 0.0;
// ds // ds
dNdr[4] = -1.0; dN[4] = -1.0;
dNdr[5] = 0.0; dN[5] = 0.0;
dNdr[6] = 1.0; dN[6] = 1.0;
dNdr[7] = 0.0; dN[7] = 0.0;
// dt // dt
dNdr[8] = -1.0; dN[8] = -1.0;
dNdr[9] = 0.0; dN[9] = 0.0;
dNdr[10] = 0.0; dN[10] = 0.0;
dNdr[11] = 1.0; dN[11] = 1.0;
} }
} // namespace NumLib } // namespace NumLib
...@@ -22,25 +22,25 @@ void ShapeTri6::computeShapeFunction(const T_X& r, T_N& N) ...@@ -22,25 +22,25 @@ void ShapeTri6::computeShapeFunction(const T_X& r, T_N& N)
} }
template <class T_X, class T_N> template <class T_X, class T_N>
void ShapeTri6::computeGradShapeFunction(const T_X& r, T_N& dNdr) void ShapeTri6::computeGradShapeFunction(const T_X& r, T_N& dN)
{ {
dNdr[0] = 4. * (r[0] + r[1]) - 3.; // dN1/dL1 dN[0] = 4. * (r[0] + r[1]) - 3.; // dN1/dL1
dNdr[6] = dNdr[0]; // dN1/dL2 dN[6] = dN[0]; // dN1/dL2
dNdr[1] = 4. * r[0] - 1.; // dN2/dL1 dN[1] = 4. * r[0] - 1.; // dN2/dL1
dNdr[7] = 0.; // dN2/dL2 dN[7] = 0.; // dN2/dL2
dNdr[2] = 0.; // dN3/dL1 dN[2] = 0.; // dN3/dL1
dNdr[8] = 4. * r[1] - 1.; // dN3/dL2 dN[8] = 4. * r[1] - 1.; // dN3/dL2
dNdr[3] = 4. * (1 - 2. * r[0] - r[1]); // dN4/dL1 dN[3] = 4. * (1 - 2. * r[0] - r[1]); // dN4/dL1
dNdr[9] = -4. * r[0]; // dN4/dL2 dN[9] = -4. * r[0]; // dN4/dL2
dNdr[4] = 4. * r[1]; // dN5/dL1 dN[4] = 4. * r[1]; // dN5/dL1
dNdr[10] = -dNdr[9]; // dN5/dL2 dN[10] = -dN[9]; // dN5/dL2
dNdr[5] = -dNdr[4]; // dN6/dL1 dN[5] = -dN[4]; // dN6/dL1
dNdr[11] = 4. * (1 - r[0] - 2. * r[1]); // dN6/dL2 dN[11] = 4. * (1 - r[0] - 2. * r[1]); // dN6/dL2
} }
} // namespace NumLib } // namespace NumLib
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment