261 m_nelem = m_x.shape(0);
262 m_N = xt::empty<double>({m_nip, s_nne});
263 m_dNxi = xt::empty<double>({m_nip, s_nne, s_ndim});
265 for (
size_t q = 0;
q < m_nip; ++
q) {
266 m_N(
q, 0) = 0.125 * (1.0 - xi(
q, 0)) * (1.0 - xi(
q, 1)) * (1.0 - xi(
q, 2));
267 m_N(
q, 1) = 0.125 * (1.0 + xi(
q, 0)) * (1.0 - xi(
q, 1)) * (1.0 - xi(
q, 2));
268 m_N(
q, 2) = 0.125 * (1.0 + xi(
q, 0)) * (1.0 + xi(
q, 1)) * (1.0 - xi(
q, 2));
269 m_N(
q, 3) = 0.125 * (1.0 - xi(
q, 0)) * (1.0 + xi(
q, 1)) * (1.0 - xi(
q, 2));
270 m_N(
q, 4) = 0.125 * (1.0 - xi(
q, 0)) * (1.0 - xi(
q, 1)) * (1.0 + xi(
q, 2));
271 m_N(
q, 5) = 0.125 * (1.0 + xi(
q, 0)) * (1.0 - xi(
q, 1)) * (1.0 + xi(
q, 2));
272 m_N(
q, 6) = 0.125 * (1.0 + xi(
q, 0)) * (1.0 + xi(
q, 1)) * (1.0 + xi(
q, 2));
273 m_N(
q, 7) = 0.125 * (1.0 - xi(
q, 0)) * (1.0 + xi(
q, 1)) * (1.0 + xi(
q, 2));
276 for (
size_t q = 0;
q < m_nip; ++
q) {
278 m_dNxi(
q, 0, 0) = -0.125 * (1.0 - xi(
q, 1)) * (1.0 - xi(
q, 2));
279 m_dNxi(
q, 1, 0) = +0.125 * (1.0 - xi(
q, 1)) * (1.0 - xi(
q, 2));
280 m_dNxi(
q, 2, 0) = +0.125 * (1.0 + xi(
q, 1)) * (1.0 - xi(
q, 2));
281 m_dNxi(
q, 3, 0) = -0.125 * (1.0 + xi(
q, 1)) * (1.0 - xi(
q, 2));
282 m_dNxi(
q, 4, 0) = -0.125 * (1.0 - xi(
q, 1)) * (1.0 + xi(
q, 2));
283 m_dNxi(
q, 5, 0) = +0.125 * (1.0 - xi(
q, 1)) * (1.0 + xi(
q, 2));
284 m_dNxi(
q, 6, 0) = +0.125 * (1.0 + xi(
q, 1)) * (1.0 + xi(
q, 2));
285 m_dNxi(
q, 7, 0) = -0.125 * (1.0 + xi(
q, 1)) * (1.0 + xi(
q, 2));
287 m_dNxi(
q, 0, 1) = -0.125 * (1.0 - xi(
q, 0)) * (1.0 - xi(
q, 2));
288 m_dNxi(
q, 1, 1) = -0.125 * (1.0 + xi(
q, 0)) * (1.0 - xi(
q, 2));
289 m_dNxi(
q, 2, 1) = +0.125 * (1.0 + xi(
q, 0)) * (1.0 - xi(
q, 2));
290 m_dNxi(
q, 3, 1) = +0.125 * (1.0 - xi(
q, 0)) * (1.0 - xi(
q, 2));
291 m_dNxi(
q, 4, 1) = -0.125 * (1.0 - xi(
q, 0)) * (1.0 + xi(
q, 2));
292 m_dNxi(
q, 5, 1) = -0.125 * (1.0 + xi(
q, 0)) * (1.0 + xi(
q, 2));
293 m_dNxi(
q, 6, 1) = +0.125 * (1.0 + xi(
q, 0)) * (1.0 + xi(
q, 2));
294 m_dNxi(
q, 7, 1) = +0.125 * (1.0 - xi(
q, 0)) * (1.0 + xi(
q, 2));
296 m_dNxi(
q, 0, 2) = -0.125 * (1.0 - xi(
q, 0)) * (1.0 - xi(
q, 1));
297 m_dNxi(
q, 1, 2) = -0.125 * (1.0 + xi(
q, 0)) * (1.0 - xi(
q, 1));
298 m_dNxi(
q, 2, 2) = -0.125 * (1.0 + xi(
q, 0)) * (1.0 + xi(
q, 1));
299 m_dNxi(
q, 3, 2) = -0.125 * (1.0 - xi(
q, 0)) * (1.0 + xi(
q, 1));
300 m_dNxi(
q, 4, 2) = +0.125 * (1.0 - xi(
q, 0)) * (1.0 - xi(
q, 1));
301 m_dNxi(
q, 5, 2) = +0.125 * (1.0 + xi(
q, 0)) * (1.0 - xi(
q, 1));
302 m_dNxi(
q, 6, 2) = +0.125 * (1.0 + xi(
q, 0)) * (1.0 + xi(
q, 1));
303 m_dNxi(
q, 7, 2) = +0.125 * (1.0 - xi(
q, 0)) * (1.0 + xi(
q, 1));
313 m_dNx = xt::empty<double>({m_nelem, m_nip, s_nne, s_ndim});