13 template <
class T_X,
class T_N>
16 N[0] = 2. * (1 -
r[0] -
r[1] -
r[2]) * (0.5 -
r[0] -
r[1] -
r[2]);
17 N[1] =
r[0] * (2. *
r[0] - 1);
18 N[2] =
r[1] * (2. *
r[1] - 1);
19 N[3] =
r[2] * (2. *
r[2] - 1);
20 N[4] = 4.0 *
r[0] * (1.0 -
r[0] -
r[1] -
r[2]);
21 N[5] = 4.0 *
r[0] *
r[1];
22 N[6] = 4.0 *
r[1] * (1.0 -
r[0] -
r[1] -
r[2]);
23 N[7] = 4.0 *
r[2] * (1.0 -
r[0] -
r[1] -
r[2]);
24 N[8] = 4.0 *
r[0] *
r[2];
25 N[9] = 4.0 *
r[1] *
r[2];
28 template <
class T_X,
class T_N>
31 dNdr[0] = 4.0 * (
r[0] +
r[1] +
r[2]) - 3.0;
32 dNdr[1] = 4. *
r[0] - 1.;
35 dNdr[4] = 4.0 * (1.0 - 2.0 *
r[0] -
r[1] -
r[2]);
37 dNdr[6] = -4.0 *
r[1];
38 dNdr[7] = -4.0 *
r[2];
42 dNdr[10] = 4. * (
r[0] +
r[1] +
r[2]) - 3.;
44 dNdr[12] = 4. *
r[1] - 1.;
46 dNdr[14] = -4.0 *
r[0];
47 dNdr[15] = 4.0 *
r[0];
48 dNdr[16] = 4.0 * (1.0 -
r[0] - 2.0 *
r[1] -
r[2]);
49 dNdr[17] = -4.0 *
r[2];
51 dNdr[19] = 4.0 *
r[2];
53 dNdr[20] = 4. * (
r[0] +
r[1] +
r[2]) - 3.;
56 dNdr[23] = 4. *
r[2] - 1.;
57 dNdr[24] = -4.0 *
r[0];
59 dNdr[26] = -4.0 *
r[1];
60 dNdr[27] = 4.0 * (1.0 -
r[0] -
r[1] - 2.0 *
r[2]);
61 dNdr[28] = 4.0 *
r[0];
62 dNdr[29] = 4.0 *
r[1];
static void computeShapeFunction(const T_X &r, T_N &N)
static void computeGradShapeFunction(const T_X &r, T_N &dN)