36 void monomial_nodal_soln(
const Elem * elem,
38 const std::vector<Number> & elem_soln,
39 std::vector<Number> & nodal_soln,
42 const unsigned int n_nodes = elem->n_nodes();
44 const ElemType elem_type = elem->type();
48 const Order totalorder =
static_cast<Order>(order+elem->p_level());
55 libmesh_assert_equal_to (elem_soln.size(), 1);
57 const Number val = elem_soln[0];
59 for (
unsigned int n=0; n<
n_nodes; n++)
71 FEType fe_type(totalorder,
MONOMIAL);
73 const unsigned int n_sf =
77 std::vector<Point> refspace_nodes;
79 libmesh_assert_equal_to (refspace_nodes.size(),
n_nodes);
81 for (
unsigned int n=0; n<
n_nodes; n++)
83 libmesh_assert_equal_to (elem_soln.size(), n_sf);
89 for (
unsigned int i=0; i<n_sf; i++)
90 nodal_soln[n] += elem_soln[i] *
103 unsigned int monomial_n_dofs(
const ElemType t,
const Order o)
299 const unsigned int order =
static_cast<unsigned int>(o);
317 return (order+1)*(order+2)/2;
330 return (order+1)*(order+2)*(order+3)/6;
355 const std::vector<Number> & elem_soln,
356 std::vector<Number> & nodal_soln)
357 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 0); }
362 const std::vector<Number> & elem_soln,
363 std::vector<Number> & nodal_soln)
364 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 1); }
369 const std::vector<Number> & elem_soln,
370 std::vector<Number> & nodal_soln)
371 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 2); }
376 const std::vector<Number> & elem_soln,
377 std::vector<Number> & nodal_soln)
378 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 3); }
414 #ifdef LIBMESH_ENABLE_AMR 422 #endif // #ifdef LIBMESH_ENABLE_AMR static unsigned int n_dofs(const ElemType t, const Order o)
The base class for all geometric element types.
static unsigned int n_dofs_at_node(const ElemType t, const Order o, const unsigned int n)
virtual bool shapes_need_reinit() const override
virtual bool is_hierarchic() const override
Manages the degrees of freedom (DOFs) in a simulation.
const dof_id_type n_nodes
static unsigned int n_shape_functions(const unsigned int dim, const FEType &fe_t, const ElemType t)
static Real shape(const unsigned int dim, const FEType &fe_t, const ElemType t, const unsigned int i, const Point &p)
static void get_refspace_nodes(const ElemType t, std::vector< Point > &nodes)
static unsigned int n_dofs_per_elem(const ElemType t, const Order o)
virtual FEContinuity get_continuity() const override
std::string enum_to_string(const T e)
static void compute_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
static void nodal_soln(const Elem *elem, const Order o, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)