|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
16 #ifndef dealii_fe_collection_h
17 #define dealii_fe_collection_h
53 template <
int dim,
int spacedim = dim>
76 const unsigned int fe_index)
78 return ((fe_index + 1) < fe_collection.
size()) ? fe_index + 1 :
91 const unsigned int fe_index)
94 return (fe_index > 0) ? fe_index - 1 : fe_index;
119 template <
class... FETypes>
146 std::is_nothrow_move_constructible<
148 &&std::is_nothrow_move_constructible<std::function<
150 const
unsigned int)>>::
value) = default;
163 operator==(const
FECollection<dim, spacedim> &fe_collection) const;
170 operator!=(const
FECollection<dim, spacedim> &fe_collection) const;
191 operator[](const
unsigned int index) const;
377 std::
set<
unsigned int>
379 const
unsigned int codim = 0) const;
402 std::
set<
unsigned int>
404 const
unsigned int codim = 0) const;
440 const
unsigned int codim = 0) const;
476 const
unsigned int codim = 0) const;
503 const
unsigned int codim = 0) const;
529 const
unsigned int codim = 0) const;
546 const
unsigned int)> &next,
547 const std::function<
unsigned int(
549 const
unsigned int)> &prev);
798 "dominated by all children of a cell you are trying to
coarsen!");
808 std::vector<std::shared_ptr<const
FiniteElement<dim, spacedim>>>
815 std::function<
unsigned int(const typename
hp::
FECollection<dim, spacedim> &,
823 std::function<
unsigned int(const typename
hp::
FECollection<dim, spacedim> &,
832 template <
int dim,
int spacedim>
833 template <class... FETypes>
838 "Not all of the input arguments of this function "
839 "are derived from FiniteElement<dim,spacedim>!");
844 const auto fe_pointers = {
846 for (
const auto p : fe_pointers)
851 template <
int dim,
int spacedim>
859 template <
int dim,
int spacedim>
878 template <
int dim,
int spacedim>
883 const unsigned int n_elements =
size();
884 if (n_elements != fe_collection.
size())
887 for (
unsigned int i = 0; i < n_elements; ++i)
896 template <
int dim,
int spacedim>
901 return !(*
this == fe_collection);
906 template <
int dim,
int spacedim>
916 template <
int dim,
int spacedim>
922 unsigned int max = 0;
931 template <
int dim,
int spacedim>
937 unsigned int max = 0;
947 template <
int dim,
int spacedim>
953 unsigned int max = 0;
963 template <
int dim,
int spacedim>
969 unsigned int max = 0;
979 template <
int dim,
int spacedim>
985 unsigned int max = 0;
995 template <
int dim,
int spacedim>
1001 unsigned int max = 0;
1011 template <
int dim,
int spacedim>
1017 unsigned int max = 0;
1026 template <
int dim,
int spacedim>
1035 return fe->hp_constraints_are_implemented();
#define DeclExceptionMsg(Exception, defaulttext)
const FiniteElement< dim, spacedim > & operator[](const unsigned int index) const
unsigned int find_dominated_fe(const std::set< unsigned int > &fes, const unsigned int codim=0) const
unsigned int next_in_hierarchy(const unsigned int fe_index) const
unsigned int size() const
BlockMask block_mask(const FEValuesExtractors::Scalar &scalar) const
std::size_t memory_consumption() const
unsigned int n_components() const
unsigned int previous_in_hierarchy(const unsigned int fe_index) const
std::function< unsigned int(const typename hp::FECollection< dim, spacedim > &, const unsigned int)> hierarchy_prev
static ::ExceptionBase & ExcNoDominatedFiniteElementAmongstChildren()
#define AssertIndexRange(index, range)
bool operator!=(const FECollection< dim, spacedim > &fe_collection) const
__global__ void set(Number *val, const Number s, const size_type N)
void coarsen(Triangulation< dim, spacedim > &tria, const Vector< Number > &criteria, const double threshold)
void set_hierarchy(const std::function< unsigned int(const typename hp::FECollection< dim, spacedim > &, const unsigned int)> &next, const std::function< unsigned int(const typename hp::FECollection< dim, spacedim > &, const unsigned int)> &prev)
unsigned int find_dominating_fe_extended(const std::set< unsigned int > &fes, const unsigned int codim=0) const
#define DEAL_II_NAMESPACE_OPEN
void push_back(const FiniteElement< dim, spacedim > &new_fe)
unsigned int n_blocks() const
#define DEAL_II_DEPRECATED
static ::ExceptionBase & ExcNoFiniteElements()
std::function< unsigned int(const typename hp::FECollection< dim, spacedim > &, const unsigned int)> hierarchy_next
unsigned int max_dofs_per_vertex() const
unsigned int max_dofs_per_hex() const
bool hp_constraints_are_implemented() const
static unsigned int next_index(const typename hp::FECollection< dim, spacedim > &fe_collection, const unsigned int fe_index)
unsigned int max_dofs_per_cell() const
void set_default_hierarchy()
unsigned int max_degree() const
#define Assert(cond, exc)
std::vector< std::shared_ptr< const FiniteElement< dim, spacedim > > > finite_elements
static unsigned int previous_index(const typename hp::FECollection< dim, spacedim > &fe_collection, const unsigned int fe_index)
unsigned int find_dominated_fe_extended(const std::set< unsigned int > &fes, const unsigned int codim=0) const
#define DeclException0(Exception0)
std::set< unsigned int > find_enclosing_fes(const std::set< unsigned int > &fes, const unsigned int codim=0) const
unsigned int max_dofs_per_face() const
unsigned int max_dofs_per_quad() const
unsigned int max_dofs_per_line() const
ComponentMask component_mask(const FEValuesExtractors::Scalar &scalar) const
unsigned int find_dominating_fe(const std::set< unsigned int > &fes, const unsigned int codim=0) const
#define DEAL_II_NAMESPACE_CLOSE
bool operator==(const FECollection< dim, spacedim > &fe_collection) const
std::set< unsigned int > find_common_fes(const std::set< unsigned int > &fes, const unsigned int codim=0) const
unsigned int find_least_face_dominating_fe(const std::set< unsigned int > &fes) const
T max(const T &t, const MPI_Comm &mpi_communicator)