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       const int ny = i - (o*(o+1)/2);
   103       const int nx = o - ny;
   105       for (
int index=0; index != nx; index++)
   107       for (
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             const int ny = i - (o*(o+1)/2);
   230             const int nx = o - ny;
   232             for (
int index=1; index < nx; index++)
   234             for (
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             const int ny = i - (o*(o+1)/2);
   300             const int nx = o - ny;
   302             for (
int index=0; index != nx; index++)
   304             for (
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             const int ny = i - (o*(o+1)/2);
   426             const int nx = o - ny;
   427             Real val = nx * (nx - 1);
   428             for (
int index=2; index < nx; index++)
   430             for (
int index=0; index != ny; index++)
   489             for (; i >= (o+1)*(o+2)/2; o++) { }
   490             const int ny = i - (o*(o+1)/2);
   491             const int nx = o - ny;
   493             for (
int index=1; index < nx; index++)
   495             for (
int index=1; index < ny; index++)
   551             for (; i >= (o+1)*(o+2)/2; o++) { }
   552             const int ny = i - (o*(o+1)/2);
   553             const int nx = o - ny;
   554             Real val = ny * (ny - 1);
   555             for (
int index=0; index != nx; index++)
   557             for (
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)