9#include <kernel/space/node_functional_base.hpp> 
   41        static constexpr int max_assigned_dofs = 1;
 
   43        template<
typename Function_>
 
   50        typedef typename Space_::TrafoType TrafoType;
 
   52        typedef typename TrafoEvalType::EvalTraits TrafoEvalTraits;
 
   53        typedef typename TrafoEvalTraits::DataType 
DataType;
 
   54        typedef typename TrafoEvalTraits::DomainPointType DomainPointType;
 
   57        typedef typename TrafoEvalType::template ConfigTraits<TrafoTags::img_point>::EvalDataType TrafoEvalData;
 
   59        TrafoEvalType _trafo_eval;
 
   64          _trafo_eval(space.get_trafo())
 
   71          _trafo_eval.prepare(cell_index);
 
   82          return max_assigned_dofs;
 
   85        template<
typename NodeData_, 
typename Function_>
 
   86        void operator()(NodeData_& node_data, 
const Function_& function)
 const 
   88          static_assert(std::is_base_of<Analytic::Function, Function_>::value, 
"invalid function object");
 
   89          static_assert(Function_::can_value, 
"function cannot compute values");
 
   92          typedef Analytic::EvalTraits<DataType_, Function_> FuncEvalTraits;
 
   95          typename Function_::template Evaluator<FuncEvalTraits> func_eval(function);
 
   99          TrafoEvalData trafo_data;
 
  103          node_data[0] = func_eval.value(trafo_data.img_point);
 
  116        static constexpr int max_assigned_dofs = 1;
 
  118        template<
typename Function_>
 
  125        typedef typename Space_::TrafoType TrafoType;
 
  127        typedef typename TrafoEvalType::EvalTraits TrafoEvalTraits;
 
  128        typedef typename TrafoEvalTraits::DataType 
DataType;
 
  129        typedef typename TrafoEvalTraits::DomainPointType DomainPointType;
 
  132        typedef typename TrafoEvalType::template ConfigTraits<TrafoTags::img_point>::EvalDataType TrafoEvalData;
 
  134        TrafoEvalType _trafo_eval;
 
  139          _trafo_eval(space.get_trafo())
 
  146          _trafo_eval.prepare(cell_index);
 
  151          _trafo_eval.finish();
 
  157          return max_assigned_dofs;
 
  160        template<
typename NodeData_, 
typename Function_>
 
  161        void operator()(NodeData_& node_data, 
const Function_& function)
 const 
  163          static_assert(std::is_base_of<Analytic::Function, Function_>::value, 
"invalid function object");
 
  164          static_assert(Function_::can_value, 
"function cannot compute values");
 
  167          typedef Analytic::EvalTraits<DataType_, Function_> FuncEvalTraits;
 
  170          typename Function_::template Evaluator<FuncEvalTraits> func_eval(function);
 
  173          DomainPointType 
dom_point(DataType_(0.5));
 
  174          TrafoEvalData trafo_data;
 
  178          node_data[0] = func_eval.value(trafo_data.img_point);
 
  192        static constexpr int max_assigned_dofs = 1;
 
  194        template<
typename Function_>
 
  201        typedef typename Space_::TrafoType TrafoType;
 
  203        typedef typename TrafoEvalType::EvalTraits TrafoEvalTraits;
 
  204        typedef typename TrafoEvalTraits::DataType 
DataType;
 
  205        typedef typename TrafoEvalTraits::DomainPointType DomainPointType;
 
  208        typedef typename TrafoEvalType::template ConfigTraits<TrafoTags::img_point>::EvalDataType TrafoEvalData;
 
  210        TrafoEvalType _trafo_eval;
 
  215          _trafo_eval(space.get_trafo())
 
  222          _trafo_eval.prepare(cell_index);
 
  227          _trafo_eval.finish();
 
  233          return max_assigned_dofs;
 
  236        template<
typename NodeData_, 
typename Function_>
 
  237        void operator()(NodeData_& node_data, 
const Function_& function)
 const 
  239          static_assert(std::is_base_of<Analytic::Function, Function_>::value, 
"invalid function object");
 
  240          static_assert(Function_::can_value, 
"function cannot compute values");
 
  243          typedef Analytic::EvalTraits<DataType_, Function_> FuncEvalTraits;
 
  246          typename Function_::template Evaluator<FuncEvalTraits> func_eval(function);
 
  250          for(
int i(0); i < dim_; ++i)
 
  251            dom_point[i] = Shape::ReferenceCell<Shape::Simplex<dim_>>::template centre<DataType_>(i);
 
  252          TrafoEvalData trafo_data;
 
  256          node_data[0] = func_eval.value(trafo_data.img_point);
 
Node-functional base class template.
void finish()
Releases the node-functional from the current cell.
DataType_ DataType
data type
void prepare(Index cell_index)
Prepares the node-functional for a given cell.
Null-Node-Functional class template.
int get_num_assigned_dofs() const
Returns the number of assigned dofs on the current cell.
NodeFunctionalBase< Space_, DataType_ > BaseClass
base-class typedef
void operator()(NodeData_ &node_data, const Function_ &function) const
Evaluation operator.
P2-Bubble Element Evaluator class template declaration.
std::uint64_t Index
Index data type.
@ dom_point
specifies whether the trafo should supply domain point coordinates
Simplex shape tag struct template.