16 #ifndef dealii__fe_system_h 17 #define dealii__fe_system_h 23 #include <deal.II/base/config.h> 24 #include <deal.II/base/thread_management.h> 25 #include <deal.II/fe/fe.h> 29 DEAL_II_NAMESPACE_OPEN
161 template <
int dim,
int spacedim=dim>
197 const unsigned int n_elements);
421 const std::vector<unsigned int> &multiplicities);
436 virtual std::string
get_name ()
const;
468 const unsigned int component)
const;
497 const unsigned int component)
const;
528 const unsigned int component)
const;
557 const unsigned int component)
const;
586 const unsigned int component)
const;
617 const unsigned int face_index)
const;
717 const unsigned int face,
718 const bool face_orientation =
true,
719 const bool face_flip =
false,
720 const bool face_rotation =
false)
const;
743 virtual std::pair<Table<2,bool>, std::vector<unsigned int> >
791 const unsigned int subface,
810 std::vector<std::pair<unsigned int, unsigned int> >
818 std::vector<std::pair<unsigned int, unsigned int> >
826 std::vector<std::pair<unsigned int, unsigned int> >
890 const ::internal::FEValues::MappingRelatedData<dim, spacedim> &mapping_data,
897 const unsigned int face_no,
901 const ::internal::FEValues::MappingRelatedData<dim, spacedim> &mapping_data,
908 const unsigned int face_no,
909 const unsigned int sub_no,
913 const ::internal::FEValues::MappingRelatedData<dim, spacedim> &mapping_data,
930 const unsigned int face_no,
931 const unsigned int sub_no,
960 std::vector<std::pair<std_cxx11::shared_ptr<const FiniteElement<dim,spacedim> >,
987 const std::vector<unsigned int> &multiplicities);
999 template <
int structdim>
1000 std::vector<std::pair<unsigned int, unsigned int> >
1058 typename std::vector<typename FiniteElement<dim,spacedim>::InternalDataBase *>
base_fe_datas;
1080 DEAL_II_NAMESPACE_CLOSE
void initialize_unit_support_points()
static const unsigned int invalid_unsigned_int
void build_interface_constraints()
void initialize(const std::vector< const FiniteElement< dim, spacedim > *> &fes, const std::vector< unsigned int > &multiplicities)
std::vector< std::pair< unsigned int, unsigned int > > hp_object_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const
std::vector< std::pair< std_cxx11::shared_ptr< const FiniteElement< dim, spacedim > >, unsigned int > > base_elements
virtual double shape_value_component(const unsigned int i, const Point< dim > &p, const unsigned int component) const
virtual bool hp_constraints_are_implemented() const
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_vertex_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const
virtual FiniteElement< dim, spacedim >::InternalDataBase * get_face_data(const UpdateFlags update_flags, const Mapping< dim, spacedim > &mapping, const Quadrature< dim-1 > &quadrature, ::internal::FEValues::FiniteElementRelatedData< dim, spacedim > &output_data) const
void initialize_quad_dof_index_permutation()
std::vector< internal::FEValues::FiniteElementRelatedData< dim, spacedim > > base_fe_output_objects
void set_fe_data(const unsigned int base_no, typename FiniteElement< dim, spacedim >::InternalDataBase *)
virtual std::pair< Table< 2, bool >, std::vector< unsigned int > > get_constant_modes() const
virtual Point< dim > unit_support_point(const unsigned int index) const
InternalData(const unsigned int n_base_elements)
virtual Tensor< 3, dim > shape_3rd_derivative(const unsigned int i, const Point< dim > &p) const
virtual UpdateFlags requires_update_flags(const UpdateFlags update_flags) const
virtual Tensor< 3, dim > shape_3rd_derivative_component(const unsigned int i, const Point< dim > &p, const unsigned int component) const
virtual std::string get_name() const
virtual Tensor< 4, dim > shape_4th_derivative_component(const unsigned int i, const Point< dim > &p, const unsigned int component) const
virtual FiniteElement< dim, spacedim > * clone() const
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_quad_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const
static const unsigned int invalid_face_number
Abstract base class for mapping classes.
virtual const FullMatrix< double > & get_prolongation_matrix(const unsigned int child, const RefinementCase< dim > &refinement_case=RefinementCase< dim >::isotropic_refinement) const
void initialize_unit_face_support_points()
virtual Tensor< 2, dim > shape_grad_grad(const unsigned int i, const Point< dim > &p) const
virtual double shape_value(const unsigned int i, const Point< dim > &p) const
virtual void get_interpolation_matrix(const FiniteElement< dim, spacedim > &source, FullMatrix< double > &matrix) const
void compute_fill(const Mapping< dim, spacedim > &mapping, const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const unsigned int sub_no, const Quadrature< dim_1 > &quadrature, const CellSimilarity::Similarity cell_similarity, const typename Mapping< dim, spacedim >::InternalDataBase &mapping_internal, const typename FiniteElement< dim, spacedim >::InternalDataBase &fe_data, const internal::FEValues::MappingRelatedData< dim, spacedim > &mapping_data, internal::FEValues::FiniteElementRelatedData< dim, spacedim > &output_data) const
virtual Tensor< 1, dim > shape_grad_component(const unsigned int i, const Point< dim > &p, const unsigned int component) const
virtual void get_subface_interpolation_matrix(const FiniteElement< dim, spacedim > &source, const unsigned int subface, FullMatrix< double > &matrix) const
virtual const FiniteElement< dim, spacedim > & base_element(const unsigned int index) const
virtual void get_face_interpolation_matrix(const FiniteElement< dim, spacedim > &source, FullMatrix< double > &matrix) const
virtual std::size_t memory_consumption() const
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_line_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const
std::vector< typename FiniteElement< dim, spacedim >::InternalDataBase * > base_fe_datas
virtual FiniteElementDomination::Domination compare_for_face_domination(const FiniteElement< dim, spacedim > &fe_other) const
FiniteElement< dim, spacedim >::InternalDataBase & get_fe_data(const unsigned int base_no) const
virtual Point< dim-1 > unit_face_support_point(const unsigned int index) const
FESystem(const FiniteElement< dim, spacedim > &fe, const unsigned int n_elements)
virtual Tensor< 4, dim > shape_4th_derivative(const unsigned int i, const Point< dim > &p) const
virtual FiniteElement< dim, spacedim >::InternalDataBase * get_subface_data(const UpdateFlags update_flags, const Mapping< dim, spacedim > &mapping, const Quadrature< dim-1 > &quadrature, ::internal::FEValues::FiniteElementRelatedData< dim, spacedim > &output_data) const
virtual FiniteElement< dim, spacedim >::InternalDataBase * get_data(const UpdateFlags update_flags, const Mapping< dim, spacedim > &mapping, const Quadrature< dim > &quadrature, ::internal::FEValues::FiniteElementRelatedData< dim, spacedim > &output_data) const
virtual unsigned int face_to_cell_index(const unsigned int face_dof_index, const unsigned int face, const bool face_orientation=true, const bool face_flip=false, const bool face_rotation=false) const
virtual bool has_support_on_face(const unsigned int shape_index, const unsigned int face_index) const
internal::FEValues::FiniteElementRelatedData< dim, spacedim > & get_fe_output_object(const unsigned int base_no) const
unsigned int n_base_elements() const
virtual const FullMatrix< double > & get_restriction_matrix(const unsigned int child, const RefinementCase< dim > &refinement_case=RefinementCase< dim >::isotropic_refinement) const
virtual Tensor< 2, dim > shape_grad_grad_component(const unsigned int i, const Point< dim > &p, const unsigned int component) const
virtual Tensor< 1, dim > shape_grad(const unsigned int i, const Point< dim > &p) const