Class xlifepp::MorleyTriangle#
-
class MorleyTriangle : public xlifepp::RefTriangle#
-
Inheritence diagram for xlifepp::MorleyTriangle:
Collaboration diagram for xlifepp::MorleyTriangle:
(non conforming H2 element) Parent class: RefTriangle
Public Functions
-
MorleyTriangle(const Interpolation *interp_p)#
-
MorleyTriangle constructor for Morley reference elements.
-
Matrix<real_t> affineMap(const GeomMapData&) const#
-
create the affine transformation matrix mapping reference shape function to any triangle
create the affine transformation matrix mapping reference shape function to any triangle triangle and any related data are handled by the GeomMapData object (have to be set up before) 2D Morley transformation mapping ReferenceElement shape functions (s) unto current element, from Kirby R.C.
“A general approach to transforming finite elements”.The SMAI journal of computational mathematics, Tome 4 (2018),197-224.doi:10.5802/smai-jcm.33. w1 = s1-a2s5-a3s6 w2 = s2-a1s4+a3s6 w3 = s3+a1s4+a2s5 w4=d1s4 w5=d2s5 w6=d3s6 a1 = (Q1)_12/L1 a2 = (Q2)_12/L2 a3 = (Q3)_12/L3 di=(Qi)_11 Qi = [ni ti]t Jt [nui taui] (ni, ti) outward normal and tangent vector (pi/2 rotation of normal) on edge i of the reference triangle (nui taui) outward normal and tangent vector (pi/2 rotation of normal) on edge i of the current triangle Li length of edge i of the current triangle here edge i is the edge which does not contain vi vertex i=1 : n=(-1,0), t2=(0,-1) => Q12=J12*ny-J22*nx, Q11=-J21*ny-j11*nx i=2 : n=(0,-1), t2=(1,0) => Q12=J11*ny-J21*nx, Q11=-J12*nx-j22*ny i=3 : n1=sqrt(2)/2(1,1), t1=0.5*sqrt(2)(-1,1) => Q12=sqrt(2)/2((J21+J22)*nx-(J11+J12)*ny), Q11=sqrt(2)/2(J11+J12)*nx+(J22+J21)*ny) |1 0 0 0 -a2 -a3| |0 1 0 -a1 0 a3| affine transformation matrix M = |0 0 1 a1 a2 0 | |0 0 0 d1 0 0 | |0 0 0 0 d2 0 | |0 0 0 0 0 d3|
gd: geometric data (contains the inverse of jacobian and accessto length) out: matrix M
-
virtual void computeShapeValues(std::vector<real_t>::const_iterator it_pt, ShapeValues &shv, const bool withDeriv = true, const bool with2Deriv = true) const#
-
Morley shape functions w1(s,y)=0.5(x+y-2xy+x^2-y^2) w2(s,y)=0.5(x+y-2xy+y^2-x^2) w3(x,y)=1-x-y+2xy w4(x,y)=x(x-1) w5(x,y)=y(y-1) w6(x,y)=1/sqr(2)((x+y)^2-(x+y))
-
virtual void interpolationData()#
-
builds interpolation data
interp defines Reference Element interpolation data
-
MorleyTriangle(const Interpolation *interp_p)#