deal.II version GIT relicensing-6842-g793a97d2aa 2026-10-02 14:00: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
qprojector.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) 2005 - 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_qprojector_h
14#define dealii_qprojector_h
15
16
17#include <deal.II/base/config.h>
18
21
23
25
26#ifndef DOXYGEN
27template <int dim>
28class ReferenceCell;
29#endif
30
66template <int dim>
68{
69public:
74 using SubQuadrature = Quadrature<dim - 1>;
75
81 static Quadrature<dim>
82 project_to_face(const ReferenceCell<dim> &reference_cell,
83 const SubQuadrature &quadrature,
84 const unsigned int face_no,
85 const types::geometric_orientation combined_orientation);
86
96 static Quadrature<dim>
97 project_to_subface(const ReferenceCell<dim> &reference_cell,
98 const SubQuadrature &quadrature,
99 const unsigned int face_no,
100 const unsigned int subface_no,
101 const types::geometric_orientation combined_orientation,
102 const RefinementCase<dim - 1> &ref_case);
103
121 static Quadrature<dim>
122 project_to_all_faces(const ReferenceCell<dim> &reference_cell,
123 const hp::QCollection<dim - 1> &quadrature);
124
129 static Quadrature<dim>
130 project_to_all_faces(const ReferenceCell<dim> &reference_cell,
131 const Quadrature<dim - 1> &quadrature);
132
146 static Quadrature<dim>
147 project_to_all_subfaces(const ReferenceCell<dim> &reference_cell,
148 const SubQuadrature &quadrature);
149
162 static Quadrature<dim>
163 project_to_child(const ReferenceCell<dim> &reference_cell,
164 const Quadrature<dim> &quadrature,
165 const unsigned int child_no);
166
178 static Quadrature<dim>
179 project_to_all_children(const ReferenceCell<dim> &reference_cell,
180 const Quadrature<dim> &quadrature);
181
186 static Quadrature<dim>
187 project_to_line(const ReferenceCell<dim> &reference_cell,
188 const Quadrature<1> &quadrature,
189 const Point<dim> &p1,
190 const Point<dim> &p2);
191
204 {
205 public:
212
219 static DataSetDescriptor
220 cell();
221
230 static DataSetDescriptor
231 face(const ReferenceCell<dim> &reference_cell,
232 const unsigned int face_no,
233 const types::geometric_orientation combined_orientation,
234 const unsigned int n_quadrature_points);
235
242 static DataSetDescriptor
243 face(const ReferenceCell<dim> &reference_cell,
244 const unsigned int face_no,
245 const types::geometric_orientation combined_orientation,
246 const hp::QCollection<dim - 1> &quadrature);
247
260 static DataSetDescriptor
261 subface(const ReferenceCell<dim> &reference_cell,
262 const unsigned int face_no,
263 const unsigned int subface_no,
264 const types::geometric_orientation combined_orientation,
265 const unsigned int n_quadrature_points,
266 const internal::SubfaceCase<dim> ref_case =
268
275 operator unsigned int() const;
276
277 private:
281 const unsigned int dataset_offset;
282
287 DataSetDescriptor(const unsigned int dataset_offset);
288 };
289};
290
294// ------------------- inline and template functions ----------------
295
296
297
298template <int dim>
300 const unsigned int dataset_offset)
301 : dataset_offset(dataset_offset)
302{}
303
304
305template <int dim>
307 : dataset_offset(numbers::invalid_unsigned_int)
308{}
309
310
311
312template <int dim>
318
319
320
321template <int dim>
323{
324 return dataset_offset;
325}
326
327
328
329template <int dim>
331 const ReferenceCell<dim> &reference_cell,
332 const Quadrature<dim - 1> &quadrature)
333{
334 return project_to_all_faces(reference_cell,
335 hp::QCollection<dim - 1>(quadrature));
336}
337
339
340#endif
Definition point.h:111
Class storing the offset index into a Quadrature rule created by project_to_all_faces() or project_to...
Definition qprojector.h:204
const unsigned int dataset_offset
Definition qprojector.h:281
static DataSetDescriptor face(const ReferenceCell< dim > &reference_cell, const unsigned int face_no, const types::geometric_orientation combined_orientation, const unsigned int n_quadrature_points)
static DataSetDescriptor cell()
Definition qprojector.h:314
static DataSetDescriptor subface(const ReferenceCell< dim > &reference_cell, const unsigned int face_no, const unsigned int subface_no, const types::geometric_orientation combined_orientation, const unsigned int n_quadrature_points, const internal::SubfaceCase< dim > ref_case=internal::SubfaceCase< dim >::case_isotropic)
Class which transforms dim - 1-dimensional quadrature rules to dim-dimensional face quadratures.
Definition qprojector.h:68
static Quadrature< dim > project_to_all_faces(const ReferenceCell< dim > &reference_cell, const hp::QCollection< dim - 1 > &quadrature)
static Quadrature< dim > project_to_all_subfaces(const ReferenceCell< dim > &reference_cell, const SubQuadrature &quadrature)
static Quadrature< dim > project_to_all_children(const ReferenceCell< dim > &reference_cell, const Quadrature< dim > &quadrature)
static Quadrature< dim > project_to_line(const ReferenceCell< dim > &reference_cell, const Quadrature< 1 > &quadrature, const Point< dim > &p1, const Point< dim > &p2)
static Quadrature< dim > project_to_face(const ReferenceCell< dim > &reference_cell, const SubQuadrature &quadrature, const unsigned int face_no, const types::geometric_orientation combined_orientation)
static Quadrature< dim > project_to_subface(const ReferenceCell< dim > &reference_cell, const SubQuadrature &quadrature, const unsigned int face_no, const unsigned int subface_no, const types::geometric_orientation combined_orientation, const RefinementCase< dim - 1 > &ref_case)
static Quadrature< dim > project_to_child(const ReferenceCell< dim > &reference_cell, const Quadrature< dim > &quadrature, const unsigned int child_no)
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
std::uint8_t geometric_orientation
Definition types.h:38