19 #ifndef LIBMESH_FE_LAGRANGE_SHAPE_1D_H 20 #define LIBMESH_FE_LAGRANGE_SHAPE_1D_H 23 #include "libmesh/enum_order.h" 24 #include "libmesh/point.h" 35 libmesh_assert_less (i, 2);
46 libmesh_error_msg(
"Invalid shape function index i = " << i);
56 libmesh_assert_less (i, 3);
61 return .5*xi*(xi - 1.);
64 return .5*xi*(xi + 1);
70 libmesh_error_msg(
"Invalid shape function index i = " << i);
80 libmesh_assert_less (i, 4);
85 return 9./16.*(1./9.-xi*xi)*(xi-1.);
88 return -9./16.*(1./9.-xi*xi)*(xi+1.);
91 return 27./16.*(1.-xi*xi)*(1./3.-xi);
94 return 27./16.*(1.-xi*xi)*(1./3.+xi);
97 libmesh_error_msg(
"Invalid shape function index i = " << i);
105 const unsigned int i,
123 libmesh_error_msg(
"ERROR: Unsupported polynomial order = " << order);
131 const unsigned int libmesh_dbg_var(j),
135 libmesh_assert_equal_to (j, 0);
137 libmesh_assert_less (i, 2);
148 libmesh_error_msg(
"Invalid shape function index i = " << i);
155 const unsigned int libmesh_dbg_var(j),
159 libmesh_assert_equal_to (j, 0);
161 libmesh_assert_less (i, 3);
175 libmesh_error_msg(
"Invalid shape function index i = " << i);
182 const unsigned int libmesh_dbg_var(j),
186 libmesh_assert_equal_to (j, 0);
188 libmesh_assert_less (i, 4);
193 return -9./16.*(3.*xi*xi-2.*xi-1./9.);
196 return -9./16.*(-3.*xi*xi-2.*xi+1./9.);
199 return 27./16.*(3.*xi*xi-2./3.*xi-1.);
202 return 27./16.*(-3.*xi*xi-2./3.*xi+1.);
205 libmesh_error_msg(
"Invalid shape function index i = " << i);
213 const unsigned int i,
214 const unsigned int j,
229 libmesh_error_msg(
"ERROR: Unsupported polynomial order = " << order);
234 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 241 const unsigned int libmesh_dbg_var(j),
246 libmesh_assert_equal_to (j, 0);
260 libmesh_error_msg(
"Invalid shape function index i = " << i);
267 const unsigned int libmesh_dbg_var(j),
272 libmesh_assert_equal_to (j, 0);
277 return -9./16.*(6.*xi-2);
280 return -9./16.*(-6*xi-2.);
283 return 27./16.*(6*xi-2./3.);
286 return 27./16.*(-6*xi-2./3.);
289 libmesh_error_msg(
"Invalid shape function index i = " << i);
297 const unsigned int i,
298 const unsigned int j,
314 libmesh_error_msg(
"ERROR: Unsupported polynomial order = " << order);
318 #endif // LIBMESH_ENABLE_SECOND_DERIVATIVES 322 #endif // LIBMESH_FE_LAGRANGE_SHAPE_1D_H Real fe_lagrange_1D_quadratic_shape_second_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real)
Real fe_lagrange_1D_linear_shape_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real)
Real fe_lagrange_1D_cubic_shape_second_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)
Order
defines an enum for polynomial orders.
Real fe_lagrange_1D_shape_second_deriv(const Order order, const unsigned int i, const unsigned int j, const Real xi)
Real fe_lagrange_1D_quadratic_shape_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)
Real fe_lagrange_1D_quadratic_shape(const unsigned int i, const Real xi)
Real fe_lagrange_1D_cubic_shape_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)
The libMesh namespace provides an interface to certain functionality in the library.
Real fe_lagrange_1D_shape_deriv(const Order order, const unsigned int i, const unsigned int j, const Real xi)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real fe_lagrange_1D_shape(const Order order, const unsigned int i, const Real xi)
Real fe_lagrange_1D_cubic_shape(const unsigned int i, const Real xi)
Real fe_lagrange_1D_linear_shape(const unsigned int i, const Real xi)