1 #ifndef NIHU_GAUSS_FIELD_VIEW_HPP_INCLUDED
2 #define NIHU_GAUSS_FIELD_VIEW_HPP_INCLUDED
6 #include "line_1_gauss_field.hpp"
7 #include "quad_1_gauss_shape_set.hpp"
8 #include "tria_1_gauss_shape_set.hpp"
17 namespace field_option
23 namespace field_traits
31 template <
class Domain>
32 struct assign_gauss_shape;
41 struct assign_gauss_shape<tria_domain>
43 typedef tria_1_gauss_shape_set type;
47 struct assign_gauss_shape<quad_domain>
49 typedef quad_1_gauss_shape_set type;
57 template <
class ElemType,
class Dimension>
60 typedef typename internal::assign_gauss_shape<typename ElemType::domain_t>::type type;
69 template <
class ElemType,
class Dimension>
74 typedef typename field_traits::dof_vector_type<Derived>::type dofs_t;
76 typedef typename field_traits::eval_return_type<Derived>::type eval_return_t;
78 typedef typename ElemType::xi_t xi_t;
81 eval_return_t eval(xi_t
const &xi)
const
83 return nset_t::template eval_shape<0>(xi);
98 return dofs_t::LinSpaced(D, ElemType::get_id()(0)*D, ElemType::get_id()(0)*D + D - 1);
102 template <
class Elem,
class Dimension = field_dimension::_1d>
103 field_view<Elem, field_option::gauss, Dimension>
const &
104 gauss_view(element_base<Elem>
const &e, Dimension dim = Dimension())
106 return create_field_view(e, field_option::gauss(), dim);