Reference documentation for deal.II version GIT 1e9e64a91d 2022-09-28 19:20: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\}}\)
Public Types | Public Member Functions | Private Attributes | List of all members
NonMatching::DiscreteFaceQuadratureGenerator< dim > Class Template Reference

#include <deal.II/non_matching/quadrature_generator.h>

Inheritance diagram for NonMatching::DiscreteFaceQuadratureGenerator< dim >:
[legend]

Public Types

using AdditionalData = AdditionalQGeneratorData
 

Public Member Functions

template<class VectorType >
 DiscreteFaceQuadratureGenerator (const hp::QCollection< 1 > &quadratures1D, const DoFHandler< dim > &dof_handler, const VectorType &level_set, const AdditionalData &additional_data=AdditionalData())
 
void generate (const typename Triangulation< dim >::active_cell_iterator &cell, const unsigned int face_index)
 
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

std::unique_ptr< internal::DiscreteQuadratureGeneratorImplementation::CellWiseFunction< dim > > reference_space_level_set
 
QuadratureGenerator< dim - 1 > quadrature_generator
 
ImmersedSurfaceQuadrature< dim - 1, dim > surface_quadrature
 

Detailed Description

template<int dim>
class NonMatching::DiscreteFaceQuadratureGenerator< dim >

This class generates the same type of immersed quadrature rules as those described in the FaceQuadratureGenerator class. The difference is that this class handles the case when the 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 plus the respective face index and constructs the immersed quadrature rules in reference space over this face. 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 FaceQuadratureGenerator class.

Definition at line 547 of file quadrature_generator.h.

Member Typedef Documentation

◆ AdditionalData

Definition at line 550 of file quadrature_generator.h.

Constructor & Destructor Documentation

◆ DiscreteFaceQuadratureGenerator()

template<int dim>
template<class VectorType >
NonMatching::DiscreteFaceQuadratureGenerator< dim >::DiscreteFaceQuadratureGenerator ( const hp::QCollection< 1 > &  quadratures1D,
const DoFHandler< dim > &  dof_handler,
const VectorType &  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 1911 of file quadrature_generator.cc.

Member Function Documentation

◆ generate() [1/2]

template<int dim>
void NonMatching::DiscreteFaceQuadratureGenerator< dim >::generate ( const typename Triangulation< dim >::active_cell_iterator &  cell,
const unsigned int  face_index 
)

Construct immersed quadratures rules based on the discrete level set vector over the incoming face described by cell and face index.

Note
The cell needs to belong to the same triangulation as the one associated with the DoFHandler passed to the constructor.

Definition at line 1928 of file quadrature_generator.cc.

◆ generate() [2/2]

template<int dim>
void NonMatching::FaceQuadratureGenerator< dim >::generate ( const Function< dim > &  level_set,
const BoundingBox< dim > &  box,
const unsigned int  face_index 
)
inherited

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().

Note
Both value, gradient and hessian need to be implemented on the incoming function.

Definition at line 1713 of file quadrature_generator.cc.

◆ get_inside_quadrature()

template<int dim>
const Quadrature< dim - 1 > & NonMatching::FaceQuadratureGenerator< dim >::get_inside_quadrature
inherited

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.

◆ get_outside_quadrature()

template<int dim>
const Quadrature< dim - 1 > & NonMatching::FaceQuadratureGenerator< dim >::get_outside_quadrature
inherited

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.

◆ get_surface_quadrature()

template<int dim>
const ImmersedSurfaceQuadrature< dim - 1, dim > & NonMatching::FaceQuadratureGenerator< dim >::get_surface_quadrature
inherited

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().

Note
The normal at the quadrature points will be parallel to \(\nabla \psi\).

Definition at line 1792 of file quadrature_generator.cc.

◆ set_1D_quadrature()

template<int dim>
void NonMatching::FaceQuadratureGenerator< dim >::set_1D_quadrature ( const unsigned int  q_index)
inherited

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.

Member Data Documentation

◆ reference_space_level_set

template<int dim>
std::unique_ptr<internal::DiscreteQuadratureGeneratorImplementation:: CellWiseFunction<dim> > NonMatching::DiscreteFaceQuadratureGenerator< dim >::reference_space_level_set
private

Function that describes our level set function in reference space.

Definition at line 583 of file quadrature_generator.h.

◆ quadrature_generator

template<int dim>
QuadratureGenerator<dim - 1> NonMatching::FaceQuadratureGenerator< dim >::quadrature_generator
privateinherited

Lower-dimensional quadrature generator used to build the quadratures over the face.

Definition at line 366 of file quadrature_generator.h.

◆ surface_quadrature

template<int dim>
ImmersedSurfaceQuadrature<dim - 1, dim> NonMatching::FaceQuadratureGenerator< dim >::surface_quadrature
privateinherited

The same surface quadrature as created by the quadrature_generator, but having dim-dimensional normals.

Definition at line 372 of file quadrature_generator.h.


The documentation for this class was generated from the following files: