Reference documentation for deal.II version 9.4.1
|
#include <deal.II/non_matching/quadrature_generator.h>
Public Types | |
using | AdditionalData = AdditionalQGeneratorData |
Public Member Functions | |
FaceQuadratureGenerator (const hp::QCollection< 1 > &quadratures1D, const AdditionalData &additional_data=AdditionalData()) | |
void | generate (const Function< dim > &level_set, const BoundingBox< dim > &box, const unsigned int face_index) |
const Quadrature< dim - 1 > & | get_inside_quadrature () const |
const Quadrature< dim - 1 > & | get_outside_quadrature () const |
const ImmersedSurfaceQuadrature< dim - 1, dim > & | get_surface_quadrature () const |
void | set_1D_quadrature (const unsigned int q_index) |
Private Attributes | |
QuadratureGenerator< dim - 1 > | quadrature_generator |
ImmersedSurfaceQuadrature< dim - 1, dim > | surface_quadrature |
This class creates immersed quadrature rules over a face, \(F\), of a BoundingBox, when the domain is described by a level set function, \(\psi\).
In the same way as in the QuadratureGenerator class, this class generates quadrature rules to integrate over 3 different regions of the face, \(F \subset \mathbb{R}^{dim}\):
\[ N = \{x \in F : \psi(x) < 0 \}, \\ P = \{x \in F : \psi(x) > 0 \}, \\ S = \{x \in F : \psi(x) = 0 \}, \]
which are again referred to as the "inside", \(N\), "outside", \(P\), and "surface" region, \(S\). These type of quadrature rules are in general needed in immersed discontinuous Galerkin methods.
Under the hood, this class uses the QuadratureGenerator class to build these rules. This is done by restricting the dim-dimensional level set function to the face, thus creating a (dim-1)-dimensional level set function, \(\phi\). It then creates the (dim-1)-dimensional quadratures by calling QuadratureGenerator with \(\phi\). This means that what holds for the QuadratureGenerator class in general also holds for this class. In particular, if the 1D-quadrature that is used as base contains \(n\) points, the number of points will be proportional to \(n^{dim-1}\) in the in the inside/outside quadratures and to \(n^{dim-2}\) in the surface quadrature.
Definition at line 292 of file quadrature_generator.h.
using NonMatching::FaceQuadratureGenerator< dim >::AdditionalData = AdditionalQGeneratorData |
Definition at line 295 of file quadrature_generator.h.
NonMatching::FaceQuadratureGenerator< dim >::FaceQuadratureGenerator | ( | const hp::QCollection< 1 > & | quadratures1D, |
const AdditionalData & | additional_data = AdditionalData() |
||
) |
Constructor. Each Quadrature<1> in quadratures1D
can be chosen as base for generating the immersed quadrature rules.
Definition at line 1703 of file quadrature_generator.cc.
void NonMatching::FaceQuadratureGenerator< dim >::generate | ( | const Function< dim > & | level_set, |
const BoundingBox< dim > & | box, | ||
const unsigned int | face_index | ||
) |
Construct immersed quadratures rules for the incoming level set function on a given face of the BoundingBox.
To get the constructed quadratures, use the functions get_inside_quadrature(), get_outside_quadrature(), get_surface_quadrature().
Definition at line 1713 of file quadrature_generator.cc.
const Quadrature< dim - 1 > & NonMatching::FaceQuadratureGenerator< dim >::get_inside_quadrature |
Return the quadrature rule for the region \(\{x \in F : \psi(x) < 0 \}\) created in the previous call to generate(). Here, \(F\) is the face of the BoundingBox passed to generate().
Definition at line 1775 of file quadrature_generator.cc.
const Quadrature< dim - 1 > & NonMatching::FaceQuadratureGenerator< dim >::get_outside_quadrature |
Return the quadrature rule for the region \(\{x \in F : \psi(x) > 0 \}\) created in the previous call to generate(). Here, \(F\) is the face of the BoundingBox passed to generate().
Definition at line 1783 of file quadrature_generator.cc.
const ImmersedSurfaceQuadrature< dim - 1, dim > & NonMatching::FaceQuadratureGenerator< dim >::get_surface_quadrature |
Return the quadrature rule for the region \(\{x \in F : \psi(x) = 0 \}\) created in the previous call to generate(). Here, \(F\) is the face of the BoundingBox passed to generate().
Definition at line 1792 of file quadrature_generator.cc.
void NonMatching::FaceQuadratureGenerator< dim >::set_1D_quadrature | ( | const unsigned int | q_index | ) |
Set which 1D-quadrature in the collection passed to the constructor should be used to create the immersed quadratures.
Definition at line 1766 of file quadrature_generator.cc.
|
private |
Lower-dimensional quadrature generator used to build the quadratures over the face.
Definition at line 366 of file quadrature_generator.h.
|
private |
The same surface quadrature as created by the quadrature_generator, but having dim-dimensional normals.
Definition at line 372 of file quadrature_generator.h.