1 #ifndef NIHU_GAUSS_FUNCTION_SPACE_VIEW_HPP_INCLUDED
2 #define NIHU_GAUSS_FUNCTION_SPACE_VIEW_HPP_INCLUDED
4 #include "gauss_field_view.hpp"
11 namespace function_space_impl_internal
13 template <
class Mesh,
class Dimension>
16 template <
class ElemType>
17 struct count_elem_type_nodes
21 void operator()(Mesh
const&
mesh,
size_t &count)
23 typedef typename field_traits::internal::assign_gauss_shape<typename ElemType::domain_t>::type nset_t;
26 (
mesh.template end<ElemType>() -
mesh.template begin<ElemType>()) *
33 static size_t eval(Mesh
const&
mesh)
37 typename Mesh::elem_type_vector_t,
38 count_elem_type_nodes<tmp::_1>,
42 return count * traits_t::quantity_dimension;
53 template <
class Mesh,
class Dimension = field_dimension::_1d>
54 function_space_view<Mesh, field_option::gauss, Dimension>
const &
55 gauss_view(mesh_base<Mesh>
const &msh, Dimension dim = Dimension())
57 return create_function_space_view(msh.derived(), field_option::gauss(), dim);