deal.II version GIT relicensing-2206-gaa53ff9447 2024-12-02 09:10:00+00:00
|
#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 | clear_quadratures () |
void | generate (const Function< 1 > &level_set, const BoundingBox< 1 > &box, const unsigned int face_index) |
void | generate_append (const Function< 1 > &level_set, const BoundingBox< 1 > &box, const unsigned int face_index) |
const Quadrature< 0 > & | get_inside_quadrature () const |
const Quadrature< 0 > & | get_outside_quadrature () const |
const ImmersedSurfaceQuadrature< 0, 1 > & | get_surface_quadrature () const |
void | set_1D_quadrature (const unsigned int q_index) |
Private Attributes | |
Quadrature< 0 > | inside_quadrature |
Quadrature< 0 > | outside_quadrature |
const ImmersedSurfaceQuadrature< 0, 1 > | surface_quadrature |
Specialization of the FaceQuadratureGenerator class for the 1-dimensional case.
In 1d, a face is only a point. Thus to generate the immersed quadrature rules we add a single 0-dimensional quadrature point to the inside or outside quadrature rule depending on if the level set function is positive or negative at the face. The added quadrature point will have weight equal to 1. The immersed surface quadrature over a face corresponds to integrating over a dim-1 dimensional curve. Thus, surface quadrature generated by this specialized class is always empty.
This class must be specialized in 1d, because the general FaceQuadratureGenerator<dim> class uses the QuadratureGenerator<dim-1> class internally, which does not make sense when dim-1 = 0.
Definition at line 418 of file quadrature_generator.h.
using NonMatching::FaceQuadratureGenerator< 1 >::AdditionalData = AdditionalQGeneratorData |
Definition at line 421 of file quadrature_generator.h.
NonMatching::FaceQuadratureGenerator< 1 >::FaceQuadratureGenerator | ( | const hp::QCollection< 1 > & | quadratures1D, |
const AdditionalData & | additional_data = AdditionalData() |
||
) |
Constructor. The incoming hp::QCollection is not used. But this class must have the same signature as the non-specialized class.
Definition at line 2022 of file quadrature_generator.cc.
void NonMatching::FaceQuadratureGenerator< 1 >::clear_quadratures | ( | ) |
Does nothing. Exists for compatibility reasons.
Definition at line 2033 of file quadrature_generator.cc.
void NonMatching::FaceQuadratureGenerator< 1 >::generate | ( | const Function< 1 > & | level_set, |
const BoundingBox< 1 > & | 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 2041 of file quadrature_generator.cc.
void NonMatching::FaceQuadratureGenerator< 1 >::generate_append | ( | const Function< 1 > & | level_set, |
const BoundingBox< 1 > & | box, | ||
const unsigned int | face_index | ||
) |
Same as above but does not clear quadratures and appends it to the existing quadrature instead.
Definition at line 2052 of file quadrature_generator.cc.
const Quadrature< 0 > & NonMatching::FaceQuadratureGenerator< 1 >::get_inside_quadrature | ( | ) | const |
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 2096 of file quadrature_generator.cc.
const Quadrature< 0 > & NonMatching::FaceQuadratureGenerator< 1 >::get_outside_quadrature | ( | ) | const |
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 2103 of file quadrature_generator.cc.
const ImmersedSurfaceQuadrature< 0, 1 > & NonMatching::FaceQuadratureGenerator< 1 >::get_surface_quadrature | ( | ) | const |
Return the quadrature rule for the region \(\{x \in F : \psi(x) = 0 \}\) where, \(F\) is the face of the BoundingBox passed to generate().
Definition at line 2111 of file quadrature_generator.cc.
void NonMatching::FaceQuadratureGenerator< 1 >::set_1D_quadrature | ( | const unsigned int | q_index | ) |
This function does nothing. It only exist to be compatible with FaceQuadratureGenerator<dim>.
Definition at line 2088 of file quadrature_generator.cc.
|
private |
Quadrature for the region \(\{x \in F : \psi(x) < 0 \}\). Created in the last call to generate().
Definition at line 495 of file quadrature_generator.h.
|
private |
Quadrature for the region \(\{x \in F : \psi(x) > 0 \}\). Created in the last call to generate().
Definition at line 502 of file quadrature_generator.h.
|
private |
Quadrature for the region \(\{x \in F : \psi(x) = 0 \}\). This quadrature always contains zero points in 1d.
Definition at line 509 of file quadrature_generator.h.