![]() |
Reference documentation for deal.II version 9.5.1
|
#include <deal.II/non_matching/quadrature_generator.h>
Public Types | |
using | AdditionalData = AdditionalQGeneratorData |
Public Member Functions | |
QuadratureGenerator (const hp::QCollection< 1 > &quadratures1D, const AdditionalData &additional_data=AdditionalData()) | |
void | generate (const Function< dim > &level_set, const BoundingBox< dim > &box) |
const Quadrature< dim > & | get_inside_quadrature () const |
const Quadrature< dim > & | get_outside_quadrature () const |
const ImmersedSurfaceQuadrature< dim > & | get_surface_quadrature () const |
void | set_1D_quadrature (const unsigned int q_index) |
Private Attributes | |
internal::QuadratureGeneratorImplementation::QGenerator< dim, dim > | q_generator |
This class creates immersed quadrature rules over a BoundingBox,
This class creates quadrature rules for the intersections between the box and the three different regions defined by the level set function. That is, it creates quadrature rules to integrate over the following regions
When working with level set functions, the most common is to describe a domain,
Given this, we shall use the name convention that
The underlying algorithm use a 1-dimensional quadrature rule as base for creating the immersed quadrature rules. Gauss-Legendre quadrature (QGauss) is recommended. The constructor takes an hp::QCollection<1>. One can select which 1d-quadrature in the collection should be used through the set_1d_quadrature() function. The number of quadrature points in the constructed quadratures will vary depending on the level set function. More quadrature points will be created if the intersection is "bad", for example, if the zero-contour has a high curvature compared to the size of the box. However, if the number of points in the 1d quadrature is
A detailed description of the underlying algorithm can be found in "High-Order %Quadrature Methods for Implicitly Defined Surfaces and Volumes in Hyperrectangles, R. I. Saye, SIAM J. Sci. Comput., 37(2), <a href="http://www.dx.doi.org/10.1137/140966290"> doi:10.1137/140966290</a>". This implementation has some modifications compared to the algorithm description in the paper. In particular, it builds the three different types of quadratures (inside, outside and surface) simultaneously. Further, the so-called "pruning" step is not yet implemented.
Definition at line 188 of file quadrature_generator.h.
using NonMatching::QuadratureGenerator< dim >::AdditionalData = AdditionalQGeneratorData |
Definition at line 191 of file quadrature_generator.h.
NonMatching::QuadratureGenerator< dim >::QuadratureGenerator | ( | 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 1623 of file quadrature_generator.cc.
void NonMatching::QuadratureGenerator< dim >::generate | ( | const Function< dim > & | level_set, |
const BoundingBox< dim > & | box ) |
Construct immersed quadratures rules for the incoming level set function over the BoundingBox.
To get the constructed quadratures, use the functions get_inside_quadrature(), get_outside_quadrature(), get_surface_quadrature().
Definition at line 1636 of file quadrature_generator.cc.
const Quadrature< dim > & NonMatching::QuadratureGenerator< dim >::get_inside_quadrature | ( | ) | const |
Return the quadrature rule for the region
Definition at line 1668 of file quadrature_generator.cc.
const Quadrature< dim > & NonMatching::QuadratureGenerator< dim >::get_outside_quadrature | ( | ) | const |
Return the quadrature rule for the region
Definition at line 1677 of file quadrature_generator.cc.
const ImmersedSurfaceQuadrature< dim > & NonMatching::QuadratureGenerator< dim >::get_surface_quadrature | ( | ) | const |
Return the quadrature rule for the region
Definition at line 1686 of file quadrature_generator.cc.
void NonMatching::QuadratureGenerator< 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 1694 of file quadrature_generator.cc.
|
private |
QuadratureGenerator is mainly used to start up the recursive algorithm. This is the object that actually generates the quadratures.
Definition at line 261 of file quadrature_generator.h.