22 #include "libmesh/fe.h" 23 #include "libmesh/elem.h" 35 const Order libmesh_dbg_var(order),
41 libmesh_assert_less (i, (static_cast<unsigned int>(order)+1)*
42 (static_cast<unsigned int>(order)+2)/2);
45 const Real eta = p(1);
94 return xi*eta*eta*eta;
97 return eta*eta*eta*eta;
101 for (; i >= (o+1)*(o+2)/2; o++) { }
102 unsigned int ny = i - (o*(o+1)/2);
103 unsigned int nx = o - ny;
105 for (
unsigned int index=0; index != nx; index++)
107 for (
unsigned int index=0; index != ny; index++)
112 #else // LIBMESH_DIM == 1 115 libmesh_not_implemented();
124 const unsigned int i,
126 const bool add_p_level)
138 const unsigned int i,
140 const bool add_p_level)
151 const Order libmesh_dbg_var(order),
152 const unsigned int i,
153 const unsigned int j,
159 libmesh_assert_less (j, 2);
161 libmesh_assert_less (i, (static_cast<unsigned int>(order)+1)*
162 (static_cast<unsigned int>(order)+2)/2);
164 const Real xi = p(0);
165 const Real eta = p(1);
218 return 2.*xi*eta*eta;
228 for (; i >= (o+1)*(o+2)/2; o++) { }
229 unsigned int ny = i - (o*(o+1)/2);
230 unsigned int nx = o - ny;
232 for (
unsigned int index=1; index < nx; index++)
234 for (
unsigned int index=0; index != ny; index++)
291 return 3.*xi*eta*eta;
294 return 4.*eta*eta*eta;
298 for (; i >= (o+1)*(o+2)/2; o++) { }
299 unsigned int ny = i - (o*(o+1)/2);
300 unsigned int nx = o - ny;
302 for (
unsigned int index=0; index != nx; index++)
304 for (
unsigned int index=1; index < ny; index++)
311 libmesh_error_msg(
"Invalid shape function derivative j = " << j);
314 #else // LIBMESH_DIM == 1 317 libmesh_not_implemented();
326 const unsigned int i,
327 const unsigned int j,
329 const bool add_p_level)
342 const unsigned int i,
343 const unsigned int j,
345 const bool add_p_level)
353 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 357 const Order libmesh_dbg_var(order),
358 const unsigned int i,
359 const unsigned int j,
365 libmesh_assert_less_equal (j, 2);
367 libmesh_assert_less (i, (static_cast<unsigned int>(order)+1)*
368 (static_cast<unsigned int>(order)+2)/2);
370 const Real xi = p(0);
371 const Real eta = p(1);
424 for (; i >= (o+1)*(o+2)/2; o++) { }
425 unsigned int ny = i - (o*(o+1)/2);
426 unsigned int nx = o - ny;
427 Real val = nx * (nx - 1);
428 for (
unsigned int index=2; index < nx; index++)
430 for (
unsigned int index=0; index != ny; index++)
489 for (; i >= (o+1)*(o+2)/2; o++) { }
490 unsigned int ny = i - (o*(o+1)/2);
491 unsigned int nx = o - ny;
493 for (
unsigned int index=1; index < nx; index++)
495 for (
unsigned int index=1; index < ny; index++)
551 for (; i >= (o+1)*(o+2)/2; o++) { }
552 unsigned int ny = i - (o*(o+1)/2);
553 unsigned int nx = o - ny;
554 Real val = ny * (ny - 1);
555 for (
unsigned int index=0; index != nx; index++)
557 for (
unsigned int index=2; index < ny; index++)
564 libmesh_error_msg(
"Invalid shape function derivative j = " << j);
567 #else // LIBMESH_DIM == 1 570 libmesh_not_implemented();
579 const unsigned int i,
580 const unsigned int j,
582 const bool add_p_level)
594 const unsigned int i,
595 const unsigned int j,
597 const bool add_p_level)
class FEType hides (possibly multiple) FEFamily and approximation orders, thereby enabling specialize...
ElemType
Defines an enum for geometric element types.
Order
defines an enum for polynomial orders.
static OutputShape shape(const ElemType t, const Order o, const unsigned int i, const Point &p)
This is the base class from which all geometric element types are derived.
static OutputShape shape_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
unsigned int p_level() const
OrderWrapper order
The approximation order of the element.
The libMesh namespace provides an interface to certain functionality in the library.
LIBMESH_DEFAULT_VECTORIZED_FE(template<>Real FE< 0, BERNSTEIN)
void libmesh_ignore(const Args &...)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual ElemType type() const =0
A Point defines a location in LIBMESH_DIM dimensional Real space.
static OutputShape shape_second_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)