deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\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\}}\)
Loading...
Searching...
No Matches
fe_nothing.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2009 - 2026 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13#ifndef dealii_fe_nothing_h
14#define dealii_fe_nothing_h
15
16#include <deal.II/base/config.h>
17
18#include <deal.II/base/table.h>
20
21#include <deal.II/fe/fe.h>
22#include <deal.II/fe/fe_data.h>
24#include <deal.II/fe/mapping.h>
26
28#include <deal.II/grid/tria.h>
29
31
33
34#include <iterator>
35#include <memory>
36#include <string>
37#include <utility>
38#include <vector>
39
41
42
150template <int dim, int spacedim = dim>
151class FE_Nothing : public FiniteElement<dim, spacedim>
152{
153public:
170 FE_Nothing(const ReferenceCell<dim> &type,
171 const unsigned int n_components = 1,
172 const bool dominate = false);
173
177 FE_Nothing(const unsigned int n_components = 1, const bool dominate = false);
178
179 virtual std::unique_ptr<FiniteElement<dim, spacedim>>
180 clone() const override;
181
195 virtual std::string
196 get_name() const override;
197
198 // for documentation, see the FiniteElement base class
199 virtual UpdateFlags
200 requires_update_flags(const UpdateFlags update_flags) const override;
201
209 virtual double
210 shape_value(const unsigned int i, const Point<dim> &p) const override;
211
212 virtual void
215 const CellSimilarity::Similarity cell_similarity,
216 const Quadrature<dim> &quadrature,
217 const Mapping<dim, spacedim> &mapping,
218 const typename Mapping<dim, spacedim>::InternalDataBase &mapping_internal,
220 &mapping_data,
221 const typename FiniteElement<dim, spacedim>::InternalDataBase &fe_internal,
223 spacedim>
224 &output_data) const override;
225
226 using FiniteElement<dim, spacedim>::fill_fe_face_values;
227
228 virtual void
231 const unsigned int face_no,
232 const hp::QCollection<dim - 1> &quadrature,
233 const Mapping<dim, spacedim> &mapping,
234 const typename Mapping<dim, spacedim>::InternalDataBase &mapping_internal,
236 &mapping_data,
237 const typename FiniteElement<dim, spacedim>::InternalDataBase &fe_internal,
239 spacedim>
240 &output_data) const override;
241
242 virtual void
245 const unsigned int face_no,
246 const unsigned int sub_no,
247 const Quadrature<dim - 1> &quadrature,
248 const Mapping<dim, spacedim> &mapping,
249 const typename Mapping<dim, spacedim>::InternalDataBase &mapping_internal,
251 &mapping_data,
252 const typename FiniteElement<dim, spacedim>::InternalDataBase &fe_internal,
254 spacedim>
255 &output_data) const override;
256
266 virtual std::unique_ptr<
268 get_data(
269 const UpdateFlags update_flags,
270 const Mapping<dim, spacedim> &mapping,
271 const Quadrature<dim> &quadrature,
273 spacedim>
274 &output_data) const override;
275
288 const unsigned int codim = 0) const override final;
289
290
291
292 virtual std::vector<std::pair<unsigned int, unsigned int>>
294 const FiniteElement<dim, spacedim> &fe_other) const override;
295
296 virtual std::vector<std::pair<unsigned int, unsigned int>>
298 const FiniteElement<dim, spacedim> &fe_other) const override;
299
300 virtual std::vector<std::pair<unsigned int, unsigned int>>
302 const unsigned int face_no = 0) const override;
303
304 virtual bool
305 hp_constraints_are_implemented() const override;
306
312 virtual void
314 const FiniteElement<dim, spacedim> &source_fe,
315 FullMatrix<double> &interpolation_matrix) const override;
316
326 virtual void
328 FullMatrix<double> &interpolation_matrix,
329 const unsigned int face_no = 0) const override;
330
331
341 virtual void
343 const FiniteElement<dim, spacedim> &source_fe,
344 const unsigned int index,
345 FullMatrix<double> &interpolation_matrix,
346 const unsigned int face_no = 0) const override;
347
354 virtual std::pair<Table<2, bool>, std::vector<unsigned int>>
355 get_constant_modes() const override;
356
360 bool
361 is_dominating() const;
362
363private:
370 const bool dominate;
371};
372
373
377
378#endif
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_line_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const override
const bool dominate
Definition fe_nothing.h:370
virtual std::string get_name() const override
Definition fe_nothing.cc:69
virtual void get_subface_interpolation_matrix(const FiniteElement< dim, spacedim > &source_fe, const unsigned int index, FullMatrix< double > &interpolation_matrix, const unsigned int face_no=0) const override
virtual std::unique_ptr< FiniteElement< dim, spacedim > > clone() const override
Definition fe_nothing.cc:60
virtual void get_face_interpolation_matrix(const FiniteElement< dim, spacedim > &source_fe, FullMatrix< double > &interpolation_matrix, const unsigned int face_no=0) const override
virtual void fill_fe_subface_values(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const unsigned int sub_no, const Quadrature< dim - 1 > &quadrature, const Mapping< dim, spacedim > &mapping, const typename Mapping< dim, spacedim >::InternalDataBase &mapping_internal, const internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &mapping_data, const typename FiniteElement< dim, spacedim >::InternalDataBase &fe_internal, ::internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > &output_data) const override
virtual UpdateFlags requires_update_flags(const UpdateFlags update_flags) const override
Definition fe_nothing.cc:97
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_vertex_dof_identities(const FiniteElement< dim, spacedim > &fe_other) const override
virtual double shape_value(const unsigned int i, const Point< dim > &p) const override
virtual void fill_fe_face_values(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const hp::QCollection< dim - 1 > &quadrature, const Mapping< dim, spacedim > &mapping, const typename Mapping< dim, spacedim >::InternalDataBase &mapping_internal, const internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &mapping_data, const typename FiniteElement< dim, spacedim >::InternalDataBase &fe_internal, ::internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > &output_data) const override
virtual void get_interpolation_matrix(const FiniteElement< dim, spacedim > &source_fe, FullMatrix< double > &interpolation_matrix) const override
virtual FiniteElementDomination::Domination compare_for_domination(const FiniteElement< dim, spacedim > &fe_other, const unsigned int codim=0) const override final
virtual void fill_fe_values(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const CellSimilarity::Similarity cell_similarity, const Quadrature< dim > &quadrature, const Mapping< dim, spacedim > &mapping, const typename Mapping< dim, spacedim >::InternalDataBase &mapping_internal, const internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &mapping_data, const typename FiniteElement< dim, spacedim >::InternalDataBase &fe_internal, ::internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > &output_data) const override
bool is_dominating() const
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
virtual bool hp_constraints_are_implemented() const override
virtual std::pair< Table< 2, bool >, std::vector< unsigned int > > get_constant_modes() const override
virtual std::vector< std::pair< unsigned int, unsigned int > > hp_quad_dof_identities(const FiniteElement< dim, spacedim > &fe_other, const unsigned int face_no=0) const override
unsigned int n_components() const
Abstract base class for mapping classes.
Definition mapping.h:318
Definition point.h:111
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
UpdateFlags