Reference documentation for deal.II version 9.0.0
fe_nothing.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2009 - 2018 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE at
12 // the top level of the deal.II distribution.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_fe_nothing_h
17 #define dealii_fe_nothing_h
18 
19 #include <deal.II/base/config.h>
20 #include <deal.II/fe/fe.h>
21 
22 DEAL_II_NAMESPACE_OPEN
23 
24 
27 
79 template <int dim, int spacedim=dim>
80 class FE_Nothing : public FiniteElement<dim,spacedim>
81 {
82 public:
83 
95  FE_Nothing (const unsigned int n_components = 1,
96  const bool dominate = false);
97 
98  virtual
99  std::unique_ptr<FiniteElement<dim,spacedim> >
100  clone() const override;
101 
106  virtual
107  std::string
108  get_name() const override;
109 
110  // for documentation, see the FiniteElement base class
111  virtual
113  requires_update_flags (const UpdateFlags update_flags) const override;
114 
122  virtual
123  double
124  shape_value (const unsigned int i, const Point<dim> &p) const override;
125 
126  virtual
127  void
128  fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
129  const CellSimilarity::Similarity cell_similarity,
130  const Quadrature<dim> &quadrature,
131  const Mapping<dim,spacedim> &mapping,
132  const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
133  const ::internal::FEValuesImplementation::MappingRelatedData<dim, spacedim> &mapping_data,
134  const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_internal,
136 
137  virtual
138  void
139  fill_fe_face_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
140  const unsigned int face_no,
141  const Quadrature<dim-1> &quadrature,
142  const Mapping<dim,spacedim> &mapping,
143  const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
144  const ::internal::FEValuesImplementation::MappingRelatedData<dim, spacedim> &mapping_data,
145  const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_internal,
147 
148  virtual
149  void
150  fill_fe_subface_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
151  const unsigned int face_no,
152  const unsigned int sub_no,
153  const Quadrature<dim-1> &quadrature,
154  const Mapping<dim,spacedim> &mapping,
155  const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
156  const ::internal::FEValuesImplementation::MappingRelatedData<dim, spacedim> &mapping_data,
157  const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_internal,
159 
169  virtual
170  std::unique_ptr<typename FiniteElement<dim,spacedim>::InternalDataBase>
171  get_data (const UpdateFlags update_flags,
172  const Mapping<dim,spacedim> &mapping,
173  const Quadrature<dim> &quadrature,
175 
190  virtual
192  compare_for_face_domination (const FiniteElement<dim,spacedim> &fe_other) const override;
193 
194 
195 
196  virtual
197  std::vector<std::pair<unsigned int, unsigned int> >
198  hp_vertex_dof_identities (const FiniteElement<dim,spacedim> &fe_other) const override;
199 
200  virtual
201  std::vector<std::pair<unsigned int, unsigned int> >
202  hp_line_dof_identities (const FiniteElement<dim,spacedim> &fe_other) const override;
203 
204  virtual
205  std::vector<std::pair<unsigned int, unsigned int> >
206  hp_quad_dof_identities (const FiniteElement<dim,spacedim> &fe_other) const override;
207 
208  virtual
209  bool
210  hp_constraints_are_implemented () const override;
211 
217  virtual
218  void
220  FullMatrix<double> &interpolation_matrix) const override;
221 
231  virtual
232  void
234  FullMatrix<double> &interpolation_matrix) const override;
235 
236 
246  virtual
247  void
249  const unsigned int index,
250  FullMatrix<double> &interpolation_matrix) const override;
251 
255  bool is_dominating() const;
256 
264  virtual
265  bool operator == (const FiniteElement<dim,spacedim> &fe) const override;
266 
267 private:
268 
273  const bool dominate;
274 };
275 
276 
279 DEAL_II_NAMESPACE_CLOSE
280 
281 #endif
bool is_dominating() const
Definition: fe_nothing.cc:176
virtual double shape_value(const unsigned int i, const Point< dim > &p) const override
Definition: fe_nothing.cc:97
virtual FiniteElementDomination::Domination compare_for_face_domination(const FiniteElement< dim, spacedim > &fe_other) const override
Definition: fe_nothing.cc:208
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_line_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const override
Definition: fe_nothing.cc:244
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_vertex_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const override
Definition: fe_nothing.cc:231
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_quad_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const override
Definition: fe_nothing.cc:257
virtual void get_face_interpolation_matrix(const FiniteElement< dim, spacedim > &source_fe, FullMatrix< double > &interpolation_matrix) const override
Definition: fe_nothing.cc:300
virtual void get_interpolation_matrix(const FiniteElement< dim, spacedim > &source_fe, FullMatrix< double > &interpolation_matrix) const override
Definition: fe_nothing.cc:280
virtual UpdateFlags requires_update_flags(const UpdateFlags update_flags) const override
Definition: fe_nothing.cc:88
virtual void get_subface_interpolation_matrix(const FiniteElement< dim, spacedim > &source_fe, const unsigned int index, FullMatrix< double > &interpolation_matrix) const override
Definition: fe_nothing.cc:319
virtual std::unique_ptr< typename FiniteElement< dim, spacedim >::InternalDataBase > get_data(const UpdateFlags update_flags, const Mapping< dim, spacedim > &mapping, const Quadrature< dim > &quadrature, ::internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > &output_data) const override
Definition: fe_nothing.cc:109
UpdateFlags
virtual bool hp_constraints_are_implemented() const override
Definition: fe_nothing.cc:270
Abstract base class for mapping classes.
Definition: dof_tools.h:46
virtual std::unique_ptr< FiniteElement< dim, spacedim > > clone() const override
Definition: fe_nothing.cc:59
virtual std::string get_name() const override
Definition: fe_nothing.cc:68
virtual bool operator==(const FiniteElement< dim, spacedim > &fe) const override
Definition: fe_nothing.cc:185
unsigned int n_components() const
const bool dominate
Definition: fe_nothing.h:273
FE_Nothing(const unsigned int n_components=1, const bool dominate=false)
Definition: fe_nothing.cc:38