1#include "product_dofhandler.h"
9 std::shared_ptr<const lf::mesh::Mesh> mesh_p,
10 std::vector<dof_map_t> dofmaps)
11 : mesh_p_(std::move(mesh_p)), num_components_(dofmaps.size()) {
23 std::make_shared<lf::assemble::UniformFEDofHandler>(
mesh_p_,
38 for (
int codim = 0; codim <= 2; codim++) {
40 internal_dofs_[codim].resize(
mesh_p_->NumEntities(codim));
46 mesh_p_->EntityByIndex(codim, entity_idx)};
53 dofs_[codim][entity_idx].push_back(gdof_idx +
offsets_[component]);
59 internal_dofs_[codim][entity_idx].push_back(gdof_idx +
92 size_type num_dofs = internal_dofs_[codim][entity_idx].size();
118 const gdof_idx_t* begin = internal_dofs_[codim][entity_idx].data();
119 const gdof_idx_t* end = begin + internal_dofs_[codim][entity_idx].size();
137 for (
size_type comp = 0; comp < component; comp++) {
144 LF_ASSERT_MSG(dofnum <
NumDofs(),
"invalid global index (out of bounds)");
147 if (
offsets_[component + 1] > dofnum) {
151 LF_ASSERT_MSG(
false,
"invalid dof number ");
constexpr dim_t Dimension() const
Return the dimension of this reference element.
Interface class representing a topological entity in a cellular complex
virtual base::RefEl RefEl() const =0
Describes the reference element type of this entity.
Contains functionality for the implementation of DPG methods.
lf::uscalfe::gdof_idx_t gdof_idx_t
Type for indices into global matrices/vectors.
lf::uscalfe::dim_t dim_t
Tpe for (co)-dimensions.
lf::uscalfe::ldof_idx_t ldof_idx_t
Type for indices referring to entity matrices/vectors.
lf::uscalfe::size_type size_type
Type for vector length/matrix sizes.
lf::uscalfe::glb_idx_t glb_idx_t
Type for global index of entities.