#include <deal.II/non_matching/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 |
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,
where
for each quadrature point. The surface integral in real space would then be approximated as
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
where
Definition at line 106 of file immersed_surface_quadrature.h.
|
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 21 of file immersed_surface_quadrature.cc.
|
inline |
Clears weights, points and normals vectors.
Definition at line 42 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 53 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 i
th surface normal.
Definition at line 69 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 80 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.