deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
|
#include <deal.II/non_matching/quadrature_generator.h>
Public Types | |
using | AdditionalData = AdditionalQGeneratorData |
Public Member Functions | |
template<typename Number > | |
DiscreteQuadratureGenerator (const hp::QCollection< 1 > &quadratures1D, const DoFHandler< dim > &dof_handler, const ReadVector< Number > &level_set, const AdditionalData &additional_data=AdditionalData()) | |
void | generate (const typename Triangulation< dim >::active_cell_iterator &cell) |
void | clear_quadratures () |
void | generate (const Function< dim > &level_set, const BoundingBox< dim > &box) |
void | generate_append (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 Member Functions | |
void | generate_fe_q_iso_q1 (const BoundingBox< dim > &unit_box) |
Private Attributes | |
std::unique_ptr< internal::DiscreteQuadratureGeneratorImplementation::CellWiseFunction< dim > > | reference_space_level_set |
internal::QuadratureGeneratorImplementation::QGenerator< dim, dim > | q_generator |
This class generates the same type of immersed quadrature rules as those described in the QuadratureGenerator class. The difference is that this class handles the case when the domain is a discrete level set function, i.e., when the level set function is described as a (DoFHandler, Vector) pair. The generate()-function of this class takes a cell in real space and constructs the immersed quadrature rules in reference space over this cell. These quadrature rules can then be obtained with one of the functions: get_inside_quadrature(), get_outside_quadrature(), and get_surface_quadrature().
Internally, the quadrature generation is done by transforming the discrete level set function from real space to reference space and using the same algorithm as in the QuadratureGenerator class.
Definition at line 531 of file quadrature_generator.h.
using NonMatching::DiscreteQuadratureGenerator< dim >::AdditionalData = AdditionalQGeneratorData |
Definition at line 534 of file quadrature_generator.h.
NonMatching::DiscreteQuadratureGenerator< dim >::DiscreteQuadratureGenerator | ( | const hp::QCollection< 1 > & | quadratures1D, |
const DoFHandler< dim > & | dof_handler, | ||
const ReadVector< Number > & | level_set, | ||
const AdditionalData & | additional_data = AdditionalData() |
||
) |
Constructor, the discrete level set function is described by the incoming DoFHandler and Vector. Pointers to these are stored internally, so they must have a longer lifetime than the created this class. The hp::QCollection<1> and AdditionalData is passed to the QuadratureGenerator class.
Definition at line 2120 of file quadrature_generator.cc.
void NonMatching::DiscreteQuadratureGenerator< dim >::generate | ( | const typename Triangulation< dim >::active_cell_iterator & | cell | ) |
Construct immersed quadratures rules based on the discrete level set vector over the incoming cell.
Definition at line 2193 of file quadrature_generator.cc.
|
private |
Construct immersed quadratures for FE_Q_iso_Q1.
Definition at line 2136 of file quadrature_generator.cc.
|
inherited |
Clears the inside, outside and surface quadratures.
Definition at line 1819 of file quadrature_generator.cc.
|
inherited |
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 1828 of file quadrature_generator.cc.
|
inherited |
Same as above but does not clear quadratures and appends it to the existing quadrature instead.
Definition at line 1839 of file quadrature_generator.cc.
|
inherited |
Return the quadrature rule for the region \(\{x \in B : \psi(x) < 0 \}\) created in the previous call to generate(). Here, \(B\) is BoundingBox passed to generate().
Definition at line 1869 of file quadrature_generator.cc.
|
inherited |
Return the quadrature rule for the region \(\{x \in B : \psi(x) > 0 \}\) created in the previous call to generate(). Here, \(B\) is BoundingBox passed to generate().
Definition at line 1878 of file quadrature_generator.cc.
|
inherited |
Return the quadrature rule for the region \(\{x \in B : \psi(x) = 0 \}\) created in the previous call to generate(). Here, \(B\) is BoundingBox passed to generate().
Definition at line 1887 of file quadrature_generator.cc.
|
inherited |
Set which 1d-quadrature in the collection passed to the constructor should be used to create the immersed quadratures.
Definition at line 1895 of file quadrature_generator.cc.
|
private |
Function that describes our level set function in reference space.
Definition at line 572 of file quadrature_generator.h.
|
privateinherited |
QuadratureGenerator is mainly used to start up the recursive algorithm. This is the object that actually generates the quadratures.
Definition at line 271 of file quadrature_generator.h.