22#include "libmesh/fe.h"
23#include "libmesh/elem.h"
35 const Order libmesh_dbg_var(order),
41 libmesh_assert_less_equal (i,
static_cast<unsigned int>(order));
63 for (
unsigned int index = 0; index != i; ++index)
76 const bool add_p_level)
89 const bool add_p_level)
98 const Order libmesh_dbg_var(order),
100 const unsigned int libmesh_dbg_var(j),
105 libmesh_assert_equal_to (j, 0);
107 const Real xi = p(0);
109 libmesh_assert_less_equal (i,
static_cast<unsigned int>(order));
131 for (
unsigned int index = 1; index != i; ++index)
142 const unsigned int i,
143 const unsigned int j,
145 const bool add_p_level)
150 order + add_p_level*elem->
p_level(), i, j, p);
157 const unsigned int i,
158 const unsigned int j,
160 const bool add_p_level)
168#ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
172 const Order libmesh_dbg_var(order),
173 const unsigned int i,
174 const unsigned int libmesh_dbg_var(j),
179 libmesh_assert_equal_to (j, 0);
181 const Real xi = p(0);
183 libmesh_assert_less_equal (i,
static_cast<unsigned int>(order));
202 for (
unsigned int index = 2; index != i; ++index)
203 val *= (index+1) * xi;
213 const unsigned int i,
214 const unsigned int j,
216 const bool add_p_level)
221 order + add_p_level*elem->
p_level(), i, j, p);
227 const unsigned int i,
228 const unsigned int j,
230 const bool add_p_level)
This is the base class from which all geometric element types are derived.
virtual ElemType type() const =0
unsigned int p_level() const
class FEType hides (possibly multiple) FEFamily and approximation orders, thereby enabling specialize...
OrderWrapper order
The approximation order of the element (at 0 p-refinement level).
static OutputShape shape(const ElemType t, const Order o, const unsigned int i, const Point &p)
static OutputShape shape_second_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
static OutputShape shape_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
A Point defines a location in LIBMESH_DIM dimensional Real space.
The libMesh namespace provides an interface to certain functionality in the library.
LIBMESH_DEFAULT_VECTORIZED_FE(template<>Real FE< 0, BERNSTEIN)
ElemType
Defines an enum for geometric element types.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real