44 const std::vector<std::vector<std::vector<int>>>&
entity_dofs,
46 const std::vector<int>& parent_map,
47 const std::vector<ElementDofLayout>& sub_layouts);
93 const std::vector<int>&
entity_dofs(
int dim,
int entity_index)
const;
102 const std::vector<std::vector<std::vector<int>>>&
entity_dofs_all()
const;
106 const std::vector<std::vector<std::vector<int>>>&
118 std::vector<int>
sub_view(std::span<const int> component)
const;
133 std::vector<int> _parent_map;
139 std::array<int, 4> _num_entity_dofs;
143 std::array<int, 4> _num_entity_closure_dofs;
147 std::vector<std::vector<std::vector<int>>> _entity_dofs;
150 std::vector<std::vector<std::vector<int>>> _entity_closure_dofs;
154 std::vector<ElementDofLayout> _sub_dofmaps;
The class represents the degree-of-freedom (dofs) for an element. Dofs are associated with a mesh ent...
Definition ElementDofLayout.h:31
const std::vector< int > & entity_closure_dofs(int dim, int entity_index) const
Local-local closure dofs on entity of cell.
Definition ElementDofLayout.cpp:80
ElementDofLayout copy() const
Copy the DOF layout, discarding any parent information.
Definition ElementDofLayout.cpp:45
int num_entity_dofs(int dim) const
Return the number of dofs for a given entity dimension.
Definition ElementDofLayout.cpp:63
const std::vector< int > & entity_dofs(int dim, int entity_index) const
Local-local mapping of dofs on entity of cell.
Definition ElementDofLayout.cpp:73
std::vector< int > sub_view(std::span< const int > component) const
Get view for a sub-layout, defined by the component list (as for sub_layour()), into this dofmap....
Definition ElementDofLayout.cpp:113
const std::vector< std::vector< std::vector< int > > > & entity_closure_dofs_all() const
Direct access to all entity closure dofs (dof = _entity_dofs[dim][entity][i])
Definition ElementDofLayout.cpp:92
ElementDofLayout(ElementDofLayout &&dofmap)=default
Move constructor.
bool is_view() const
True iff dof map is a view into another map.
Definition ElementDofLayout.cpp:140
int num_entity_closure_dofs(int dim) const
Return the number of closure dofs for a given entity dimension.
Definition ElementDofLayout.cpp:68
~ElementDofLayout()=default
Destructor.
ElementDofLayout & operator=(ElementDofLayout &&dofmap)=default
Move assignment.
int block_size() const
Block size.
Definition ElementDofLayout.cpp:138
ElementDofLayout(const ElementDofLayout &dofmap)=default
Copy constructor.
ElementDofLayout & operator=(const ElementDofLayout &dofmap)=default
Copy assignment.
bool operator==(const ElementDofLayout &layout) const
Equality operator.
Definition ElementDofLayout.cpp:52
const ElementDofLayout & sub_layout(std::span< const int > component) const
Get sub-dofmap given by list of components, one for each level.
Definition ElementDofLayout.cpp:100
int num_dofs() const
Return the dimension of the local finite element function space on a cell (number of dofs on element)
Definition ElementDofLayout.cpp:61
const std::vector< std::vector< std::vector< int > > > & entity_dofs_all() const
Direct access to all entity dofs (dof = _entity_dofs[dim][entity][i])
Definition ElementDofLayout.cpp:86
int num_sub_dofmaps() const
Get number of sub-dofmaps.
Definition ElementDofLayout.cpp:97
Finite element method functionality.
Definition assemble_matrix_impl.h:25
Mesh data structures and algorithms on meshes.
Definition DofMap.h:32
CellType
Cell type identifier.
Definition cell_types.h:22