![]() |
deal.II version 9.7.1
|
#include <deal.II/non_matching/immersed_surface_quadrature.h>
This class defines a quadrature formula to integrate over the intersection between an oriented surface, 
The spacedim template parameter of this class is the dimension that the (spacedim-1)-dimensional surface is embedded in: 



Consider first the case dim = spacedim. We typically want to compute integrals in real space. A surface, 





![\[\int_{S\cap K} f dS =
\int_{S\cap K} f |d\bar{S}| =
\int_{\hat{S}\cap\hat{K}} f \circ F_{K} \det(J) |\left( J^{-1} \right
)^T d\hat{S}|,
\]](form_2209.png)
where 




![\[\Delta \hat{S}_q \dealcoloneq w_q \hat{n}_q \approx d\hat{S}(\hat{x}_q),
\]](form_2212.png)
for each quadrature point. The surface integral in real space would then be approximated as
![\[\int_{S\cap K} f dS \approx
\sum_{q} f \left(F_{K}(\hat{x}_{q}) \right) \det(J_q)
|\left( J_q^{-1} \right)^T \hat{n}_q| w_q.
\]](form_2213.png)
When dim = spacedim - 1, this class represents a (spacedim-2)-dimensional integral. That is, if spacedim = 3 we have a line integral immersed in a face. Let 
![$t \in [0,T]$](form_2215.png)



![\[\int_{S\cap F} f dr
= \int_{0}^T f(\bar{r}(t)) \left \|\frac{d\bar{r}}{dt} \right \| dt
= \int_{0}^T f(F_K(\hat{r}(t))) \left \| J \frac{d\hat{r}}{dt} \right \| dt
\approx \sum_{q} f \left(F_{K}(\hat{x}_{q}) \right) \|J(\hat{x}_q)
\hat{t}_q \| w_q,
\]](form_2219.png)
where 




Definition at line 106 of file immersed_surface_quadrature.h.

Public Member Functions | |
| ImmersedSurfaceQuadrature ()=default | |
| ImmersedSurfaceQuadrature (const std::vector< Point< dim > > &points, const std::vector< double > &weights, const std::vector< Tensor< 1, spacedim > > &normals) | |
| void | clear () |
| void | push_back (const Point< dim > &point, const double weight, const Tensor< 1, spacedim > &normal) |
| const Tensor< 1, spacedim > & | normal_vector (const unsigned int i) const |
| const std::vector< Tensor< 1, spacedim > > & | get_normal_vectors () const |
Protected Attributes | |
| std::vector< Tensor< 1, spacedim > > | normals |
|
default |
Default constructor to initialize the quadrature with no quadrature points.
| NonMatching::ImmersedSurfaceQuadrature< dim, spacedim >::ImmersedSurfaceQuadrature | ( | const std::vector< Point< dim > > & | points, |
| const std::vector< double > & | weights, | ||
| const std::vector< Tensor< 1, spacedim > > & | normals ) |
Construct a quadrature formula from vectors of points, weights and surface normals. The points, weights and normals should be with respect to reference space, and the normals should be normalized.
Definition at line 25 of file immersed_surface_quadrature.cc.
|
inline |
Clears weights, points and normals vectors.
Definition at line 46 of file immersed_surface_quadrature.cc.
| void NonMatching::ImmersedSurfaceQuadrature< dim, spacedim >::push_back | ( | const Point< dim > & | point, |
| const double | weight, | ||
| const Tensor< 1, spacedim > & | normal ) |
Extend the given formula by an additional quadrature point. The point, weight and normal should be with respect to reference space, and the normal should be normalized.
This function exists since immersed quadrature rules can be rather complicated to construct. Often the construction is done by partitioning the cell into regions and constructing points on each region separately. This can make it cumbersome to create the quadrature from the constructor since all quadrature points have to be known at time of creation of the object.
Definition at line 57 of file immersed_surface_quadrature.cc.
| const Tensor< 1, spacedim > & NonMatching::ImmersedSurfaceQuadrature< dim, spacedim >::normal_vector | ( | const unsigned int | i | ) | const |
Return a reference to the ith surface normal.
Definition at line 73 of file immersed_surface_quadrature.cc.
| const std::vector< Tensor< 1, spacedim > > & NonMatching::ImmersedSurfaceQuadrature< dim, spacedim >::get_normal_vectors | ( | ) | const |
Return a reference to the whole vector of normals.
Definition at line 84 of file immersed_surface_quadrature.cc.
|
protected |
Vector of surface normals at each quadrature point.
Definition at line 166 of file immersed_surface_quadrature.h.