9#include <kernel/space/base.hpp>
56 void prepare(
Index cell_index)
67 int get_max_assigned_dofs()
const;
69 int get_num_assigned_dofs()
const;
71 Index get_index(
int assign_idx)
const;
78 template<
typename Tag_,
template<
typename,
int>
class Traits_,
int cell_dim_>
79 struct UniformDofAssignHelper
81 template<
typename Mesh_>
82 static Index dof_offset(
const Mesh_& mesh)
84 return UniformDofAssignHelper<Tag_, Traits_, cell_dim_ - 1>::dof_offset(mesh)
85 + mesh.get_num_entities(cell_dim_-1) *
Index(Traits_<Tag_, cell_dim_ - 1>::count);
89 template<
typename Tag_,
template<
typename,
int>
class Traits_>
90 struct UniformDofAssignHelper<Tag_, Traits_, 0>
92 template<
typename Mesh_>
93 static Index dof_offset(
const Mesh_&)
125 template<
typename Tag_,
int dim_>
class DofTraits_,
132 typedef Space_ SpaceType;
133 typedef typename SpaceType::ShapeType ShapeType;
136 static constexpr int dofs_per_cell = DofTraits_<DofTag_, shape_dim_>::count;
145 _dof_offset(Intern::UniformDofAssignHelper<DofTag_, DofTraits_, shape_dim_>::dof_offset(space.get_mesh()))
152 return dofs_per_cell;
158 return dofs_per_cell;
Mapping of mesh entities to FE basis functions associated with them.
Index _cell_index
currently active cell index
DofAssignmentBase(const SpaceType &space)
constructor
const SpaceType & _space
space reference
Space_ SpaceType
space typedef
std::uint64_t Index
Index data type.