21 #include "libmesh/fe.h" 
   22 #include "libmesh/elem.h" 
   23 #include "libmesh/fe_interface.h" 
   24 #include "libmesh/enum_to_string.h" 
   32 void monomial_nodal_soln(
const Elem * elem,
 
   34                          const std::vector<Number> & elem_soln,
 
   35                          std::vector<Number> &       nodal_soln,
 
   38   const unsigned int n_nodes = elem->n_nodes();
 
   40   const ElemType elem_type = elem->type();
 
   44   const Order totalorder = static_cast<Order>(order+elem->p_level());
 
   51         libmesh_assert_equal_to (elem_soln.size(), 1);
 
   53         const Number val = elem_soln[0];
 
   55         for (
unsigned int n=0; n<
n_nodes; n++)
 
   67         FEType fe_type(totalorder, 
MONOMIAL);
 
   69         const unsigned int n_sf =
 
   73         std::vector<Point> refspace_nodes;
 
   75         libmesh_assert_equal_to (refspace_nodes.size(), 
n_nodes);
 
   77         for (
unsigned int n=0; n<
n_nodes; n++)
 
   79             libmesh_assert_equal_to (elem_soln.size(), n_sf);
 
   85             for (
unsigned int i=0; i<n_sf; i++)
 
   86               nodal_soln[n] += elem_soln[i] *
 
  295         const unsigned int order = static_cast<unsigned int>(o);
 
  313             return (order+1)*(order+2)/2;
 
  326             return (order+1)*(order+2)*(order+3)/6;
 
  351                                 const std::vector<Number> & elem_soln,
 
  352                                 std::vector<Number> & nodal_soln)
 
  353 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 0); }
 
  358                                 const std::vector<Number> & elem_soln,
 
  359                                 std::vector<Number> & nodal_soln)
 
  360 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 1); }
 
  365                                 const std::vector<Number> & elem_soln,
 
  366                                 std::vector<Number> & nodal_soln)
 
  367 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 2); }
 
  372                                 const std::vector<Number> & elem_soln,
 
  373                                 std::vector<Number> & nodal_soln)
 
  374 { monomial_nodal_soln(elem, order, elem_soln, nodal_soln, 3); }
 
  410 #ifdef LIBMESH_ENABLE_AMR 
  418 #endif // #ifdef LIBMESH_ENABLE_AMR