16 #ifndef dealii_fe_collection_h 17 #define dealii_fe_collection_h 19 #include <deal.II/base/config.h> 20 #include <deal.II/fe/fe.h> 21 #include <deal.II/fe/fe_values_extractors.h> 22 #include <deal.II/fe/component_mask.h> 26 DEAL_II_NAMESPACE_OPEN
53 template <
int dim,
int spacedim=dim>
75 template <
class... FETypes>
90 FECollection (
const FECollection<dim,spacedim> &) =
default;
95 FECollection (FECollection<dim,spacedim> &&) noexcept = default;
107 operator== (const
FECollection<dim,spacedim> &fe_collection) const;
113 operator!= (const
FECollection<dim,spacedim> &fe_collection) const;
133 operator[] (const
unsigned int index) const;
138 unsigned int size () const;
465 template <
int dim,
int spacedim>
466 template <class... FETypes>
470 "Not all of the input arguments of this function " 471 "are derived from FiniteElement<dim,spacedim>!");
476 const auto fe_pointers = { &fes... };
477 for (
auto p : fe_pointers)
482 template <
int dim,
int spacedim>
491 template <
int dim,
int spacedim>
511 template <
int dim,
int spacedim>
516 const unsigned int n_elements =
size();
517 if (n_elements != fe_collection.size())
520 for (
unsigned int i=0; i<n_elements; ++i)
529 template <
int dim,
int spacedim>
534 return !(*
this == fe_collection);
539 template <
int dim,
int spacedim>
551 template <
int dim,
int spacedim>
557 unsigned int max = 0;
567 template <
int dim,
int spacedim>
573 unsigned int max = 0;
583 template <
int dim,
int spacedim>
589 unsigned int max = 0;
599 template <
int dim,
int spacedim>
605 unsigned int max = 0;
615 template <
int dim,
int spacedim>
621 unsigned int max = 0;
631 template <
int dim,
int spacedim>
637 unsigned int max = 0;
646 template <
int dim,
int spacedim>
652 bool hp_constraints =
true;
654 hp_constraints = hp_constraints &&
657 return hp_constraints;
663 DEAL_II_NAMESPACE_CLOSE
ComponentMask component_mask(const FEValuesExtractors::Scalar &scalar) const
std::vector< std::shared_ptr< const FiniteElement< dim, spacedim > > > finite_elements
std::size_t memory_consumption() const
unsigned int find_least_face_dominating_fe(const std::set< unsigned int > &fes) const
bool operator!=(const FECollection< dim, spacedim > &fe_collection) const
bool operator==(const FECollection< dim, spacedim > &fe_collection) const
unsigned int size() const
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
unsigned int n_blocks() const
BlockMask block_mask(const FEValuesExtractors::Scalar &scalar) const
unsigned int max_dofs_per_cell() const
void push_back(const FiniteElement< dim, spacedim > &new_fe)
bool hp_constraints_are_implemented() const
static ::ExceptionBase & ExcNoFiniteElements()
unsigned int max_dofs_per_hex() const
#define Assert(cond, exc)
#define DeclException0(Exception0)
unsigned int max_dofs_per_line() const
unsigned int max_dofs_per_face() const
unsigned int max_dofs_per_vertex() const
unsigned int n_components() const
const FiniteElement< dim, spacedim > & operator[](const unsigned int index) const
unsigned int max_dofs_per_quad() const