22 internal::GenericDoFsPerObject
23 expand(
const std::vector<unsigned int> &dofs_per_object,
28 const unsigned int face_no = 0;
32 result.
object_index.resize(4, std::vector<unsigned int>(1));
36 const unsigned int dofs_per_vertex = dofs_per_object[0];
40 const unsigned int dofs_per_line = dofs_per_object[1];
44 const unsigned int dofs_per_quad = dim > 1 ? dofs_per_object[2] : 0;
48 const unsigned int dofs_per_hex = dim > 2 ? dofs_per_object[3] : 0;
53 const unsigned int first_line_index =
58 const unsigned int first_quad_index =
59 (first_line_index + cell_type.
n_lines() * dofs_per_line);
65 (dim == 2 ? 1 : (dim == 3 ? cell_type.
n_faces() : 0)) * dofs_per_quad);
82 (dim == 3 ? 1 : 0) * dofs_per_quad);
88 cell_type.
n_lines() * dofs_per_line +
89 (dim == 2 ? 1 : (dim == 3 ? cell_type.
n_faces() : 0)) * dofs_per_quad +
90 (dim == 3 ? 1 : 0) * dofs_per_hex);
98 if (std::all_of(vector.begin(), vector.end(), [&](
const auto &e) {
99 return e == vector.front();
105 return vector.size();
113 const std::vector<unsigned int> &dofs_per_object,
115 const unsigned int degree,
128 const std::vector<unsigned int> &dofs_per_object,
131 const unsigned int degree,
149 const unsigned int degree,
154 internal::number_unique_entries(data.dofs_per_object_inclusive[2]))
156 internal::number_unique_entries(data.dofs_per_object_inclusive[dim - 1]))
203 expand<1>(
const std::vector<unsigned int> &dofs_per_object,
206 expand<2>(
const std::vector<unsigned int> &dofs_per_object,
209 expand<3>(
const std::vector<unsigned int> &dofs_per_object,
const unsigned int dofs_per_quad
const unsigned int first_face_quad_index
const std::vector< unsigned int > first_index_of_quads
const std::vector< unsigned int > first_line_index_of_faces
const unsigned int components
const unsigned int degree
const std::vector< unsigned int > n_dofs_on_face
const unsigned int dofs_per_face
bool operator==(const FiniteElementData &) const
const unsigned int dofs_per_line
unsigned int n_components() const
const unsigned int first_hex_index
const unsigned int first_face_line_index
const unsigned int dofs_per_quad_max
const unsigned int first_line_index
const unsigned int dofs_per_hex
const BlockIndices block_indices_data
const unsigned int number_unique_faces
const BlockIndices & block_indices() const
const std::vector< unsigned int > first_quad_index_of_faces
const unsigned int number_of_unique_2d_subobjects
const std::vector< unsigned int > n_dofs_on_quad
const Conformity conforming_space
const unsigned int first_quad_index
const unsigned int dofs_per_vertex
const ReferenceCell< dim > reference_cell_kind
const unsigned int dofs_per_cell
FiniteElementData(const std::vector< unsigned int > &dofs_per_object, const unsigned int n_components, const unsigned int degree, const Conformity conformity=unknown, const BlockIndices &block_indices=BlockIndices())
ReferenceCell< dim > reference_cell() const
const unsigned int dofs_per_face_max
constexpr unsigned int n_vertices() const
constexpr ReferenceCell< dim - 1 > face_reference_cell(const unsigned int face_index) const
constexpr unsigned int n_faces() const
constexpr unsigned int n_lines() const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
unsigned int number_unique_entries(const std::vector< unsigned int > &vector)
template internal::GenericDoFsPerObject expand< 3 >(const std::vector< unsigned int > &dofs_per_object, const ReferenceCell< 3 > cell_type)
internal::GenericDoFsPerObject expand(const std::vector< unsigned int > &dofs_per_object, const ReferenceCell< dim > reference_cell)
template internal::GenericDoFsPerObject expand< 2 >(const std::vector< unsigned int > &dofs_per_object, const ReferenceCell< 2 > cell_type)
template internal::GenericDoFsPerObject expand< 1 >(const std::vector< unsigned int > &dofs_per_object, const ReferenceCell< 1 > cell_type)
std::vector< std::vector< unsigned int > > object_index
std::vector< std::vector< unsigned int > > first_object_index_on_face
std::vector< std::vector< unsigned int > > dofs_per_object_inclusive
std::vector< std::vector< unsigned int > > dofs_per_object_exclusive