Basix
Functions
basix::moments Namespace Reference

Functions

std::vector< Eigen::MatrixXd > create_moment_dof_transformations (const FiniteElement &moment_space)
 
std::vector< Eigen::MatrixXd > create_dot_moment_dof_transformations (const FiniteElement &moment_space)
 
std::vector< Eigen::MatrixXd > create_normal_moment_dof_transformations (const FiniteElement &moment_space)
 
std::vector< Eigen::MatrixXd > create_tangent_moment_dof_transformations (const FiniteElement &moment_space)
 
std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > make_integral_moments (const FiniteElement &moment_space, const cell::type celltype, const int value_size, const int poly_deg, const int q_deg)
 
std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > make_dot_integral_moments (const FiniteElement &moment_space, const cell::type celltype, const int value_size, const int poly_deg, const int q_deg)
 
std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > make_tangent_integral_moments (const FiniteElement &moment_space, const cell::type celltype, const int value_size, const int poly_deg, const int q_deg)
 
std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > make_normal_integral_moments (const FiniteElement &moment_space, const cell::type celltype, const int value_size, const int poly_deg, const int q_deg)
 

Detailed Description

Integral moments

These functions generate dual set matrices for integral moments against spaces on a subentity of the cell

Function Documentation

◆ create_dot_moment_dof_transformations()

std::vector< Eigen::MatrixXd > basix::moments::create_dot_moment_dof_transformations ( const FiniteElement moment_space)

Create the dof transformations for a dot integral moment.

Parameters
[in]moment_spaceThe finite element space that the integral moment is taken against
Returns
A list of dof transformations

◆ create_moment_dof_transformations()

std::vector< Eigen::MatrixXd > basix::moments::create_moment_dof_transformations ( const FiniteElement moment_space)

Create the dof transformations for an integral moment.

If the moment space is an interval, this returns one matrix representing the reversal of the interval. If the moment space is a face, this returns two matrices: one representing a rotation, the other a reflection

Parameters
[in]moment_spaceThe finite element space that the integral moment is taken against
Returns
A list of dof transformations

◆ create_normal_moment_dof_transformations()

std::vector< Eigen::MatrixXd > basix::moments::create_normal_moment_dof_transformations ( const FiniteElement moment_space)

Create the dof transformations for a normal integral moment.

Parameters
[in]moment_spaceThe finite element space that the integral moment is taken against
Returns
A list of dof transformations

◆ create_tangent_moment_dof_transformations()

std::vector< Eigen::MatrixXd > basix::moments::create_tangent_moment_dof_transformations ( const FiniteElement moment_space)

Create the dof transformations for a tangential integral moment.

Parameters
[in]moment_spaceThe finite element space that the integral moment is taken against
Returns
A list of dof transformations

◆ make_dot_integral_moments()

std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > basix::moments::make_dot_integral_moments ( const FiniteElement moment_space,
const cell::type  celltype,
const int  value_size,
const int  poly_deg,
const int  q_deg 
)

Make interpolation points and weights for dot product integral moments

These will represent the integral of each function in the moment space over each sub entity of the moment space's cell type in a cell with the given type. For example, if the input cell type is a triangle, and the moment space is a P1 space on an edge, this will perform two integrals for each of the 3 edges of the triangle.

Parameters
moment_spaceThe space to compute the integral moments against
celltypeThe cell type of the cell on which the space is being defined
value_sizeThe value size of the space being defined
poly_degThe polynomial degree of the poly set that defines the space
q_degThe quadrature degree used for the integrals

◆ make_integral_moments()

std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > basix::moments::make_integral_moments ( const FiniteElement moment_space,
const cell::type  celltype,
const int  value_size,
const int  poly_deg,
const int  q_deg 
)

Make interpolation points and weights for simple integral moments

These will represent the integral of each function in the moment space over each sub entity of the moment space's cell type in a cell with the given type. For example, if the input cell type is a triangle, and the moment space is a P1 space on an edge, this will perform two integrals for each of the 3 edges of the triangle.

Parameters
moment_spaceThe space to compute the integral moments against
celltypeThe cell type of the cell on which the space is being defined
value_sizeThe value size of the space being defined
poly_degThe polynomial degree of the poly set that defines the space
q_degThe quadrature degree used for the integrals

◆ make_normal_integral_moments()

std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > basix::moments::make_normal_integral_moments ( const FiniteElement moment_space,
const cell::type  celltype,
const int  value_size,
const int  poly_deg,
const int  q_deg 
)

Make interpolation points and weights for normal integral moments

These can only be used when the moment space is defined on facets of the cell

Parameters
moment_spaceThe space to compute the integral moments against
celltypeThe cell type of the cell on which the space is being defined
value_sizeThe value size of the space being defined
poly_degThe polynomial degree of the poly set that defines the space
q_degThe quadrature degree used for the integrals

◆ make_tangent_integral_moments()

std::pair< Eigen::ArrayXXd, Eigen::MatrixXd > basix::moments::make_tangent_integral_moments ( const FiniteElement moment_space,
const cell::type  celltype,
const int  value_size,
const int  poly_deg,
const int  q_deg 
)

Make interpolation points and weights for tangent integral moments

These can only be used when the moment space is defined on edges of the cell

Parameters
moment_spaceThe space to compute the integral moments against
celltypeThe cell type of the cell on which the space is being defined
value_sizeThe value size of the space being defined
poly_degThe polynomial degree of the poly set that defines the space
q_degThe quadrature degree used for the integrals