12#ifndef BELFEM_CL_IF_TRI10_HPP
13#define BELFEM_CL_IF_TRI10_HPP
51 const real a = 1.0/3.0;
52 const real b = 2.0/3.0;
96 const real xi = aXi( 0 );
97 const real eta = aXi( 1 );
98 const real zeta = 1.0 - xi - eta;
102 aN( 0, 0 ) = (9.0*(xi-1)*xi+2.0)*xi*0.5;
104 aN( 0, 1 ) = 0.5*eta*(9.0*eta*(eta-1.0)+2.0);
106 aN( 0, 2 ) = 0.5*zeta*(3.0*(xi+eta)-2.0)*(3.0*(xi+eta)-1.0);
108 aN( 0, 3 ) = 4.5*eta*xi*(3.0*xi-1.0);
110 aN( 0, 4 ) = 4.5*eta*xi*(3.0*eta-1.0);
112 aN( 0, 5 ) = 4.5*zeta*eta*(3.0*eta-1.0);
114 aN( 0, 6 ) = 4.5*eta*((3.0*(xi+eta)-5.0)*(xi+eta)+2.0);
116 aN( 0, 7 ) = 4.5*xi*((3.0*(xi+eta)-5.0)*(xi+eta)+2.0);
118 aN( 0, 8 ) = 4.5*xi*zeta*(3.0*xi-1.0);
120 aN( 0, 9 ) = 27.0*xi*eta*zeta;
133 const real xi = aXi( 0 );
134 const real eta = aXi( 1 );
138 adNdXi(0,0)=1.0+xi*(13.5*xi-9.0);
142 adNdXi(1,1)=1.0+eta*(13.5*eta-9.0);
144 adNdXi(0,2)=eta*((18.0-27.0*xi)-13.5*eta)+(18.0-13.5*xi)*xi-5.5;
145 adNdXi(1,2)=eta*((18.0-27.0*xi)-13.5*eta)+(18.0-13.5*xi)*xi-5.5;
147 adNdXi(0,3)=eta*(27.*xi-4.5);
148 adNdXi(1,3)=xi*(13.5*xi-4.5);
150 adNdXi(0,4)=eta*(13.5*eta-4.5);
151 adNdXi(1,4)=xi*(27.0*eta-4.5);
153 adNdXi(0,5)=(4.5-13.5*eta)*eta;
154 adNdXi(1,5)=eta*(36.0-40.5*eta-27.0*xi)+4.5*xi-4.5;
156 adNdXi(0,6)=eta*(27.0*(eta+xi)-22.5);
157 adNdXi(1,6)=9.0+eta*(40.5*eta+54.0*xi-45.0)+xi*(13.5*xi-22.5);
159 adNdXi(0,7)=xi*(40.5*xi-45.0)+eta*(13.5*eta+54.0*xi-22.5)+9.0;
160 adNdXi(1,7)=xi*(27.0*(xi+eta)-22.5);
162 adNdXi(0,8)=(36.0-40.5*xi)*xi+eta*(4.5-27.0*xi)-4.5;
163 adNdXi(1,8)=(4.5-13.5*xi)*xi;
165 adNdXi(0,9)=27.0*eta*(1.0-eta-2.0*xi);
166 adNdXi(1,9)=27.0*xi*(1.0-2.0*eta-xi);
178 const real xi = aXi( 0 );
179 const real eta = aXi( 1 );
183 ad2NdXi2(0,0)=27.0*xi-9.0;
188 ad2NdXi2(1,1)=27.0*eta-9.0;
191 ad2NdXi2(0,2)=18.0-27.0*(xi+eta);
192 ad2NdXi2(1,2)=18.0-27.0*(xi+eta);
193 ad2NdXi2(2,2)=18.0-27.0*(xi+eta);
195 ad2NdXi2(0,3)=27.0*eta;
197 ad2NdXi2(2,3)=27.0*xi-4.5;
200 ad2NdXi2(1,4)=27.0*xi;
201 ad2NdXi2(2,4)=27.0*eta-4.5;
204 ad2NdXi2(1,5)=36.0-81.0*eta-27.0*xi;
205 ad2NdXi2(2,5)=4.5-27.0*eta;
207 ad2NdXi2(0,6)=27.0*eta;
208 ad2NdXi2(1,6)=54.0*xi+81.0*eta-45.0;
209 ad2NdXi2(2,6)=27.0*xi+54.0*eta-22.5;
211 ad2NdXi2(0,7)=81.0*xi+54.0*eta-45.0;
212 ad2NdXi2(1,7)=27.0*xi;
213 ad2NdXi2(2,7)=54.0*xi+27.0*eta-22.5;
215 ad2NdXi2(0,8)=36.-27.0*eta-81.0*xi;
217 ad2NdXi2(2,8)=4.5-27.0*xi;
219 ad2NdXi2(0,9)=-54.0*eta;
220 ad2NdXi2(1,9)=-54.0*xi;
221 ad2NdXi2(2,9)=27.0*(1.0-2.0*(xi+eta));
void set_size(const size_t aNumRows, const size_t aNumCols)
Definition cl_AR_Matrix.hpp:186
shape function templated class G : Geometry T : Type D : Dimension B : Number of Basis
Definition cl_IF_InterpolationFunctionTemplate.hpp:25
void param_coords(Matrix< real > &aXiHat) const override
returns a matrix containing the parameter coordinates of the nodes < number of dimensions x number of...
Definition cl_IF_InterpolationFunctionTemplate.hpp:49
InterpolationOrder interpolation_order() const override
returns the interpolation order
Definition cl_IF_InterpolationFunctionTemplate.hpp:145
void d2NdXi2(const Vector< real > &aXi, Matrix< real > &ad2NdXi2) const override
calculates the second derivative of the shape function in parameter space
Definition cl_IF_InterpolationFunctionTemplate.hpp:110
void dNdXi(const Vector< real > &aXi, Matrix< real > &adNdXi) const override
calculates the first derivative of the shape function in parameter space
Definition cl_IF_InterpolationFunctionTemplate.hpp:89
void N(const Vector< real > &aXi, Matrix< real > &aN) const override
evaluates the shape function at a given point
Definition cl_IF_InterpolationFunctionTemplate.hpp:68
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
@ LAGRANGE
Definition Mesh_Enums.hpp:100
ElementType element_type(const std::string &aStr)
Definition Mesh_Enums.hpp:370
ElementType
Element types.
Definition Mesh_Enums.hpp:27
@ TRI10
Definition Mesh_Enums.hpp:48
InterpolationOrder
Definition Mesh_Enums.hpp:85
@ CUBIC
Definition Mesh_Enums.hpp:90
double real
Definition typedefs.hpp:36
@ TRI
Definition Mesh_Enums.hpp:73