17 #ifndef __deal2__fe_base_h 18 #define __deal2__fe_base_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/subscriptor.h> 23 #include <deal.II/base/point.h> 24 #include <deal.II/base/tensor.h> 25 #include <deal.II/base/table.h> 26 #include <deal.II/base/vector_slice.h> 27 #include <deal.II/base/geometry_info.h> 28 #include <deal.II/lac/full_matrix.h> 29 #include <deal.II/fe/fe_update_flags.h> 30 #include <deal.II/fe/mapping.h> 37 template<
int dim,
int spacedim>
class FESystem;
97 this_element_dominates,
98 other_element_dominates,
99 neither_element_dominates,
100 either_element_can_dominate,
209 static const unsigned int dimension = dim;
321 const unsigned int n_components,
322 const unsigned int degree,
329 unsigned int n_dofs_per_vertex ()
const;
334 unsigned int n_dofs_per_line ()
const;
339 unsigned int n_dofs_per_quad ()
const;
344 unsigned int n_dofs_per_hex ()
const;
350 unsigned int n_dofs_per_face ()
const;
356 unsigned int n_dofs_per_cell ()
const;
366 template <
int structdim>
367 unsigned int n_dofs_per_object ()
const;
373 unsigned int n_components ()
const;
379 unsigned int n_blocks ()
const;
394 bool is_primitive ()
const;
402 unsigned int tensor_degree ()
const;
424 void set_primitivity(
const bool value);
456 case this_element_dominates:
457 if ((d2 == this_element_dominates) ||
458 (d2 == either_element_can_dominate) ||
459 (d2 == no_requirements))
460 return this_element_dominates;
462 return neither_element_dominates;
464 case other_element_dominates:
465 if ((d2 == other_element_dominates) ||
466 (d2 == either_element_can_dominate) ||
467 (d2 == no_requirements))
468 return other_element_dominates;
470 return neither_element_dominates;
472 case neither_element_dominates:
473 return neither_element_dominates;
475 case either_element_can_dominate:
476 if (d2 == no_requirements)
477 return either_element_can_dominate;
481 case no_requirements:
489 return neither_element_dominates;
499 return dofs_per_vertex;
509 return dofs_per_line;
519 return dofs_per_quad;
539 return dofs_per_face;
549 return dofs_per_cell;
555 template <
int structdim>
563 return dofs_per_vertex;
565 return dofs_per_line;
567 return dofs_per_quad;
593 return cached_primitivity;
602 cached_primitivity = value;
611 return block_indices_data;
621 return block_indices_data.size();
640 return ((space & conforming_space) == space);
647 DEAL_II_NAMESPACE_CLOSE
const unsigned int first_hex_index
static const unsigned int invalid_unsigned_int
const unsigned int components
Auxiliary class aiding in the handling of block structures like in BlockVector or FESystem...
const unsigned int dofs_per_quad
const unsigned int degree
bool is_primitive() const
const unsigned int dofs_per_line
const unsigned int first_face_line_index
const BlockIndices & block_indices() const
unsigned int tensor_degree() const
unsigned int n_dofs_per_face() const
const unsigned int first_quad_index
const unsigned int dofs_per_hex
#define Assert(cond, exc)
unsigned int n_components() const
unsigned int n_dofs_per_vertex() const
const unsigned int dofs_per_cell
Domination operator&(const Domination d1, const Domination d2)
bool conforms(const Conformity) const
unsigned int n_dofs_per_object() const
const unsigned int first_face_quad_index
unsigned int n_dofs_per_line() const
const Conformity conforming_space
unsigned int n_blocks() const
const unsigned int dofs_per_face
const unsigned int first_line_index
unsigned int n_dofs_per_cell() const
const unsigned int dofs_per_vertex
void set_primitivity(const bool value)
::ExceptionBase & ExcInternalError()
unsigned int n_dofs_per_hex() const
unsigned int n_dofs_per_quad() const
BlockIndices block_indices_data