53 aXiHat( 0, 0 ) = -1.000000;
54 aXiHat( 1, 0 ) = -1.000000;
56 aXiHat( 0, 1 ) = 1.000000;
57 aXiHat( 1, 1 ) = -1.000000;
59 aXiHat( 0, 2 ) = 1.000000;
60 aXiHat( 1, 2 ) = 1.000000;
62 aXiHat( 0, 3 ) = -1.000000;
63 aXiHat( 1, 3 ) = 1.000000;
65 aXiHat( 0, 4 ) = 0.000000;
66 aXiHat( 1, 4 ) = -1.000000;
68 aXiHat( 0, 5 ) = 1.000000;
69 aXiHat( 1, 5 ) = 0.000000;
71 aXiHat( 0, 6 ) = 0.000000;
72 aXiHat( 1, 6 ) = 1.000000;
74 aXiHat( 0, 7 ) = -1.000000;
75 aXiHat( 1, 7 ) = 0.000000;
77 aXiHat( 0, 8 ) = 0.000000;
78 aXiHat( 1, 8 ) = 0.000000;
90 const real xi = aXi( 0 );
91 const real eta = aXi( 1 );
93 const real c = xi * eta * 0.25;
94 const real xi2 = xi*xi;
95 const real eta2 = eta*eta;
99 aN( 0, 0 ) = ( c * ( eta - 1.0 ) * (xi - 1.0) );
100 aN( 0, 1 ) = ( c * ( eta - 1.0 ) * (xi + 1.0) );
101 aN( 0, 2 ) = ( c * ( eta + 1.0 ) * (xi + 1.0) );
102 aN( 0, 3 ) = ( c * ( eta + 1.0 ) * (xi - 1.0) );
103 aN( 0, 4 ) = ( eta * ( 1.0 - xi2 ) * ( eta - 1.0 ) ) * 0.5;
104 aN( 0, 5 ) = ( xi * ( 1.0 - eta2)*( xi + 1.0 ) )*0.5;
105 aN( 0, 6 ) = ( eta * (1.0 - xi2)*( eta + 1.0 ) )*0.5;
106 aN( 0, 7 ) = ( xi*( 1.0 - eta2 )*( xi - 1.0 ) )*0.5;
107 aN( 0, 8 ) = ( eta2 - 1.0 )*( xi2 - 1.0 );
119 const real xi = aXi( 0 );
120 const real eta = aXi( 1 );
123 const real c = xi*eta;
124 const real xi2 = xi*xi;
125 const real eta2 = eta*eta;
129 adNdXi( 0, 0 ) = ( eta * ( 2.0 * xi - 1.0 ) * ( eta - 1.0 ) ) * 0.25;
130 adNdXi( 1, 0 ) = ( xi * ( 2.0 * eta - 1.0 ) * ( xi - 1.0 ) ) * 0.25;
132 adNdXi( 0, 1 ) = ( eta * ( 2.0 * xi + 1.0 ) * ( eta - 1.0 ) ) * 0.25;
133 adNdXi( 1, 1 ) = ( xi * ( 2.0 * eta - 1.0 ) * ( xi + 1.0 ) ) * 0.25;
135 adNdXi( 0, 2 ) = ( eta * ( 2.0 * xi + 1.0 ) * ( eta + 1.0 ) ) * 0.25;
136 adNdXi( 1, 2 ) = ( xi * ( 2.0 * eta + 1.0 ) * ( xi + 1.0 ) ) * 0.25;
138 adNdXi( 0, 3 ) = ( eta * ( 2.0 * xi - 1.0 ) * ( eta + 1.0 ) ) * 0.25;
139 adNdXi( 1, 3 ) = ( xi * ( 2.0 * eta + 1.0 ) * ( xi - 1.0 ) ) * 0.25;
141 adNdXi( 0, 4 ) = - c * ( eta - 1.0 );
142 adNdXi( 1, 4 ) = -( ( 2.0 * eta - 1.0 ) * ( xi2 - 1.0 ) ) * 0.5;
144 adNdXi( 0, 5 ) = -( ( eta2 - 1.0 ) * ( 2.0 * xi + 1.0 ) ) * 0.5;
145 adNdXi( 1, 5 ) = - c * ( xi + 1.0 );
147 adNdXi( 0, 6 ) = - c * ( eta + 1.0 );
148 adNdXi( 1, 6 ) = -( ( 2.0 * eta + 1.0 ) * ( xi2 - 1.0 ) ) * 0.5;
150 adNdXi( 0, 7 ) = -( ( eta2 - 1.0 ) * ( 2.0 * xi - 1.0 ) ) * 0.5;
151 adNdXi( 1, 7 ) = - c * ( xi - 1.0 );
153 adNdXi( 0, 8 ) = 2.0 * xi * ( eta2 - 1.0 );
154 adNdXi( 1, 8 ) = 2.0 * eta * ( xi2 - 1.0 );
166 const real xi = aXi( 0 );
167 const real eta = aXi( 1 );
170 const real xi2 =xi*xi;
171 const real eta2 = eta*eta;
175 ad2NdXi2( 0, 0 ) = ( eta * ( eta - 1.0 ) ) * 0.5;
176 ad2NdXi2( 1, 0 ) = ( xi * ( xi - 1.0 ) ) * 0.5;
177 ad2NdXi2( 2, 0 ) = ( ( 2.0 * eta - 1.0 ) * ( 2.0 * xi - 1.0 ) ) * 0.25;
179 ad2NdXi2( 0, 1 ) = ( eta * ( eta - 1.0 ) ) * 0.5;
180 ad2NdXi2( 1, 1 ) = ( xi * ( xi + 1.0 ) ) * 0.5;
181 ad2NdXi2( 2, 1 ) = ( ( 2.0 * eta - 1.0 ) * ( 2.0 * xi + 1.0 ) ) * 0.25;
183 ad2NdXi2( 0, 2 ) = ( eta * ( eta + 1.0 ) ) * 0.5;
184 ad2NdXi2( 1, 2 ) = ( xi * ( xi + 1.0 ) ) * 0.5;
185 ad2NdXi2( 2, 2 ) = ( ( 2.0 * eta + 1.0 ) * ( 2.0 * xi + 1.0 ) ) * 0.25;
187 ad2NdXi2( 0, 3 ) = ( eta * ( eta + 1.0 ) ) * 0.5;
188 ad2NdXi2( 1, 3 ) = ( xi * ( xi - 1.0 ) ) * 0.5;
189 ad2NdXi2( 2, 3 ) = ( ( 2.0 * eta + 1.0 ) * ( 2.0 * xi - 1.0 ) ) * 0.25;
191 ad2NdXi2( 0, 4 ) = -eta * ( eta - 1.0 );
192 ad2NdXi2( 1, 4 ) = 1.0 - xi2;
193 ad2NdXi2( 2, 4 ) = -xi * ( 2.0 * eta - 1.0 );
195 ad2NdXi2( 0, 5 ) = 1.0 - eta2;
196 ad2NdXi2( 1, 5 ) = -xi * ( xi + 1.0 );
197 ad2NdXi2( 2, 5 ) = -eta * ( 2.0 * xi + 1.0 );
199 ad2NdXi2( 0, 6 ) = -eta * ( eta + 1.0 );
200 ad2NdXi2( 1, 6 ) = 1.0 - xi2;
201 ad2NdXi2( 2, 6 ) = -xi * ( 2.0 * eta + 1.0 );
203 ad2NdXi2( 0, 7 ) = 1.0 - eta2;
204 ad2NdXi2( 1, 7 ) = -xi * ( xi - 1.0 );
205 ad2NdXi2( 2, 7 ) = -eta * ( 2.0 * xi - 1.0 );
207 ad2NdXi2( 0, 8 ) = 2.0 * eta2 - 2.0;
208 ad2NdXi2( 1, 8 ) = 2.0 * xi2 - 2.0;
209 ad2NdXi2( 2, 8 ) = 4.0 * eta * xi;
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
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