Reference documentation for deal.II version GIT b6bf1e606d 2022-08-11 15:25:02+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\}}\)
qprojector.h
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2005 - 2021 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.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_qprojector_h
17 #define dealii_qprojector_h
18 
19 
20 #include <deal.II/base/config.h>
21 
24 
26 
28 
30 
31 
80 template <int dim>
82 {
83 public:
88  using SubQuadrature = Quadrature<dim - 1>;
89 
95  static void
97  const SubQuadrature & quadrature,
98  const unsigned int face_no,
99  std::vector<Point<dim>> &q_points);
100 
106  static Quadrature<dim>
108  const SubQuadrature &quadrature,
109  const unsigned int face_no);
110 
120  static void
122  const SubQuadrature & quadrature,
123  const unsigned int face_no,
124  const unsigned int subface_no,
125  std::vector<Point<dim>> & q_points,
126  const RefinementCase<dim - 1> &ref_case =
128 
142  static Quadrature<dim>
144  const SubQuadrature & quadrature,
145  const unsigned int face_no,
146  const unsigned int subface_no,
147  const RefinementCase<dim - 1> &ref_case =
149 
166  static Quadrature<dim>
168  const hp::QCollection<dim - 1> &quadrature);
169 
174  static Quadrature<dim>
176  const Quadrature<dim - 1> &quadrature);
177 
191  static Quadrature<dim>
193  const SubQuadrature &quadrature);
194 
205  static Quadrature<dim>
207  const Quadrature<dim> &quadrature,
208  const unsigned int child_no);
209 
219  static Quadrature<dim>
221  const Quadrature<dim> &quadrature);
222 
227  static Quadrature<dim>
229  const Quadrature<1> &quadrature,
230  const Point<dim> & p1,
231  const Point<dim> & p2);
232 
244  {
245  public:
252 
259  static DataSetDescriptor
260  cell();
261 
272  static DataSetDescriptor
274  const unsigned int face_no,
275  const bool face_orientation,
276  const bool face_flip,
277  const bool face_rotation,
278  const unsigned int n_quadrature_points);
279 
284  static DataSetDescriptor
286  const unsigned int face_no,
287  const bool face_orientation,
288  const bool face_flip,
289  const bool face_rotation,
290  const hp::QCollection<dim - 1> &quadrature);
291 
304  static DataSetDescriptor
306  const unsigned int face_no,
307  const unsigned int subface_no,
308  const bool face_orientation,
309  const bool face_flip,
310  const bool face_rotation,
311  const unsigned int n_quadrature_points,
312  const internal::SubfaceCase<dim> ref_case =
314 
321  operator unsigned int() const;
322 
323  private:
327  const unsigned int dataset_offset;
328 
333  DataSetDescriptor(const unsigned int dataset_offset);
334  };
335 };
336 
340 // ------------------- inline and template functions ----------------
341 
342 
343 
344 template <int dim>
346  const unsigned int dataset_offset)
347  : dataset_offset(dataset_offset)
348 {}
349 
350 
351 template <int dim>
353  : dataset_offset(numbers::invalid_unsigned_int)
354 {}
355 
356 
357 
358 template <int dim>
361 {
362  return 0;
363 }
364 
365 
366 
367 template <int dim>
369 {
370  return dataset_offset;
371 }
372 
373 
374 
375 template <int dim>
378  const Quadrature<dim - 1> &quadrature)
379 {
381  hp::QCollection<dim - 1>(quadrature));
382 }
383 
384 
385 /* -------------- declaration of explicit specializations ------------- */
386 
387 #ifndef DOXYGEN
388 
389 
390 template <>
391 void
393  const Quadrature<0> &,
394  const unsigned int,
395  std::vector<Point<1>> &);
396 template <>
397 void
399  const Quadrature<1> & quadrature,
400  const unsigned int face_no,
401  std::vector<Point<2>> &q_points);
402 template <>
403 void
405  const Quadrature<2> & quadrature,
406  const unsigned int face_no,
407  std::vector<Point<3>> &q_points);
408 
409 template <>
412  const hp::QCollection<0> &quadrature);
413 
414 
415 template <>
416 void
418  const Quadrature<0> &,
419  const unsigned int,
420  const unsigned int,
421  std::vector<Point<1>> &,
422  const RefinementCase<0> &);
423 template <>
424 void
426  const Quadrature<1> & quadrature,
427  const unsigned int face_no,
428  const unsigned int subface_no,
429  std::vector<Point<2>> &q_points,
430  const RefinementCase<1> &);
431 template <>
432 void
434  const Quadrature<2> & quadrature,
435  const unsigned int face_no,
436  const unsigned int subface_no,
437  std::vector<Point<3>> & q_points,
438  const RefinementCase<2> &face_ref_case);
439 
440 template <>
443  const Quadrature<0> &quadrature);
444 
445 
446 #endif // DOXYGEN
448 
449 #endif
Definition: point.h:111
const unsigned int dataset_offset
Definition: qprojector.h:327
static DataSetDescriptor subface(const ReferenceCell reference_cell, const unsigned int face_no, const unsigned int subface_no, const bool face_orientation, const bool face_flip, const bool face_rotation, const unsigned int n_quadrature_points, const internal::SubfaceCase< dim > ref_case=internal::SubfaceCase< dim >::case_isotropic)
static DataSetDescriptor cell()
Definition: qprojector.h:360
static DataSetDescriptor face(const ReferenceCell reference_cell, const unsigned int face_no, const bool face_orientation, const bool face_flip, const bool face_rotation, const unsigned int n_quadrature_points)
Definition: qprojector.cc:1222
static Quadrature< dim > project_to_line(const ReferenceCell reference_cell, const Quadrature< 1 > &quadrature, const Point< dim > &p1, const Point< dim > &p2)
Definition: qprojector.cc:1194
static Quadrature< dim > project_to_child(const ReferenceCell reference_cell, const Quadrature< dim > &quadrature, const unsigned int child_no)
Definition: qprojector.cc:1130
static void project_to_subface(const ReferenceCell reference_cell, const SubQuadrature &quadrature, const unsigned int face_no, const unsigned int subface_no, std::vector< Point< dim >> &q_points, const RefinementCase< dim - 1 > &ref_case=RefinementCase< dim - 1 >::isotropic_refinement)
static Quadrature< dim > project_to_all_subfaces(const ReferenceCell reference_cell, const SubQuadrature &quadrature)
static void project_to_face(const ReferenceCell reference_cell, const SubQuadrature &quadrature, const unsigned int face_no, std::vector< Point< dim >> &q_points)
static Quadrature< dim > project_to_all_faces(const ReferenceCell reference_cell, const hp::QCollection< dim - 1 > &quadrature)
static Quadrature< dim > project_to_all_children(const ReferenceCell reference_cell, const Quadrature< dim > &quadrature)
Definition: qprojector.cc:1162
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:442
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:443
void reference_cell(Triangulation< dim, spacedim > &tria, const ReferenceCell &reference_cell)
static const unsigned int invalid_unsigned_int
Definition: types.h:201