22 #include "libmesh/fe.h"
23 #include "libmesh/elem.h"
33 const Order libmesh_dbg_var(order),
39 libmesh_assert_less (i, (static_cast<unsigned int>(order)+1)*
40 (static_cast<unsigned int>(order)+2)/2);
43 const Real eta = p(1);
92 return xi*eta*eta*eta;
95 return eta*eta*eta*eta;
99 for (; i >= (o+1)*(o+2)/2; o++) { }
100 unsigned int ny = i - (o*(o+1)/2);
101 unsigned int nx = o - ny;
103 for (
unsigned int index=0; index != nx; index++)
105 for (
unsigned int index=0; index != ny; index++)
110 #else // LIBMESH_DIM == 1
113 libmesh_not_implemented();
122 const unsigned int i,
124 const bool add_p_level)
136 const Order libmesh_dbg_var(order),
137 const unsigned int i,
138 const unsigned int j,
144 libmesh_assert_less (j, 2);
146 libmesh_assert_less (i, (static_cast<unsigned int>(order)+1)*
147 (static_cast<unsigned int>(order)+2)/2);
149 const Real xi = p(0);
150 const Real eta = p(1);
203 return 2.*xi*eta*eta;
213 for (; i >= (o+1)*(o+2)/2; o++) { }
214 unsigned int ny = i - (o*(o+1)/2);
215 unsigned int nx = o - ny;
217 for (
unsigned int index=1; index < nx; index++)
219 for (
unsigned int index=0; index != ny; index++)
276 return 3.*xi*eta*eta;
279 return 4.*eta*eta*eta;
283 for (; i >= (o+1)*(o+2)/2; o++) { }
284 unsigned int ny = i - (o*(o+1)/2);
285 unsigned int nx = o - ny;
287 for (
unsigned int index=0; index != nx; index++)
289 for (
unsigned int index=1; index < ny; index++)
296 libmesh_error_msg(
"Invalid shape function derivative j = " << j);
299 #else // LIBMESH_DIM == 1
302 libmesh_not_implemented();
311 const unsigned int i,
312 const unsigned int j,
314 const bool add_p_level)
323 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
327 const Order libmesh_dbg_var(order),
328 const unsigned int i,
329 const unsigned int j,
335 libmesh_assert_less_equal (j, 2);
337 libmesh_assert_less (i, (static_cast<unsigned int>(order)+1)*
338 (static_cast<unsigned int>(order)+2)/2);
340 const Real xi = p(0);
341 const Real eta = p(1);
394 for (; i >= (o+1)*(o+2)/2; o++) { }
395 unsigned int ny = i - (o*(o+1)/2);
396 unsigned int nx = o - ny;
397 Real val = nx * (nx - 1);
398 for (
unsigned int index=2; index < nx; index++)
400 for (
unsigned int index=0; index != ny; index++)
459 for (; i >= (o+1)*(o+2)/2; o++) { }
460 unsigned int ny = i - (o*(o+1)/2);
461 unsigned int nx = o - ny;
463 for (
unsigned int index=1; index < nx; index++)
465 for (
unsigned int index=1; index < ny; index++)
521 for (; i >= (o+1)*(o+2)/2; o++) { }
522 unsigned int ny = i - (o*(o+1)/2);
523 unsigned int nx = o - ny;
524 Real val = ny * (ny - 1);
525 for (
unsigned int index=0; index != nx; index++)
527 for (
unsigned int index=2; index < ny; index++)
534 libmesh_error_msg(
"Invalid shape function derivative j = " << j);
537 #else // LIBMESH_DIM == 1
540 libmesh_not_implemented();
549 const unsigned int i,
550 const unsigned int j,
552 const bool add_p_level)