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();