HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Public Types | Public Member Functions | Static Public Attributes | List of all members
HArDCore2D::MatrixFamily< ScalarFamilyType, N > Class Template Reference

Matrix family obtained from a scalar family. More...

#include <basis.hpp>

Public Types

typedef Eigen::Matrix< double, N, N > FunctionValue
 
typedef MatrixGradient< N > GradientValue
 
typedef VectorRd CurlValue
 
typedef Eigen::Matrix< double, N, 1 > DivergenceValue
 
typedef void RotorValue
 
typedef void HessianValue
 
typedef ScalarFamilyType::GeometricSupport GeometricSupport
 
typedef ScalarFamilyType AncestorType
 

Public Member Functions

 MatrixFamily (const ScalarFamilyType &scalar_family)
 
size_t dimension () const
 Return the dimension of the family. More...
 
FunctionValue function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x. More...
 
FunctionValue function (size_t i, size_t iqn, const boost::multi_array< double, 2 > &ancestor_value_quad) const
 Evaluate the i-th basis function at a quadrature point iqn, knowing all the values of ancestor basis functions at the quadrature nodes (provided by eval_quad) More...
 
DivergenceValue divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x. More...
 
DivergenceValue divergence (size_t i, size_t iqn, const boost::multi_array< VectorRd, 2 > &ancestor_gradient_quad) const
 Evaluate the divergence of the i-th basis function at a quadrature point iqn, knowing all the gradients of ancestor basis functions at the quadrature nodes (provided by eval_quad) More...
 
GradientValue gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th basis function at point x. More...
 
GradientValue gradient (size_t i, size_t iqn, const boost::multi_array< VectorRd, 2 > &ancestor_gradient_quad) const
 Evaluate the gradient of the i-th basis function at a quadrature point iqn, knowing all the gradients of ancestor basis functions at the quadrature nodes (provided by eval_quad) More...
 
const ScalarFamilyType & ancestor () const
 Return the ancestor (family that has been tensorized) More...
 
const size_t matrixSize () const
 Return the dimension of the matrices in the family. More...
 
const Eigen::MatrixXd transposeOperator () const
 Return the transpose operator, the rN^2 square matrix that to a given vector of coefficients on the Matrix family associate the vector of coefficients corresponding to the transpose. More...
 
const Eigen::MatrixXd symmetriseOperator () const
 Return the symmetrisation operator, the rN^2 square matrix that to a given vector of coefficients on the Matrix family associate the vector of coefficients corresponding to the symmetrised matrix. More...
 
const Eigen::MatrixXd symmetricBasis () const
 Returns the matrix that can be used, in a Family of this MatrixBasis, to create a basis of the subspace of symmetric matrices. More...
 

Static Public Attributes

constexpr static const TensorRankE tensorRank = Matrix
 
constexpr static const bool hasAncestor = true
 
static const bool hasFunction = ScalarFamilyType::hasFunction
 
static const bool hasGradient = true
 
static const bool hasDivergence = ( ScalarFamilyType::hasGradient && N==dimspace )
 
static const bool hasRotor = false
 
static const bool hasCurl = false
 
static const bool hasHessian = false
 

Detailed Description

template<typename ScalarFamilyType, size_t N>
class HArDCore2D::MatrixFamily< ScalarFamilyType, N >

Matrix family obtained from a scalar family.

The transformation into matrix is done the following way: if \((f_1,\ldots,f_r)\) is the family of scalar functions, and \((E_1,\ldots,E_{N^2})\) is the canonical basis of the space of NxN matrices, the matrix family is \((f_1E_1,f_2E_1,\ldots,f_rE_1,f_1E_2,\ldots...)\). The divergence is taken along each row, and \(E_m\) has 1 at position (mN, m/N)


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