22 #include "libmesh/fe.h" 
   23 #include "libmesh/elem.h" 
   34   libmesh_error_msg(
"Nedelec elements require the element type \nbecause edge orientation is needed.");
 
   46                                       const bool add_p_level)
 
   51   const Order total_order = static_cast<Order>(order + add_p_level * elem->
p_level());
 
   62               libmesh_assert_less (i, 4);
 
   65               const Real eta = p(1);
 
   70               libmesh_assert_less_equal ( std::fabs(xi), 1.0+10*
TOLERANCE );
 
   71               libmesh_assert_less_equal ( std::fabs(eta), 1.0+10*
TOLERANCE );
 
  106                   libmesh_error_msg(
"Invalid i = " << i);
 
  114               const Real xi  = p(0);
 
  115               const Real eta = p(1);
 
  117               libmesh_assert_less (i, 3);
 
  145                   libmesh_error_msg(
"Invalid i = " << i);
 
  150             libmesh_error_msg(
"ERROR: Unsupported 2D element type!: " << elem->
type());
 
  156       libmesh_error_msg(
"ERROR: Unsupported 2D FE order!: " << total_order);
 
  158 #else // LIBMESH_DIM > 1 
  160   libmesh_not_implemented();
 
  173   libmesh_error_msg(
"Nedelec elements require the element type \nbecause edge orientation is needed.");
 
  182                                             const unsigned int i,
 
  183                                             const unsigned int j,
 
  185                                             const bool add_p_level)
 
  189   libmesh_assert_less (j, 2);
 
  191   const Order total_order = static_cast<Order>(order + add_p_level * elem->
p_level());
 
  198         switch (elem->
type())
 
  203               libmesh_assert_less (i, 4);
 
  230                         libmesh_error_msg(
"Invalid i = " << i);
 
  257                         libmesh_error_msg(
"Invalid i = " << i);
 
  262                   libmesh_error_msg(
"Invalid j = " << j);
 
  270               libmesh_assert_less (i, 3);
 
  296                   libmesh_error_msg(
"Invalid i = " << i);
 
  312                   libmesh_error_msg(
"Invalid j = " << j);
 
  317             libmesh_error_msg(
"ERROR: Unsupported 2D element type!: " << elem->
type());
 
  322       libmesh_error_msg(
"ERROR: Unsupported 2D FE order!: " << total_order);
 
  324 #else // LIBMESH_DIM > 1 
  326   libmesh_not_implemented();
 
  332 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 
  341   libmesh_error_msg(
"Nedelec elements require the element type \nbecause edge orientation is needed.");
 
  350                                                    const unsigned int libmesh_dbg_var(i),
 
  351                                                    const unsigned int libmesh_dbg_var(j),
 
  353                                                    const bool add_p_level)
 
  361   libmesh_assert_less (j, 3);
 
  363   const Order total_order = static_cast<Order>(order + add_p_level * elem->
p_level());
 
  370         switch (elem->
type())
 
  375               libmesh_assert_less (i, 4);
 
  382               libmesh_assert_less (i, 3);
 
  388             libmesh_error_msg(
"ERROR: Unsupported 2D element type!: " << elem->
type());
 
  395       libmesh_error_msg(
"ERROR: Unsupported 2D FE order!: " << total_order);
 
  399 #else // LIBMESH_DIM > 1 
  402   libmesh_not_implemented();