OGS
ShapeTri6-impl.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4namespace NumLib
5{
6template <class T_X, class T_N>
7void ShapeTri6::computeShapeFunction(const T_X& r, T_N& N)
8{
9 N[0] = 2. * (1. - r[0] - r[1]) * (0.5 - r[0] - r[1]);
10 N[1] = r[0] * (2. * r[0] - 1.);
11 N[2] = r[1] * (2. * r[1] - 1.);
12 N[3] = 4. * r[0] * (1. - r[0] - r[1]);
13 N[4] = 4. * r[0] * r[1];
14 N[5] = 4. * r[1] * (1. - r[0] - r[1]);
15}
16
17template <class T_X, class T_N>
18void ShapeTri6::computeGradShapeFunction(const T_X& r, T_N& dN)
19{
20 dN[0] = 4. * (r[0] + r[1]) - 3.; // dN1/dL1
21 dN[6] = dN[0]; // dN1/dL2
22
23 dN[1] = 4. * r[0] - 1.; // dN2/dL1
24 dN[7] = 0.; // dN2/dL2
25
26 dN[2] = 0.; // dN3/dL1
27 dN[8] = 4. * r[1] - 1.; // dN3/dL2
28
29 dN[3] = 4. * (1 - 2. * r[0] - r[1]); // dN4/dL1
30 dN[9] = -4. * r[0]; // dN4/dL2
31
32 dN[4] = 4. * r[1]; // dN5/dL1
33 dN[10] = -dN[9]; // dN5/dL2
34
35 dN[5] = -dN[4]; // dN6/dL1
36 dN[11] = 4. * (1 - r[0] - 2. * r[1]); // dN6/dL2
37}
38
39} // namespace NumLib
static void computeGradShapeFunction(const T_X &r, T_N &dN)
static void computeShapeFunction(const T_X &r, T_N &N)