HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Enumerator | Functions | Variables
Basis

Classes and functions for polynomial basis creation and manipulation. More...

Namespaces

namespace  HArDCore3D::detail
 

Classes

struct  HArDCore3D::MonomialPowers< GeometricSupport >
 Compute vectors listing the powers of monomial basis functions (for a cell or face, only specializations are relevant) up to a certain degree. More...
 
struct  HArDCore3D::MonomialPowers< Cell >
 
struct  HArDCore3D::MonomialPowers< Face >
 
class  HArDCore3D::MonomialScalarBasisCell
 Scalar monomial basis on a cell. More...
 
class  HArDCore3D::MonomialScalarBasisFace
 Scalar monomial basis on a face. More...
 
class  HArDCore3D::MonomialScalarBasisEdge
 Scalar monomial basis on an edge. More...
 
class  HArDCore3D::Family< BasisType >
 Family of functions expressed as linear combination of the functions of a given basis. More...
 
class  HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >
 Vector family obtained by tensorization of a scalar family. More...
 
class  HArDCore3D::MatrixFamily< ScalarFamilyType, N >
 Matrix family obtained from a scalar family. More...
 
class  HArDCore3D::TangentFamily< ScalarFamilyType >
 Vector family for polynomial functions that are tangent to a certain place (determined by the generators) More...
 
class  HArDCore3D::ShiftedBasis< BasisType >
 Generate a basis where the function indices are shifted. More...
 
class  HArDCore3D::RestrictedBasis< BasisType >
 Generate a basis restricted to the first "dimension" functions. More...
 
class  HArDCore3D::GradientBasis< BasisType >
 Basis for the space of gradients of polynomials. More...
 
class  HArDCore3D::CurlBasis< BasisType >
 Basis for the space of curls of polynomials. More...
 
class  HArDCore3D::DivergenceBasis< BasisType >
 Basis (or rather family) of divergence of an existing basis. More...
 
class  HArDCore3D::RolyComplBasisCell
 Basis for the complement R^{c,k}(T) in P^k(T)^3 of the range of curl. More...
 
class  HArDCore3D::GolyComplBasisCell
 Basis for the complement G^{c,k}(T) in P^k(T)^3 of the range of grad. More...
 
class  HArDCore3D::RolyComplBasisFace
 Basis for the complement R^{c,k}(F) in P^k(F)^2 of the range of the vectorial rotational on a face. More...
 
class  HArDCore3D::GolyComplBasisFace
 Basis for the complement G^{c,k}(F) in P^k(F)^2 of the range of the gradient on a face. More...
 
struct  HArDCore3D::detail::basis_evaluation_traits< BasisType, BasisFunction >
 Basis evaluation traits. Only specialization of 'BasisFunction' (=Function, Gradient, Curl or Divergence) are relevant, and determines what kind of value we want to evaluate. More...
 
struct  HArDCore3D::detail::basis_evaluation_traits< BasisType, Function >
 
struct  HArDCore3D::detail::basis_evaluation_traits< BasisType, Gradient >
 
struct  HArDCore3D::detail::basis_evaluation_traits< BasisType, Curl >
 
struct  HArDCore3D::detail::basis_evaluation_traits< BasisType, Divergence >
 
struct  HArDCore3D::detail::basis_evaluation_traits< BasisType, Hessian >
 
struct  HArDCore3D::detail::basis_evaluation_traits< BasisType, CurlCurl >
 
struct  HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Function >
 
struct  HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Gradient >
 
struct  HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Curl >
 
struct  HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Divergence >
 
struct  HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, CurlCurl >
 
struct  HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Function >
 
struct  HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Divergence >
 
struct  HArDCore3D::evaluate_quad< BasisFunction >
 Evaluate a basis at quadrature nodes. 'BasisFunction' (=Function, Gradient, Curl, Divergence or Hessian) determines what kind of value we want to evaluate. More...
 
struct  HArDCore3D::DecomposePoly< BasisType >
 Structure to decompose a set of polynomials on a basis on a face or a cell. More...
 

Typedefs

typedef Eigen::Matrix3d HArDCore3D::MatrixRd
 
template<typename T >
using HArDCore3D::FType = std::function< T(const VectorRd &)>
 type for function of point. T is the return type of the function
 
template<typename T >
using HArDCore3D::CellFType = std::function< T(const VectorRd &, const Cell *)>
 type for function of point. T is the return type of the function
 
template<typename T >
using HArDCore3D::BasisQuad = boost::multi_array< T, 2 >
 type for bases evaluated on quadrature nodes
 
typedef double HArDCore3D::MonomialScalarBasisCell::FunctionValue
 
typedef VectorRd HArDCore3D::MonomialScalarBasisCell::GradientValue
 
typedef VectorRd HArDCore3D::MonomialScalarBasisCell::CurlValue
 
typedef double HArDCore3D::MonomialScalarBasisCell::DivergenceValue
 
typedef MatrixRd HArDCore3D::MonomialScalarBasisCell::HessianValue
 
typedef Cell HArDCore3D::MonomialScalarBasisCell::GeometricSupport
 
typedef double HArDCore3D::MonomialScalarBasisFace::FunctionValue
 
typedef VectorRd HArDCore3D::MonomialScalarBasisFace::GradientValue
 
typedef VectorRd HArDCore3D::MonomialScalarBasisFace::CurlValue
 
typedef double HArDCore3D::MonomialScalarBasisFace::DivergenceValue
 
typedef MatrixRd HArDCore3D::MonomialScalarBasisFace::HessianValue
 
typedef Face HArDCore3D::MonomialScalarBasisFace::GeometricSupport
 
typedef Eigen::Matrix< double, 2, dimspaceHArDCore3D::MonomialScalarBasisFace::JacobianType
 
typedef double HArDCore3D::MonomialScalarBasisEdge::FunctionValue
 
typedef VectorRd HArDCore3D::MonomialScalarBasisEdge::GradientValue
 
typedef VectorRd HArDCore3D::MonomialScalarBasisEdge::CurlValue
 
typedef double HArDCore3D::MonomialScalarBasisEdge::DivergenceValue
 
typedef double HArDCore3D::MonomialScalarBasisEdge::HessianValue
 
typedef Edge HArDCore3D::MonomialScalarBasisEdge::GeometricSupport
 
typedef BasisType::FunctionValue HArDCore3D::Family< BasisType >::FunctionValue
 
typedef BasisType::GradientValue HArDCore3D::Family< BasisType >::GradientValue
 
typedef BasisType::CurlValue HArDCore3D::Family< BasisType >::CurlValue
 
typedef BasisType::DivergenceValue HArDCore3D::Family< BasisType >::DivergenceValue
 
typedef BasisType::HessianValue HArDCore3D::Family< BasisType >::HessianValue
 
typedef BasisType::GeometricSupport HArDCore3D::Family< BasisType >::GeometricSupport
 
typedef BasisType HArDCore3D::Family< BasisType >::AncestorType
 
typedef Eigen::Matrix< double, N, 1 > HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::FunctionValue
 
typedef Eigen::Matrix< double, N, dimspaceHArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::GradientValue
 
typedef VectorRd HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::CurlValue
 
typedef double HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::DivergenceValue
 
typedef void HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::HessianValue
 
typedef ScalarFamilyType::GeometricSupport HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::GeometricSupport
 
typedef ScalarFamilyType HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::AncestorType
 
typedef Eigen::Matrix< double, N, NHArDCore3D::MatrixFamily< ScalarFamilyType, N >::FunctionValue
 
typedef void HArDCore3D::MatrixFamily< ScalarFamilyType, N >::GradientValue
 
typedef void HArDCore3D::MatrixFamily< ScalarFamilyType, N >::CurlValue
 
typedef Eigen::Matrix< double, N, 1 > HArDCore3D::MatrixFamily< ScalarFamilyType, N >::DivergenceValue
 
typedef void HArDCore3D::MatrixFamily< ScalarFamilyType, N >::HessianValue
 
typedef ScalarFamilyType::GeometricSupport HArDCore3D::MatrixFamily< ScalarFamilyType, N >::GeometricSupport
 
typedef ScalarFamilyType HArDCore3D::MatrixFamily< ScalarFamilyType, N >::AncestorType
 
typedef VectorRd HArDCore3D::TangentFamily< ScalarFamilyType >::FunctionValue
 
typedef VectorRd HArDCore3D::TangentFamily< ScalarFamilyType >::GradientValue
 
typedef VectorRd HArDCore3D::TangentFamily< ScalarFamilyType >::CurlValue
 
typedef double HArDCore3D::TangentFamily< ScalarFamilyType >::DivergenceValue
 
typedef Eigen::Matrix2d HArDCore3D::TangentFamily< ScalarFamilyType >::HessianValue
 
typedef Face HArDCore3D::TangentFamily< ScalarFamilyType >::GeometricSupport
 
typedef ScalarFamilyType HArDCore3D::TangentFamily< ScalarFamilyType >::AncestorType
 
typedef BasisType::FunctionValue HArDCore3D::ShiftedBasis< BasisType >::FunctionValue
 
typedef BasisType::GradientValue HArDCore3D::ShiftedBasis< BasisType >::GradientValue
 
typedef BasisType::CurlValue HArDCore3D::ShiftedBasis< BasisType >::CurlValue
 
typedef BasisType::DivergenceValue HArDCore3D::ShiftedBasis< BasisType >::DivergenceValue
 
typedef BasisType::HessianValue HArDCore3D::ShiftedBasis< BasisType >::HessianValue
 
typedef BasisType::GeometricSupport HArDCore3D::ShiftedBasis< BasisType >::GeometricSupport
 
typedef BasisType HArDCore3D::ShiftedBasis< BasisType >::AncestorType
 
typedef BasisType::FunctionValue HArDCore3D::RestrictedBasis< BasisType >::FunctionValue
 
typedef BasisType::GradientValue HArDCore3D::RestrictedBasis< BasisType >::GradientValue
 
typedef BasisType::CurlValue HArDCore3D::RestrictedBasis< BasisType >::CurlValue
 
typedef BasisType::DivergenceValue HArDCore3D::RestrictedBasis< BasisType >::DivergenceValue
 
typedef BasisType::HessianValue HArDCore3D::RestrictedBasis< BasisType >::HessianValue
 
typedef BasisType::GeometricSupport HArDCore3D::RestrictedBasis< BasisType >::GeometricSupport
 
typedef BasisType HArDCore3D::RestrictedBasis< BasisType >::AncestorType
 
typedef BasisType::GradientValue HArDCore3D::GradientBasis< BasisType >::FunctionValue
 
typedef void HArDCore3D::GradientBasis< BasisType >::GradientValue
 
typedef void HArDCore3D::GradientBasis< BasisType >::CurlValue
 
typedef void HArDCore3D::GradientBasis< BasisType >::DivergenceValue
 
typedef void HArDCore3D::GradientBasis< BasisType >::HessianValue
 
typedef BasisType::GeometricSupport HArDCore3D::GradientBasis< BasisType >::GeometricSupport
 
typedef BasisType HArDCore3D::GradientBasis< BasisType >::AncestorType
 
typedef VectorRd HArDCore3D::CurlBasis< BasisType >::FunctionValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::CurlBasis< BasisType >::GradientValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::CurlBasis< BasisType >::CurlValue
 
typedef double HArDCore3D::CurlBasis< BasisType >::DivergenceValue
 
typedef Eigen::Matrix< double, dimspace, dimspace *dimspaceHArDCore3D::CurlBasis< BasisType >::HessianValue
 
typedef BasisType::GeometricSupport HArDCore3D::CurlBasis< BasisType >::GeometricSupport
 
typedef BasisType HArDCore3D::CurlBasis< BasisType >::AncestorType
 
typedef BasisType::DivergenceValue HArDCore3D::DivergenceBasis< BasisType >::FunctionValue
 
typedef void HArDCore3D::DivergenceBasis< BasisType >::GradientValue
 
typedef void HArDCore3D::DivergenceBasis< BasisType >::CurlValue
 
typedef void HArDCore3D::DivergenceBasis< BasisType >::DivergenceValue
 
typedef void HArDCore3D::DivergenceBasis< BasisType >::HessianValue
 
typedef BasisType::GeometricSupport HArDCore3D::DivergenceBasis< BasisType >::GeometricSupport
 
typedef BasisType HArDCore3D::DivergenceBasis< BasisType >::AncestorType
 
typedef VectorRd HArDCore3D::RolyComplBasisCell::FunctionValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::RolyComplBasisCell::GradientValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::RolyComplBasisCell::CurlValue
 
typedef double HArDCore3D::RolyComplBasisCell::DivergenceValue
 
typedef Eigen::Matrix< double, dimspace, dimspace *dimspaceHArDCore3D::RolyComplBasisCell::HessianValue
 
typedef Cell HArDCore3D::RolyComplBasisCell::GeometricSupport
 
typedef VectorRd HArDCore3D::GolyComplBasisCell::FunctionValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::GolyComplBasisCell::GradientValue
 
typedef VectorRd HArDCore3D::GolyComplBasisCell::CurlValue
 
typedef double HArDCore3D::GolyComplBasisCell::DivergenceValue
 
typedef Eigen::Matrix< double, dimspace, dimspace *dimspaceHArDCore3D::GolyComplBasisCell::HessianValue
 
typedef Cell HArDCore3D::GolyComplBasisCell::GeometricSupport
 
typedef VectorRd HArDCore3D::RolyComplBasisFace::FunctionValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::RolyComplBasisFace::GradientValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::RolyComplBasisFace::CurlValue
 
typedef double HArDCore3D::RolyComplBasisFace::DivergenceValue
 
typedef Eigen::Matrix< double, dimspace, dimspace *dimspaceHArDCore3D::RolyComplBasisFace::HessianValue
 
typedef Face HArDCore3D::RolyComplBasisFace::GeometricSupport
 
typedef Eigen::Matrix< double, 2, dimspaceHArDCore3D::RolyComplBasisFace::JacobianType
 
typedef VectorRd HArDCore3D::GolyComplBasisFace::FunctionValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::GolyComplBasisFace::GradientValue
 
typedef Eigen::Matrix< double, dimspace, dimspaceHArDCore3D::GolyComplBasisFace::CurlValue
 
typedef double HArDCore3D::GolyComplBasisFace::DivergenceValue
 
typedef Eigen::Matrix< double, dimspace, dimspace *dimspaceHArDCore3D::GolyComplBasisFace::HessianValue
 
typedef Face HArDCore3D::GolyComplBasisFace::GeometricSupport
 
typedef Eigen::Matrix< double, 2, dimspaceHArDCore3D::GolyComplBasisFace::JacobianType
 
typedef BasisType::FunctionValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Function >::ReturnValue
 
typedef BasisType::GradientValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Gradient >::ReturnValue
 
typedef BasisType::CurlValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Curl >::ReturnValue
 
typedef BasisType::DivergenceValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Divergence >::ReturnValue
 
typedef BasisType::HessianValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Hessian >::ReturnValue
 
typedef BasisType::CurlValue HArDCore3D::detail::basis_evaluation_traits< BasisType, CurlCurl >::ReturnValue
 
typedef TensorizedVectorFamily< ScalarBasisType, N >::FunctionValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Function >::ReturnValue
 
typedef double HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Function >::AncestorBasisFunctionValue
 
typedef TensorizedVectorFamily< ScalarBasisType, N >::GradientValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Gradient >::ReturnValue
 
typedef VectorRd HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Gradient >::AncestorBasisFunctionValue
 
typedef TensorizedVectorFamily< ScalarBasisType, N >::CurlValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Curl >::ReturnValue
 
typedef VectorRd HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Curl >::AncestorBasisFunctionValue
 
typedef TensorizedVectorFamily< ScalarBasisType, N >::DivergenceValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Divergence >::ReturnValue
 
typedef VectorRd HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Divergence >::AncestorBasisFunctionValue
 
typedef TensorizedVectorFamily< ScalarBasisType, N >::CurlValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, CurlCurl >::ReturnValue
 
typedef MatrixRd HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, CurlCurl >::AncestorBasisFunctionValue
 
typedef MatrixFamily< ScalarBasisType, N >::FunctionValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Function >::ReturnValue
 
typedef double HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Function >::AncestorBasisFunctionValue
 
typedef MatrixFamily< ScalarBasisType, N >::DivergenceValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Divergence >::ReturnValue
 
typedef VectorRd HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Divergence >::AncestorBasisFunctionValue
 

Enumerations

enum  HArDCore3D::TensorRankE { HArDCore3D::Scalar = 0 , HArDCore3D::Vector = 1 , HArDCore3D::Matrix = 2 }
 
enum  HArDCore3D::BasisFunctionE {
  HArDCore3D::Function , HArDCore3D::Gradient , HArDCore3D::Curl , HArDCore3D::Divergence ,
  HArDCore3D::Hessian , HArDCore3D::CurlCurl
}
 

Functions

static std::vector< VectorZd > HArDCore3D::MonomialPowers< Cell >::homogeneous (const size_t L)
 
static std::vector< VectorZd > HArDCore3D::MonomialPowers< Cell >::complete (const size_t degree)
 
static std::vector< Eigen::Vector2i > HArDCore3D::MonomialPowers< Face >::homogeneous (const size_t L)
 
static std::vector< Eigen::Vector2i > HArDCore3D::MonomialPowers< Face >::complete (size_t degree)
 
 HArDCore3D::MonomialScalarBasisCell::MonomialScalarBasisCell (const Cell &T, size_t degree)
 Constructor.
 
size_t HArDCore3D::MonomialScalarBasisCell::dimension () const
 Compute the dimension of the basis.
 
FunctionValue HArDCore3D::MonomialScalarBasisCell::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
GradientValue HArDCore3D::MonomialScalarBasisCell::gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th basis function at point x.
 
HessianValue HArDCore3D::MonomialScalarBasisCell::hessian (size_t i, const VectorRd &x) const
 Evaluate the hessian of the i-th basis function at point x.
 
size_t HArDCore3D::MonomialScalarBasisCell::max_degree () const
 Returns the maximum degree of the basis functions.
 
VectorZd HArDCore3D::MonomialScalarBasisCell::powers (size_t i) const
 Returns the powers of the i-th basis function (its degree can be found using powers(i).sum())
 
 HArDCore3D::MonomialScalarBasisFace::MonomialScalarBasisFace (const Face &F, size_t degree)
 Constructor.
 
size_t HArDCore3D::MonomialScalarBasisFace::dimension () const
 Dimension of the basis.
 
FunctionValue HArDCore3D::MonomialScalarBasisFace::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
GradientValue HArDCore3D::MonomialScalarBasisFace::gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th basis function at point x.
 
CurlValue HArDCore3D::MonomialScalarBasisFace::curl (size_t i, const VectorRd &x) const
 Evaluate the two-dimensional curl of the i-th basis function at point x.
 
HessianValue HArDCore3D::MonomialScalarBasisFace::hessian (size_t i, const VectorRd &x) const
 Evaluate the Hessian of the i-th basis function at point x.
 
size_t HArDCore3D::MonomialScalarBasisFace::max_degree () const
 Returns the maximum degree of the basis functions.
 
const VectorRd & HArDCore3D::MonomialScalarBasisFace::normal () const
 Return the normal to the face used in the computation of the curl.
 
const JacobianTypeHArDCore3D::MonomialScalarBasisFace::jacobian () const
 Return the Jacobian of the coordinate system transformation.
 
const JacobianType HArDCore3D::MonomialScalarBasisFace::coordinates_system () const
 Return the system of coordinates (basis in rows) on the face.
 
Eigen::Vector2i HArDCore3D::MonomialScalarBasisFace::powers (size_t i) const
 Returns the powers of the i-th basis function (its degree can be found using powers(i).sum())
 
 HArDCore3D::MonomialScalarBasisEdge::MonomialScalarBasisEdge (const Edge &E, size_t degree)
 Constructor.
 
size_t HArDCore3D::MonomialScalarBasisEdge::dimension () const
 Dimension of the basis.
 
FunctionValue HArDCore3D::MonomialScalarBasisEdge::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
GradientValue HArDCore3D::MonomialScalarBasisEdge::gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th basis function at point x.
 
size_t HArDCore3D::MonomialScalarBasisEdge::max_degree () const
 Returns the maximum degree of the basis functions.
 
 HArDCore3D::Family< BasisType >::Family (const BasisType &basis, const Eigen::MatrixXd &matrix)
 Constructor.
 
size_t HArDCore3D::Family< BasisType >::dimension () const
 Dimension of the family. This is actually the number of functions in the family, not necessarily linearly independent.
 
FunctionValue HArDCore3D::Family< BasisType >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th function at point x.
 
FunctionValue HArDCore3D::Family< BasisType >::function (size_t i, size_t iqn, const boost::multi_array< FunctionValue, 2 > &ancestor_value_quad) const
 Evaluate the i-th function at a quadrature point iqn, knowing all the values of ancestor basis functions at the quadrature nodes (provided by eval_quad)
 
GradientValue HArDCore3D::Family< BasisType >::gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th function at point x.
 
GradientValue HArDCore3D::Family< BasisType >::gradient (size_t i, size_t iqn, const boost::multi_array< GradientValue, 2 > &ancestor_gradient_quad) const
 Evaluate the gradient of the i-th function at a quadrature point iqn, knowing all the gradients of ancestor basis functions at the quadrature nodes (provided by eval_quad)
 
CurlValue HArDCore3D::Family< BasisType >::curl (size_t i, const VectorRd &x) const
 Evaluate the curl of the i-th function at point x.
 
CurlValue HArDCore3D::Family< BasisType >::curl (size_t i, size_t iqn, const boost::multi_array< CurlValue, 2 > &ancestor_curl_quad) const
 Evaluate the curl of the i-th function at a quadrature point iqn, knowing all the curls of ancestor basis functions at the quadrature nodes (provided by eval_quad)
 
DivergenceValue HArDCore3D::Family< BasisType >::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th function at point x.
 
DivergenceValue HArDCore3D::Family< BasisType >::divergence (size_t i, size_t iqn, const boost::multi_array< DivergenceValue, 2 > &ancestor_divergence_quad) const
 Evaluate the divergence of the i-th function at a quadrature point iqn, knowing all the divergences of ancestor basis functions at the quadrature nodes (provided by eval_quad)
 
HessianValue HArDCore3D::Family< BasisType >::hessian (size_t i, const VectorRd &x) const
 Evaluate the hessian of the i-th function at point x.
 
HessianValue HArDCore3D::Family< BasisType >::hessian (size_t i, size_t iqn, const boost::multi_array< HessianValue, 2 > &ancestor_hessian_quad) const
 Evaluate the hessian of the i-th function at a quadrature point iqn, knowing all the hessian of ancestor basis functions at the quadrature nodes (provided by eval_quad)
 
const Eigen::MatrixXd & HArDCore3D::Family< BasisType >::matrix () const
 Return the coefficient matrix.
 
constexpr const BasisTypeHArDCore3D::Family< BasisType >::ancestor () const
 Return the ancestor.
 
size_t HArDCore3D::Family< BasisType >::max_degree () const
 Returns the maximum degree of the basis functions.
 
 HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::TensorizedVectorFamily (const ScalarFamilyType &scalar_family)
 
size_t HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::dimension () const
 Return the dimension of the family.
 
FunctionValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
FunctionValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::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)
 
GradientValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th basis function at point x.
 
GradientValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::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)
 
CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curl (size_t i, const VectorRd &x) const
 Evaluate the curl of the i-th basis function at point x.
 
CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curl (size_t i, size_t iqn, const boost::multi_array< VectorRd, 2 > &ancestor_gradient_quad) const
 Evaluate the curl 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)
 
DivergenceValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x.
 
DivergenceValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::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)
 
CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curlcurl (size_t i, const VectorRd &x) const
 Evaluate the curl curl of the i-th basis function at point x. We use the formula curl curl = - Laplace + grad div.
 
CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curlcurl (size_t i, size_t iqn, const boost::multi_array< typename ScalarFamilyType::HessianValue, 2 > &ancestor_hessian_quad) const
 Evaluate the curl curl of the i-th basis function at a quadrature point iqn, knowing all the values of the Hessian of ancestor basis functions at the quadrature nodes (provided by eval_quad)
 
constexpr const ScalarFamilyTypeHArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::ancestor () const
 Return the ancestor (family that has been tensorized)
 
size_t HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::max_degree () const
 Returns the maximum degree of the basis functions.
 
 HArDCore3D::MatrixFamily< ScalarFamilyType, N >::MatrixFamily (const ScalarFamilyType &scalar_family)
 
size_t HArDCore3D::MatrixFamily< ScalarFamilyType, N >::dimension () const
 Return the dimension of the family.
 
FunctionValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
FunctionValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::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)
 
DivergenceValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x.
 
DivergenceValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::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)
 
const ScalarFamilyTypeHArDCore3D::MatrixFamily< ScalarFamilyType, N >::ancestor () const
 Return the ancestor (family that has been tensorized)
 
const size_t HArDCore3D::MatrixFamily< ScalarFamilyType, N >::matrixSize () const
 Return the dimension of the matrices in the family.
 
const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::transposeOperator () const
 Return the transpose operator, the rN^2 square matrix that to a given vector of coefficients on the Matrix family associates the vector of coefficients corresponding to the transpose.
 
const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::symmetriseOperator () const
 Return the symmetrisation operator, the rN^2 square matrix that to a given vector of coefficients on the Matrix family associates the vector of coefficients corresponding to the symmetrised matrix.
 
const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::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.
 
const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::traceOperator () const
 Returns the matrix corresponding to the trace, expressed as a linear operator between that MatrixFamily and the underlying scalar family.
 
 HArDCore3D::TangentFamily< ScalarFamilyType >::TangentFamily (const ScalarFamilyType &scalar_family, const Eigen::Matrix< double, 2, dimspace > &generators)
 Constructor.
 
size_t HArDCore3D::TangentFamily< ScalarFamilyType >::dimension () const
 Return the dimension of the family.
 
FunctionValue HArDCore3D::TangentFamily< ScalarFamilyType >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
DivergenceValue HArDCore3D::TangentFamily< ScalarFamilyType >::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x.
 
CurlValue HArDCore3D::TangentFamily< ScalarFamilyType >::curlcurl (size_t i, const VectorRd &x) const
 Evaluate the curl curl of the i-th basis function at point x.
 
constexpr const ScalarFamilyTypeHArDCore3D::TangentFamily< ScalarFamilyType >::ancestor () const
 Return the ancestor (family used for the tangent)
 
size_t HArDCore3D::TangentFamily< ScalarFamilyType >::max_degree () const
 Returns the maximum degree of the basis functions.
 
Eigen::Matrix< double, 2, dimspaceHArDCore3D::TangentFamily< ScalarFamilyType >::generators () const
 Returns the generators of the basis functions.
 
 HArDCore3D::ShiftedBasis< BasisType >::ShiftedBasis (const BasisType &basis, const int shift)
 Constructor.
 
size_t HArDCore3D::ShiftedBasis< BasisType >::dimension () const
 Return the dimension of the basis.
 
size_t HArDCore3D::ShiftedBasis< BasisType >::shift () const
 Return the shift.
 
constexpr const BasisTypeHArDCore3D::ShiftedBasis< BasisType >::ancestor () const
 Return the underlying complete basis.
 
size_t HArDCore3D::ShiftedBasis< BasisType >::max_degree () const
 Returns the maximum degree of the basis functions.
 
FunctionValue HArDCore3D::ShiftedBasis< BasisType >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
GradientValue HArDCore3D::ShiftedBasis< BasisType >::gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th basis function at point x.
 
CurlValue HArDCore3D::ShiftedBasis< BasisType >::curl (size_t i, const VectorRd &x) const
 Evaluate the curl of the i-th basis function at point x.
 
DivergenceValue HArDCore3D::ShiftedBasis< BasisType >::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x.
 
HessianValue HArDCore3D::ShiftedBasis< BasisType >::hessian (size_t i, const VectorRd &x) const
 Evaluate the hessian of the i-th basis function at point x.
 
 HArDCore3D::RestrictedBasis< BasisType >::RestrictedBasis (const BasisType &basis, const size_t &dimension)
 Constructor.
 
size_t HArDCore3D::RestrictedBasis< BasisType >::dimension () const
 Return the dimension of the basis.
 
constexpr const BasisTypeHArDCore3D::RestrictedBasis< BasisType >::ancestor () const
 Return the underlying complete basis.
 
size_t HArDCore3D::RestrictedBasis< BasisType >::max_degree () const
 Returns the maximum degree of the basis functions.
 
FunctionValue HArDCore3D::RestrictedBasis< BasisType >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
GradientValue HArDCore3D::RestrictedBasis< BasisType >::gradient (size_t i, const VectorRd &x) const
 Evaluate the gradient of the i-th basis function at point x.
 
CurlValue HArDCore3D::RestrictedBasis< BasisType >::curl (size_t i, const VectorRd &x) const
 Evaluate the curl of the i-th basis function at point x.
 
DivergenceValue HArDCore3D::RestrictedBasis< BasisType >::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x.
 
HessianValue HArDCore3D::RestrictedBasis< BasisType >::hessian (size_t i, const VectorRd &x) const
 Evaluate the hessian of the i-th basis function at point x.
 
 HArDCore3D::GradientBasis< BasisType >::GradientBasis (const BasisType &basis)
 Constructor.
 
size_t HArDCore3D::GradientBasis< BasisType >::dimension () const
 Compute the dimension of the basis.
 
FunctionValue HArDCore3D::GradientBasis< BasisType >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
constexpr const BasisTypeHArDCore3D::GradientBasis< BasisType >::ancestor () const
 Return the ancestor (basis that the gradient was taken of)
 
 HArDCore3D::CurlBasis< BasisType >::CurlBasis (const BasisType &basis)
 Constructor.
 
size_t HArDCore3D::CurlBasis< BasisType >::dimension () const
 Compute the dimension of the basis.
 
FunctionValue HArDCore3D::CurlBasis< BasisType >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
constexpr const BasisTypeHArDCore3D::CurlBasis< BasisType >::ancestor () const
 Return the ancestor (basis that the gradient was taken of)
 
 HArDCore3D::DivergenceBasis< BasisType >::DivergenceBasis (const BasisType &basis)
 Constructor.
 
size_t HArDCore3D::DivergenceBasis< BasisType >::dimension () const
 Compute the dimension of the basis.
 
FunctionValue HArDCore3D::DivergenceBasis< BasisType >::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
constexpr const BasisTypeHArDCore3D::DivergenceBasis< BasisType >::ancestor () const
 Return the ancestor (basis that the gradient was taken of)
 
template<typename ScalarFamilyType >
DivergenceBasis< TangentFamily< ScalarFamilyType > > HArDCore3D::ScalarRotFamily (const TangentFamily< ScalarFamilyType > &tangent_family, const Face &F)
 The following function creates the "scalar rot" basis of a TangentFamily on a face.
 
 HArDCore3D::RolyComplBasisCell::RolyComplBasisCell (const Cell &T, size_t degree)
 Constructor.
 
size_t HArDCore3D::RolyComplBasisCell::dimension () const
 Compute the dimension of the basis.
 
FunctionValue HArDCore3D::RolyComplBasisCell::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
DivergenceValue HArDCore3D::RolyComplBasisCell::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x.
 
size_t HArDCore3D::RolyComplBasisCell::max_degree () const
 Returns the maximum degree of the basis functions.
 
VectorZd HArDCore3D::RolyComplBasisCell::powers (size_t i) const
 Returns the powers of the i-th basis function (not including the vector part)
 
 HArDCore3D::GolyComplBasisCell::GolyComplBasisCell (const Cell &T, size_t degree)
 Constructor.
 
size_t HArDCore3D::GolyComplBasisCell::dimension () const
 Compute the dimension of the basis.
 
FunctionValue HArDCore3D::GolyComplBasisCell::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
CurlValue HArDCore3D::GolyComplBasisCell::curl (size_t i, const VectorRd &x) const
 Evaluate the curl of the i-th basis function at point x.
 
size_t HArDCore3D::GolyComplBasisCell::max_degree () const
 Returns the maximum degree of the basis functions.
 
VectorZd HArDCore3D::GolyComplBasisCell::powers (size_t i) const
 Returns the powers of the i-th basis function (not including the vector part)
 
size_t HArDCore3D::GolyComplBasisCell::dimPkmo () const
 Returns the dimension of P^{k-1}(R^3)
 
 HArDCore3D::RolyComplBasisFace::RolyComplBasisFace (const Face &F, size_t degree)
 Constructor.
 
size_t HArDCore3D::RolyComplBasisFace::dimension () const
 Dimension of the basis.
 
FunctionValue HArDCore3D::RolyComplBasisFace::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
DivergenceValue HArDCore3D::RolyComplBasisFace::divergence (size_t i, const VectorRd &x) const
 Evaluate the divergence of the i-th basis function at point x.
 
const JacobianTypeHArDCore3D::RolyComplBasisFace::jacobian () const
 Return the Jacobian of the coordinate system transformation.
 
size_t HArDCore3D::RolyComplBasisFace::max_degree () const
 Returns the maximum degree of the basis functions.
 
Eigen::Vector2i HArDCore3D::RolyComplBasisFace::powers (size_t i) const
 Returns the powers of the i-th basis function.
 
 HArDCore3D::GolyComplBasisFace::GolyComplBasisFace (const Face &F, size_t degree)
 Constructor.
 
size_t HArDCore3D::GolyComplBasisFace::dimension () const
 Dimension of the basis.
 
FunctionValue HArDCore3D::GolyComplBasisFace::function (size_t i, const VectorRd &x) const
 Evaluate the i-th basis function at point x.
 
const VectorRd & HArDCore3D::GolyComplBasisFace::normal () const
 Return the normal to the face used in the computation of the curl.
 
const std::shared_ptr< RolyComplBasisFace > & HArDCore3D::GolyComplBasisFace::rck () const
 Return the Rck basis.
 
template<typename outValue , typename inValue , typename FunctionType >
boost::multi_array< outValue, 2 > HArDCore3D::transform_values_quad (const boost::multi_array< inValue, 2 > &B_quad, const FunctionType &F)
 Takes an array B_quad of values at quadrature nodes and applies the function F to all of them. F must take inValue and return outValue. The function must be called with outValue as template argument: transform_values_quad<outValue>(...)
 
template<typename ScalarBasisType , size_t N>
Family< TensorizedVectorFamily< ScalarBasisType, N > > HArDCore3D::GenericTensorization (const ScalarBasisType &B, const std::vector< Eigen::VectorXd > &v)
 From a scalar family B=(B_1..B_r) and vectors (v_1..v_k) in R^N, constructs a "Family" of "TensorizedVectorFamily" (built on B, of size N) that represents the family (B_1v_1..B_rv_1 B_1v_2...B_rv_2...B_1v_k...B_rv_k).
 
Eigen::MatrixXd HArDCore3D::PermuteTensorization (const size_t a, const size_t b)
 Returns the matrix giving the permutation of the tensorization of a family of size a with a family of size b.
 
template<typename ScalarBasisType , size_t N>
Family< MatrixFamily< ScalarBasisType, N > > HArDCore3D::IsotropicMatrixFamily (const ScalarBasisType &B)
 From a scalar family B, constructs a "Family" of "MatrixFamily" (built on B, of size NxN) that represents the family B Id on the MatrixFamily.
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Function >::evaluate (const BasisType &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Function >::evaluate (const BasisType &basis, size_t i, size_t iqn, const boost::multi_array< ReturnValue, 2 > &ancestor_value_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Gradient >::evaluate (const BasisType &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Gradient >::evaluate (const BasisType &basis, size_t i, size_t iqn, const boost::multi_array< ReturnValue, 2 > &ancestor_gradient_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Curl >::evaluate (const BasisType &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Curl >::evaluate (const BasisType &basis, size_t i, size_t iqn, const boost::multi_array< ReturnValue, 2 > &ancestor_curl_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Divergence >::evaluate (const BasisType &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Divergence >::evaluate (const BasisType &basis, size_t i, size_t iqn, const boost::multi_array< ReturnValue, 2 > &ancestor_divergence_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Hessian >::evaluate (const BasisType &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Hessian >::evaluate (const BasisType &basis, size_t i, size_t iqn, const boost::multi_array< ReturnValue, 2 > &ancestor_hessian_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, CurlCurl >::evaluate (const BasisType &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, CurlCurl >::evaluate (const BasisType &basis, size_t i, size_t iqn, const boost::multi_array< ReturnValue, 2 > &ancestor_curlcurl_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Function >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Function >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, size_t iqn, const boost::multi_array< double, 2 > &ancestor_basis_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Gradient >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Gradient >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, size_t iqn, const boost::multi_array< VectorRd, 2 > &ancestor_basis_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Curl >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Curl >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, size_t iqn, const boost::multi_array< VectorRd, 2 > &ancestor_basis_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Divergence >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Divergence >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, size_t iqn, const boost::multi_array< VectorRd, 2 > &ancestor_basis_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, CurlCurl >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, CurlCurl >::evaluate (const TensorizedVectorFamily< ScalarBasisType, N > &basis, size_t i, size_t iqn, const boost::multi_array< MatrixRd, 2 > &ancestor_basis_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Function >::evaluate (const MatrixFamily< ScalarBasisType, N > &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Function >::evaluate (const MatrixFamily< ScalarBasisType, N > &basis, size_t i, size_t iqn, const boost::multi_array< double, 2 > &ancestor_basis_quad)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Divergence >::evaluate (const MatrixFamily< ScalarBasisType, N > &basis, size_t i, const VectorRd &x)
 
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Divergence >::evaluate (const MatrixFamily< ScalarBasisType, N > &basis, size_t i, size_t iqn, const boost::multi_array< VectorRd, 2 > &ancestor_basis_quad)
 
template<typename BasisType >
static boost::multi_array< typename detail::basis_evaluation_traits< BasisType, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute (const BasisType &basis, const QuadratureRule &quad)
 Generic basis evaluation.
 
template<typename BasisType >
static boost::multi_array< typename detail::basis_evaluation_traits< Family< BasisType >, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute (const Family< BasisType > &basis, const QuadratureRule &quad)
 Evaluate a 'Family' of functions at quadrature nodes (optimised compared the generic basis evaluation, to avoid computing several times the ancestor basis at the quadrature nodes)
 
template<typename BasisType , size_t N>
static boost::multi_array< typename detail::basis_evaluation_traits< TensorizedVectorFamily< BasisType, N >, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute (const TensorizedVectorFamily< BasisType, N > &basis, const QuadratureRule &quad)
 Evaluate a tensorized family at quadrature nodes (optimised compared the generic basis evaluation, to avoid computing several times the ancestor basis at the quadrature nodes)
 
template<typename BasisType , size_t N>
static boost::multi_array< typename detail::basis_evaluation_traits< MatrixFamily< BasisType, N >, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute (const MatrixFamily< BasisType, N > &basis, const QuadratureRule &quad)
 Evaluate a Matrix family at quadrature nodes (optimised compared the generic basis evaluation, to avoid computing several times the ancestor basis at the quadrature nodes)
 
template<typename T >
Eigen::MatrixXd HArDCore3D::gram_schmidt (boost::multi_array< T, 2 > &basis_eval, const std::function< double(size_t, size_t)> &inner_product)
 
double HArDCore3D::scalar_product (const double &x, const double &y)
 Scalar product between two reals.
 
double HArDCore3D::scalar_product (const double &x, const Eigen::Matrix< double, 1, 1 > &y)
 Scalar product between one real and one 1-dimension Eigen vector.
 
double HArDCore3D::scalar_product (const VectorRd &x, const VectorRd &y)
 Scalar product between two vectors.
 
template<int N>
double HArDCore3D::scalar_product (const Eigen::Matrix< double, N, N > &x, const Eigen::Matrix< double, N, N > &y)
 Scalar product between two matrices.
 
template<typename Value >
boost::multi_array< double, 2 > HArDCore3D::scalar_product (const boost::multi_array< Value, 2 > &basis_quad, const Value &v)
 This overloading of the scalar_product function computes the scalar product between an evaluation of a basis and a constant value; both basis values and constant value must be of type Value.
 
boost::multi_array< VectorRd, 2 > HArDCore3D::vector_product (const boost::multi_array< VectorRd, 2 > &basis_quad, const VectorRd &v)
 Compute the vector (cross) product between the evaluation of a basis and a constant vector.
 
template<typename BasisType >
Family< BasisTypeHArDCore3D::l2_orthonormalize (const BasisType &basis, const QuadratureRule &qr, boost::multi_array< typename BasisType::FunctionValue, 2 > &basis_quad)
 \(L^2\)-orthonormalization: simply consists in using gram_schmidt() with the specific l2 inner product
 
template<typename BasisType >
Family< BasisTypeHArDCore3D::l2_orthonormalize (const BasisType &basis, const Eigen::MatrixXd &GM)
 \(L^2\)-orthonormalization: when the Gram Matrix is passed, we use Cholesky.
 
template<typename FunctionValue >
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< FunctionValue, 2 > &B1, const boost::multi_array< FunctionValue, 2 > &B2, const QuadratureRule &qr, const size_t nrows, const size_t ncols, const std::string sym="nonsym")
 
template<typename FunctionValue >
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< FunctionValue, 2 > &B1, const boost::multi_array< FunctionValue, 2 > &B2, const QuadratureRule &qr, const std::string sym="nonsym")
 
template<typename FunctionValue >
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< FunctionValue, 2 > &B, const QuadratureRule &qr)
 Compute the Gram matrix given the evaluation of one family of functions at quadrature nodes. Consists in calling the generic templated version with B1=B2.
 
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< VectorRd, 2 > &B1, const boost::multi_array< double, 2 > &B2, const QuadratureRule &qr)
 Compute the Gram-like matrix given a family of vector-valued and one of scalar-valued functions by tensorizing the latter.
 
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< double, 2 > &B1, const boost::multi_array< double, 2 > &B2, const QuadratureRule &qr, const size_t nrows, const size_t ncols, const std::string sym)
 
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< double, 2 > &B1, const boost::multi_array< double, 2 > &B2, const QuadratureRule &qr, const std::string sym)
 
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< VectorRd, 2 > &B1, const boost::multi_array< VectorRd, 2 > &B2, const QuadratureRule &qr, const size_t nrows, const size_t ncols, const std::string sym)
 
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const boost::multi_array< VectorRd, 2 > &B1, const boost::multi_array< VectorRd, 2 > &B2, const QuadratureRule &qr, const std::string sym="nonsym")
 Compute the Gram-like matrix given the evaluation of two families of functions at quadrature nodes. Consists in calling the Vector3d-valued version with nrows = nb of elements in B1, ncols = nb of elements in B2.
 
template<typename ScalarFamilyType , size_t N>
Eigen::MatrixXd HArDCore3D::compute_gram_matrix (const MatrixFamily< ScalarFamilyType, N > &MatFam, const boost::multi_array< double, 2 > &scalar_family_quad, const QuadratureRule &qr)
 Compute the Gram-like matrix for a MatrixFamily. This overload is more efficient than the generic function as it only computes the gram matrix of the underlying scalar family, and then creates the bloc-diagonal gram matrix of the MatrixFamily (which is indeed bloc diagonal given the choice of m_E elements in this class).
 
template<typename T >
Eigen::VectorXd HArDCore3D::integrate (const FType< T > &f, const BasisQuad< T > &B, const QuadratureRule &qr, size_t n_rows=0)
 Computes the vector of integrals (f, phi_i)
 
template<typename T , typename U >
Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix (const FType< U > &f, const BasisQuad< T > &B1, const BasisQuad< T > &B2, const QuadratureRule &qr, size_t n_rows=0, size_t n_cols=0, const std::string sym="nonsym")
 Computes the Gram-like matrix of integrals (f phi_i, phi_j)
 
template<typename T , typename U >
Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix (const FType< U > &f, const BasisQuad< T > &B1, const BasisQuad< T > &B2, const QuadratureRule &qr, const std::string sym)
 Computes the Gram-like matrix of integrals (f phi_i, phi_j)
 
Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix (const FType< VectorRd > &f, const BasisQuad< VectorRd > &B1, const BasisQuad< double > &B2, const QuadratureRule &qr, size_t n_rows=0, size_t n_cols=0)
 Computes the Gram-like matrix of integrals (f dot phi_i, phi_j)
 
Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix (const FType< VectorRd > &f, const BasisQuad< double > &B1, const BasisQuad< VectorRd > &B2, const QuadratureRule &qr, size_t n_rows=0, size_t n_cols=0)
 Computes the Gram-like matrix of integrals (phi_i, f dot phi_j)
 
template<typename BasisType >
Eigen::VectorXd HArDCore3D::l2_projection (const std::function< typename BasisType::FunctionValue(const VectorRd &)> &f, const BasisType &basis, QuadratureRule &quad, const boost::multi_array< typename BasisType::FunctionValue, 2 > &basis_quad, const Eigen::MatrixXd &mass_basis=Eigen::MatrixXd::Zero(1, 1))
 Compute the L2-projection of a function.
 
 HArDCore3D::DecomposePoly< BasisType >::DecomposePoly (const Face &F, const BasisType &basis)
 Constructor for face.
 
 HArDCore3D::DecomposePoly< BasisType >::DecomposePoly (const Cell &T, const BasisType &basis)
 Constructor for cell.
 
QuadratureRule HArDCore3D::DecomposePoly< BasisType >::get_nodes () const
 Return the set of nodes (useful to compute value of polynomial to decompose via evaluate_quad)
 
Family< BasisTypeHArDCore3D::DecomposePoly< BasisType >::family (boost::multi_array< typename BasisType::FunctionValue, 2 > &values)
 Returns the decomposed polynomials as a Family of the provided basis.
 

Variables

constexpr int HArDCore3D::dimspace = 3
 Dimension, and generic types for vector in correct dimension (makes it easier to translate a code between 2D and 3D)
 
static const std::vector< VectorRd > HArDCore3D::basisRd = { VectorRd(1., 0., 0.), VectorRd(0., 1., 0.), VectorRd(0., 0., 1.) }
 
static constexpr const TensorRankE HArDCore3D::MonomialScalarBasisCell::tensorRank = Scalar
 
static constexpr const bool HArDCore3D::MonomialScalarBasisCell::hasAncestor = false
 
static const bool HArDCore3D::MonomialScalarBasisCell::hasFunction = true
 
static const bool HArDCore3D::MonomialScalarBasisCell::hasGradient = true
 
static const bool HArDCore3D::MonomialScalarBasisCell::hasCurl = false
 
static const bool HArDCore3D::MonomialScalarBasisCell::hasDivergence = false
 
static const bool HArDCore3D::MonomialScalarBasisCell::hasHessian = true
 
static const bool HArDCore3D::MonomialScalarBasisCell::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::MonomialScalarBasisFace::tensorRank = Scalar
 
static constexpr const bool HArDCore3D::MonomialScalarBasisFace::hasAncestor = false
 
static const bool HArDCore3D::MonomialScalarBasisFace::hasFunction = true
 
static const bool HArDCore3D::MonomialScalarBasisFace::hasGradient = true
 
static const bool HArDCore3D::MonomialScalarBasisFace::hasCurl = true
 
static const bool HArDCore3D::MonomialScalarBasisFace::hasDivergence = false
 
static const bool HArDCore3D::MonomialScalarBasisFace::hasHessian = true
 
static const bool HArDCore3D::MonomialScalarBasisFace::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::MonomialScalarBasisEdge::tensorRank = Scalar
 
static constexpr const bool HArDCore3D::MonomialScalarBasisEdge::hasAncestor = false
 
static const bool HArDCore3D::MonomialScalarBasisEdge::hasFunction = true
 
static const bool HArDCore3D::MonomialScalarBasisEdge::hasGradient = true
 
static const bool HArDCore3D::MonomialScalarBasisEdge::hasCurl = false
 
static const bool HArDCore3D::MonomialScalarBasisEdge::hasDivergence = false
 
static const bool HArDCore3D::MonomialScalarBasisEdge::hasHessian = false
 
static const bool HArDCore3D::MonomialScalarBasisEdge::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::Family< BasisType >::tensorRank = BasisType::tensorRank
 
static constexpr const bool HArDCore3D::Family< BasisType >::hasAncestor = true
 
static const bool HArDCore3D::Family< BasisType >::hasFunction = BasisType::hasFunction
 
static const bool HArDCore3D::Family< BasisType >::hasGradient = BasisType::hasGradient
 
static const bool HArDCore3D::Family< BasisType >::hasCurl = BasisType::hasCurl
 
static const bool HArDCore3D::Family< BasisType >::hasDivergence = BasisType::hasDivergence
 
static const bool HArDCore3D::Family< BasisType >::hasHessian = BasisType::hasHessian
 
static const bool HArDCore3D::Family< BasisType >::hasCurlCurl = BasisType::hasCurlCurl
 
static constexpr const TensorRankE HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::tensorRank = Vector
 
static constexpr const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasAncestor = true
 
static const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasFunction = ScalarFamilyType::hasFunction
 
static const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasGradient = ScalarFamilyType::hasGradient
 
static const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasDivergence = (ScalarFamilyType::hasGradient && N == dimspace)
 
static const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasCurl = (ScalarFamilyType::hasGradient && N == dimspace)
 
static const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasHessian = false
 
static const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasCurlCurl = (ScalarFamilyType::hasHessian && N == dimspace)
 
static constexpr const TensorRankE HArDCore3D::MatrixFamily< ScalarFamilyType, N >::tensorRank = Matrix
 
static constexpr const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasAncestor = true
 
static const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasFunction = ScalarFamilyType::hasFunction
 
static const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasGradient = false
 
static const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasDivergence = ( ScalarFamilyType::hasGradient && N==dimspace )
 
static const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasCurl = false
 
static const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasHessian = false
 
static const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::TangentFamily< ScalarFamilyType >::tensorRank = Vector
 
static constexpr const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasAncestor = true
 
static const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasFunction = true
 
static const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasGradient = false
 
static const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasCurl = false
 
static const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasDivergence = ScalarFamilyType::hasGradient
 
static const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasHessian = false
 
static const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasCurlCurl = ScalarFamilyType::hasHessian
 
static constexpr const TensorRankE HArDCore3D::ShiftedBasis< BasisType >::tensorRank = BasisType::tensorRank
 
static constexpr const bool HArDCore3D::ShiftedBasis< BasisType >::hasAncestor = true
 
static const bool HArDCore3D::ShiftedBasis< BasisType >::hasFunction = BasisType::hasFunction
 
static const bool HArDCore3D::ShiftedBasis< BasisType >::hasGradient = BasisType::hasGradient
 
static const bool HArDCore3D::ShiftedBasis< BasisType >::hasCurl = BasisType::hasCurl
 
static const bool HArDCore3D::ShiftedBasis< BasisType >::hasDivergence = BasisType::hasDivergence
 
static const bool HArDCore3D::ShiftedBasis< BasisType >::hasHessian = BasisType::hasHessian
 
static const bool HArDCore3D::ShiftedBasis< BasisType >::hasCurlCurl = BasisType::hasCurlCurl
 
static constexpr const TensorRankE HArDCore3D::RestrictedBasis< BasisType >::tensorRank = BasisType::tensorRank
 
static constexpr const bool HArDCore3D::RestrictedBasis< BasisType >::hasAncestor = true
 
static const bool HArDCore3D::RestrictedBasis< BasisType >::hasFunction = BasisType::hasFunction
 
static const bool HArDCore3D::RestrictedBasis< BasisType >::hasGradient = BasisType::hasGradient
 
static const bool HArDCore3D::RestrictedBasis< BasisType >::hasCurl = BasisType::hasCurl
 
static const bool HArDCore3D::RestrictedBasis< BasisType >::hasDivergence = BasisType::hasDivergence
 
static const bool HArDCore3D::RestrictedBasis< BasisType >::hasHessian = BasisType::hasHessian
 
static const bool HArDCore3D::RestrictedBasis< BasisType >::hasCurlCurl = BasisType::hasCurlCurl
 
static constexpr const TensorRankE HArDCore3D::GradientBasis< BasisType >::tensorRank = (BasisType::tensorRank==Scalar ? Vector : Matrix)
 
static constexpr const bool HArDCore3D::GradientBasis< BasisType >::hasAncestor = true
 
static const bool HArDCore3D::GradientBasis< BasisType >::hasFunction = true
 
static const bool HArDCore3D::GradientBasis< BasisType >::hasGradient = false
 
static const bool HArDCore3D::GradientBasis< BasisType >::hasCurl = false
 
static const bool HArDCore3D::GradientBasis< BasisType >::hasDivergence = false
 
static const bool HArDCore3D::GradientBasis< BasisType >::hasHessian = false
 
static const bool HArDCore3D::GradientBasis< BasisType >::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::CurlBasis< BasisType >::tensorRank = Vector
 
static constexpr const bool HArDCore3D::CurlBasis< BasisType >::hasAncestor = true
 
static const bool HArDCore3D::CurlBasis< BasisType >::hasFunction = true
 
static const bool HArDCore3D::CurlBasis< BasisType >::hasGradient = false
 
static const bool HArDCore3D::CurlBasis< BasisType >::hasCurl = false
 
static const bool HArDCore3D::CurlBasis< BasisType >::hasDivergence = false
 
static const bool HArDCore3D::CurlBasis< BasisType >::hasHessian = false
 
static const bool HArDCore3D::CurlBasis< BasisType >::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::DivergenceBasis< BasisType >::tensorRank = Scalar
 
static constexpr const bool HArDCore3D::DivergenceBasis< BasisType >::hasAncestor = true
 
static const bool HArDCore3D::DivergenceBasis< BasisType >::hasFunction = true
 
static const bool HArDCore3D::DivergenceBasis< BasisType >::hasGradient = false
 
static const bool HArDCore3D::DivergenceBasis< BasisType >::hasCurl = false
 
static const bool HArDCore3D::DivergenceBasis< BasisType >::hasDivergence = false
 
static const bool HArDCore3D::DivergenceBasis< BasisType >::hasHessian = false
 
static const bool HArDCore3D::DivergenceBasis< BasisType >::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::RolyComplBasisCell::tensorRank = Vector
 
static constexpr const bool HArDCore3D::RolyComplBasisCell::hasAncestor = false
 
static const bool HArDCore3D::RolyComplBasisCell::hasFunction = true
 
static const bool HArDCore3D::RolyComplBasisCell::hasGradient = false
 
static const bool HArDCore3D::RolyComplBasisCell::hasCurl = false
 
static const bool HArDCore3D::RolyComplBasisCell::hasDivergence = true
 
static const bool HArDCore3D::RolyComplBasisCell::hasHessian = false
 
static const bool HArDCore3D::RolyComplBasisCell::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::GolyComplBasisCell::tensorRank = Vector
 
static constexpr const bool HArDCore3D::GolyComplBasisCell::hasAncestor = false
 
static const bool HArDCore3D::GolyComplBasisCell::hasFunction = true
 
static const bool HArDCore3D::GolyComplBasisCell::hasGradient = false
 
static const bool HArDCore3D::GolyComplBasisCell::hasCurl = true
 
static const bool HArDCore3D::GolyComplBasisCell::hasDivergence = false
 
static const bool HArDCore3D::GolyComplBasisCell::hasHessian = false
 
static const bool HArDCore3D::GolyComplBasisCell::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::RolyComplBasisFace::tensorRank = Vector
 
static constexpr const bool HArDCore3D::RolyComplBasisFace::hasAncestor = false
 
static const bool HArDCore3D::RolyComplBasisFace::hasFunction = true
 
static const bool HArDCore3D::RolyComplBasisFace::hasGradient = false
 
static const bool HArDCore3D::RolyComplBasisFace::hasCurl = false
 
static const bool HArDCore3D::RolyComplBasisFace::hasDivergence = true
 
static const bool HArDCore3D::RolyComplBasisFace::hasHessian = false
 
static const bool HArDCore3D::RolyComplBasisFace::hasCurlCurl = false
 
static constexpr const TensorRankE HArDCore3D::GolyComplBasisFace::tensorRank = Vector
 
static constexpr const bool HArDCore3D::GolyComplBasisFace::hasAncestor = false
 
static const bool HArDCore3D::GolyComplBasisFace::hasFunction = true
 
static const bool HArDCore3D::GolyComplBasisFace::hasGradient = false
 
static const bool HArDCore3D::GolyComplBasisFace::hasCurl = false
 
static const bool HArDCore3D::GolyComplBasisFace::hasDivergence = false
 
static const bool HArDCore3D::GolyComplBasisFace::hasHessian = false
 
static const bool HArDCore3D::GolyComplBasisFace::hasCurlCurl = false
 
static std::function< Eigen::MatrixXd(const Eigen::MatrixXd &)> HArDCore3D::symmetrise_matrix = [](const Eigen::MatrixXd & x)->Eigen::MatrixXd { return 0.5*(x+x.transpose());}
 Function to symmetrise a matrix (useful together with transform_values_quad)
 
static std::function< Eigen::MatrixXd(const Eigen::MatrixXd &)> HArDCore3D::skew_symmetrise_matrix = [](const Eigen::MatrixXd & x)->Eigen::MatrixXd { return 0.5*(x-x.transpose());}
 Function to skew-symmetrise a matrix (useful together with transform_values_quad)
 
static const BasisFunctionE HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Function >::AncestorBasisFunction = Function
 
static const BasisFunctionE HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Gradient >::AncestorBasisFunction = Gradient
 
static const BasisFunctionE HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Curl >::AncestorBasisFunction = Gradient
 
static const BasisFunctionE HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Divergence >::AncestorBasisFunction = Gradient
 
static const BasisFunctionE HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, CurlCurl >::AncestorBasisFunction = Hessian
 
static const BasisFunctionE HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Function >::AncestorBasisFunction = Function
 
static const BasisFunctionE HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Divergence >::AncestorBasisFunction = Gradient
 
size_t HArDCore3D::DecomposePoly< BasisType >::m_dim
 
BasisType HArDCore3D::DecomposePoly< BasisType >::m_basis
 
Family< BasisTypeHArDCore3D::DecomposePoly< BasisType >::m_on_basis
 
boost::multi_array< typename BasisType::FunctionValue, 2 > HArDCore3D::DecomposePoly< BasisType >::m_on_basis_nodes
 
size_t HArDCore3D::DecomposePoly< BasisType >::m_nb_nodes
 
QuadratureRule HArDCore3D::DecomposePoly< BasisType >::m_nodes
 Nodes for the interpolation.
 

Detailed Description

Classes and functions for polynomial basis creation and manipulation.

Typedef Documentation

◆ AncestorBasisFunctionValue [1/7]

◆ AncestorBasisFunctionValue [2/7]

◆ AncestorBasisFunctionValue [3/7]

◆ AncestorBasisFunctionValue [4/7]

◆ AncestorBasisFunctionValue [5/7]

◆ AncestorBasisFunctionValue [6/7]

◆ AncestorBasisFunctionValue [7/7]

◆ AncestorType [1/9]

◆ AncestorType [2/9]

◆ AncestorType [3/9]

◆ AncestorType [4/9]

◆ AncestorType [5/9]

◆ AncestorType [6/9]

◆ AncestorType [7/9]

◆ AncestorType [8/9]

◆ AncestorType [9/9]

◆ BasisQuad

template<typename T >
using HArDCore3D::BasisQuad = typedef boost::multi_array<T, 2>

type for bases evaluated on quadrature nodes

◆ CellFType

template<typename T >
using HArDCore3D::CellFType = typedef std::function<T(const VectorRd&, const Cell *)>

type for function of point. T is the return type of the function

◆ CurlValue [1/16]

◆ CurlValue [2/16]

◆ CurlValue [3/16]

◆ CurlValue [4/16]

template<typename BasisType >
typedef BasisType::CurlValue HArDCore3D::Family< BasisType >::CurlValue

◆ CurlValue [5/16]

◆ CurlValue [6/16]

◆ CurlValue [7/16]

◆ CurlValue [8/16]

template<typename BasisType >
typedef BasisType::CurlValue HArDCore3D::ShiftedBasis< BasisType >::CurlValue

◆ CurlValue [9/16]

template<typename BasisType >
typedef BasisType::CurlValue HArDCore3D::RestrictedBasis< BasisType >::CurlValue

◆ CurlValue [10/16]

◆ CurlValue [11/16]

template<typename BasisType >
typedef Eigen::Matrix<double, dimspace, dimspace> HArDCore3D::CurlBasis< BasisType >::CurlValue

◆ CurlValue [12/16]

◆ CurlValue [13/16]

◆ CurlValue [14/16]

◆ CurlValue [15/16]

◆ CurlValue [16/16]

◆ DivergenceValue [1/16]

◆ DivergenceValue [2/16]

◆ DivergenceValue [3/16]

◆ DivergenceValue [4/16]

template<typename BasisType >
typedef BasisType::DivergenceValue HArDCore3D::Family< BasisType >::DivergenceValue

◆ DivergenceValue [5/16]

◆ DivergenceValue [6/16]

typedef Eigen::Matrix<double, N, 1> HArDCore3D::MatrixFamily< ScalarFamilyType, N >::DivergenceValue

◆ DivergenceValue [7/16]

◆ DivergenceValue [8/16]

template<typename BasisType >
typedef BasisType::DivergenceValue HArDCore3D::ShiftedBasis< BasisType >::DivergenceValue

◆ DivergenceValue [9/16]

template<typename BasisType >
typedef BasisType::DivergenceValue HArDCore3D::RestrictedBasis< BasisType >::DivergenceValue

◆ DivergenceValue [10/16]

◆ DivergenceValue [11/16]

◆ DivergenceValue [12/16]

◆ DivergenceValue [13/16]

◆ DivergenceValue [14/16]

◆ DivergenceValue [15/16]

◆ DivergenceValue [16/16]

◆ FType

template<typename T >
using HArDCore3D::FType = typedef std::function<T(const VectorRd&)>

type for function of point. T is the return type of the function

◆ FunctionValue [1/16]

◆ FunctionValue [2/16]

◆ FunctionValue [3/16]

◆ FunctionValue [4/16]

template<typename BasisType >
typedef BasisType::FunctionValue HArDCore3D::Family< BasisType >::FunctionValue

◆ FunctionValue [5/16]

◆ FunctionValue [6/16]

typedef Eigen::Matrix<double, N, N> HArDCore3D::MatrixFamily< ScalarFamilyType, N >::FunctionValue

◆ FunctionValue [7/16]

◆ FunctionValue [8/16]

template<typename BasisType >
typedef BasisType::FunctionValue HArDCore3D::ShiftedBasis< BasisType >::FunctionValue

◆ FunctionValue [9/16]

template<typename BasisType >
typedef BasisType::FunctionValue HArDCore3D::RestrictedBasis< BasisType >::FunctionValue

◆ FunctionValue [10/16]

template<typename BasisType >
typedef BasisType::GradientValue HArDCore3D::GradientBasis< BasisType >::FunctionValue

◆ FunctionValue [11/16]

template<typename BasisType >
typedef VectorRd HArDCore3D::CurlBasis< BasisType >::FunctionValue

◆ FunctionValue [12/16]

template<typename BasisType >
typedef BasisType::DivergenceValue HArDCore3D::DivergenceBasis< BasisType >::FunctionValue

◆ FunctionValue [13/16]

◆ FunctionValue [14/16]

◆ FunctionValue [15/16]

◆ FunctionValue [16/16]

◆ GeometricSupport [1/16]

◆ GeometricSupport [2/16]

◆ GeometricSupport [3/16]

◆ GeometricSupport [4/16]

template<typename BasisType >
typedef BasisType::GeometricSupport HArDCore3D::Family< BasisType >::GeometricSupport

◆ GeometricSupport [5/16]

typedef ScalarFamilyType::GeometricSupport HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::GeometricSupport

◆ GeometricSupport [6/16]

typedef ScalarFamilyType::GeometricSupport HArDCore3D::MatrixFamily< ScalarFamilyType, N >::GeometricSupport

◆ GeometricSupport [7/16]

◆ GeometricSupport [8/16]

template<typename BasisType >
typedef BasisType::GeometricSupport HArDCore3D::ShiftedBasis< BasisType >::GeometricSupport

◆ GeometricSupport [9/16]

template<typename BasisType >
typedef BasisType::GeometricSupport HArDCore3D::RestrictedBasis< BasisType >::GeometricSupport

◆ GeometricSupport [10/16]

template<typename BasisType >
typedef BasisType::GeometricSupport HArDCore3D::GradientBasis< BasisType >::GeometricSupport

◆ GeometricSupport [11/16]

template<typename BasisType >
typedef BasisType::GeometricSupport HArDCore3D::CurlBasis< BasisType >::GeometricSupport

◆ GeometricSupport [12/16]

template<typename BasisType >
typedef BasisType::GeometricSupport HArDCore3D::DivergenceBasis< BasisType >::GeometricSupport

◆ GeometricSupport [13/16]

◆ GeometricSupport [14/16]

◆ GeometricSupport [15/16]

◆ GeometricSupport [16/16]

◆ GradientValue [1/16]

◆ GradientValue [2/16]

◆ GradientValue [3/16]

◆ GradientValue [4/16]

template<typename BasisType >
typedef BasisType::GradientValue HArDCore3D::Family< BasisType >::GradientValue

◆ GradientValue [5/16]

◆ GradientValue [6/16]

◆ GradientValue [7/16]

◆ GradientValue [8/16]

template<typename BasisType >
typedef BasisType::GradientValue HArDCore3D::ShiftedBasis< BasisType >::GradientValue

◆ GradientValue [9/16]

template<typename BasisType >
typedef BasisType::GradientValue HArDCore3D::RestrictedBasis< BasisType >::GradientValue

◆ GradientValue [10/16]

◆ GradientValue [11/16]

template<typename BasisType >
typedef Eigen::Matrix<double, dimspace, dimspace> HArDCore3D::CurlBasis< BasisType >::GradientValue

◆ GradientValue [12/16]

◆ GradientValue [13/16]

◆ GradientValue [14/16]

◆ GradientValue [15/16]

◆ GradientValue [16/16]

◆ HessianValue [1/16]

◆ HessianValue [2/16]

◆ HessianValue [3/16]

◆ HessianValue [4/16]

template<typename BasisType >
typedef BasisType::HessianValue HArDCore3D::Family< BasisType >::HessianValue

◆ HessianValue [5/16]

◆ HessianValue [6/16]

◆ HessianValue [7/16]

typedef Eigen::Matrix2d HArDCore3D::TangentFamily< ScalarFamilyType >::HessianValue

◆ HessianValue [8/16]

template<typename BasisType >
typedef BasisType::HessianValue HArDCore3D::ShiftedBasis< BasisType >::HessianValue

◆ HessianValue [9/16]

template<typename BasisType >
typedef BasisType::HessianValue HArDCore3D::RestrictedBasis< BasisType >::HessianValue

◆ HessianValue [10/16]

◆ HessianValue [11/16]

◆ HessianValue [12/16]

◆ HessianValue [13/16]

◆ HessianValue [14/16]

◆ HessianValue [15/16]

◆ HessianValue [16/16]

◆ JacobianType [1/3]

◆ JacobianType [2/3]

◆ JacobianType [3/3]

◆ MatrixRd

typedef Eigen::Matrix3d HArDCore3D::MatrixRd

◆ ReturnValue [1/13]

template<typename BasisType >
typedef BasisType::FunctionValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Function >::ReturnValue

◆ ReturnValue [2/13]

template<typename BasisType >
typedef BasisType::GradientValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Gradient >::ReturnValue

◆ ReturnValue [3/13]

template<typename BasisType >
typedef BasisType::CurlValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Curl >::ReturnValue

◆ ReturnValue [4/13]

template<typename BasisType >
typedef BasisType::DivergenceValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Divergence >::ReturnValue

◆ ReturnValue [5/13]

template<typename BasisType >
typedef BasisType::HessianValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Hessian >::ReturnValue

◆ ReturnValue [6/13]

template<typename BasisType >
typedef BasisType::CurlValue HArDCore3D::detail::basis_evaluation_traits< BasisType, CurlCurl >::ReturnValue

◆ ReturnValue [7/13]

◆ ReturnValue [8/13]

◆ ReturnValue [9/13]

◆ ReturnValue [10/13]

◆ ReturnValue [11/13]

◆ ReturnValue [12/13]

◆ ReturnValue [13/13]

Enumeration Type Documentation

◆ BasisFunctionE

Enumerator
Function 
Gradient 
Curl 
Divergence 
Hessian 
CurlCurl 

◆ TensorRankE

Enumerator
Scalar 
Vector 
Matrix 

Function Documentation

◆ ancestor() [1/9]

template<typename BasisType >
constexpr const BasisType & HArDCore3D::Family< BasisType >::ancestor ( ) const
inlineconstexpr

Return the ancestor.

◆ ancestor() [2/9]

Return the ancestor (family that has been tensorized)

◆ ancestor() [3/9]

Return the ancestor (family that has been tensorized)

◆ ancestor() [4/9]

Return the ancestor (family used for the tangent)

◆ ancestor() [5/9]

template<typename BasisType >
constexpr const BasisType & HArDCore3D::ShiftedBasis< BasisType >::ancestor ( ) const
inlineconstexpr

Return the underlying complete basis.

◆ ancestor() [6/9]

template<typename BasisType >
constexpr const BasisType & HArDCore3D::RestrictedBasis< BasisType >::ancestor ( ) const
inlineconstexpr

Return the underlying complete basis.

◆ ancestor() [7/9]

template<typename BasisType >
constexpr const BasisType & HArDCore3D::GradientBasis< BasisType >::ancestor ( ) const
inlineconstexpr

Return the ancestor (basis that the gradient was taken of)

◆ ancestor() [8/9]

template<typename BasisType >
constexpr const BasisType & HArDCore3D::CurlBasis< BasisType >::ancestor ( ) const
inlineconstexpr

Return the ancestor (basis that the gradient was taken of)

◆ ancestor() [9/9]

template<typename BasisType >
constexpr const BasisType & HArDCore3D::DivergenceBasis< BasisType >::ancestor ( ) const
inlineconstexpr

Return the ancestor (basis that the gradient was taken of)

◆ complete() [1/2]

static std::vector< VectorZd > HArDCore3D::MonomialPowers< Cell >::complete ( const size_t  degree)
inlinestatic

◆ complete() [2/2]

static std::vector< Eigen::Vector2i > HArDCore3D::MonomialPowers< Face >::complete ( size_t  degree)
inlinestatic

◆ compute() [1/4]

template<BasisFunctionE BasisFunction>
template<typename BasisType >
static boost::multi_array< typename detail::basis_evaluation_traits< BasisType, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute ( const BasisType basis,
const QuadratureRule quad 
)
inlinestatic

Generic basis evaluation.

Parameters
basisThe basis
quadThe quadrature rule

◆ compute() [2/4]

template<BasisFunctionE BasisFunction>
template<typename BasisType >
static boost::multi_array< typename detail::basis_evaluation_traits< Family< BasisType >, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute ( const Family< BasisType > &  basis,
const QuadratureRule quad 
)
inlinestatic

Evaluate a 'Family' of functions at quadrature nodes (optimised compared the generic basis evaluation, to avoid computing several times the ancestor basis at the quadrature nodes)

Parameters
basisThe family
quadThe quadrature rule

◆ compute() [3/4]

template<BasisFunctionE BasisFunction>
template<typename BasisType , size_t N>
static boost::multi_array< typename detail::basis_evaluation_traits< MatrixFamily< BasisType, N >, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute ( const MatrixFamily< BasisType, N > &  basis,
const QuadratureRule quad 
)
inlinestatic

Evaluate a Matrix family at quadrature nodes (optimised compared the generic basis evaluation, to avoid computing several times the ancestor basis at the quadrature nodes)

Parameters
basisThe family
quadThe quadrature rule

◆ compute() [4/4]

template<BasisFunctionE BasisFunction>
template<typename BasisType , size_t N>
static boost::multi_array< typename detail::basis_evaluation_traits< TensorizedVectorFamily< BasisType, N >, BasisFunction >::ReturnValue, 2 > HArDCore3D::evaluate_quad< BasisFunction >::compute ( const TensorizedVectorFamily< BasisType, N > &  basis,
const QuadratureRule quad 
)
inlinestatic

Evaluate a tensorized family at quadrature nodes (optimised compared the generic basis evaluation, to avoid computing several times the ancestor basis at the quadrature nodes)

Parameters
basisThe family
quadThe quadrature rule

◆ compute_gram_matrix() [1/9]

Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< double, 2 > &  B1,
const boost::multi_array< double, 2 > &  B2,
const QuadratureRule qr,
const size_t  nrows,
const size_t  ncols,
const std::string  sym = "nonsym" 
)

Compute the Gram-like matrix given the evaluation of two families of functions at quadrature nodes. This version is an overload for double-valued families, more efficient than the generic templated version.

Parameters
B1First family at quadrature nodes
B2Second family at quadrature nodes
qrQuadrature rule used for evaluation
nrowsNumber of rows of the matrix (nb of members of first family to consider)
ncolsNumber of rows of the matrix (nn of members of second family to consider)
symOptional. "sym" to indicate that the matrix is symmetric (B1=B2)

◆ compute_gram_matrix() [2/9]

Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< double, 2 > &  B1,
const boost::multi_array< double, 2 > &  B2,
const QuadratureRule qr,
const std::string  sym = "nonsym" 
)

Compute the Gram-like matrix given the evaluation of two families of functions at quadrature nodes. Consists in calling the double-valued version with nrows = nb of elements in B1, ncols = nb of elements in B2

Parameters
B1First family at quadrature nodes
B2Second family at quadrature nodes
qrQuadrature rule used for evaluation
symOptional. "sym" to indicate that the matrix is symmetric (B1=B2)

◆ compute_gram_matrix() [3/9]

template<typename FunctionValue >
Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< FunctionValue, 2 > &  B,
const QuadratureRule qr 
)
inline

Compute the Gram matrix given the evaluation of one family of functions at quadrature nodes. Consists in calling the generic templated version with B1=B2.

Parameters
BFamily at quadrature nodes
qrQuadrature rule used for evaluation

◆ compute_gram_matrix() [4/9]

template<typename FunctionValue >
Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< FunctionValue, 2 > &  B1,
const boost::multi_array< FunctionValue, 2 > &  B2,
const QuadratureRule qr,
const size_t  nrows,
const size_t  ncols,
const std::string  sym = "nonsym" 
)

Compute the Gram-like matrix given the evaluation of two families of functions at quadrature nodes. This templated function is very generic, and thus not the most efficient. More efficient overloads are provided for double- or Vector3d-valued families

Parameters
B1First family at quadrature nodes
B2Second family at quadrature nodes
qrQuadrature rule used for evaluation
nrowsNumber of rows of the matrix (nb of members of first family to consider)
ncolsNumber of rows of the matrix (nn of members of second family to consider)
symOptional. "sym" to indicate that the matrix is symmetric (B1=B2)

◆ compute_gram_matrix() [5/9]

template<typename FunctionValue >
Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< FunctionValue, 2 > &  B1,
const boost::multi_array< FunctionValue, 2 > &  B2,
const QuadratureRule qr,
const std::string  sym = "nonsym" 
)

Compute the Gram-like matrix given the evaluation of two families of functions at quadrature nodes. This version calls the generic one with nrows = nb of elements in family B1 and ncols = nb of elements in family B2.

Parameters
B1First family at quadrature nodes
B2Second family at quadrature nodes
qrQuadrature rule used for evaluation
symOptional. "sym" to indicate that the matrix is symmetric (B1=B2)

◆ compute_gram_matrix() [6/9]

Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< VectorRd, 2 > &  B1,
const boost::multi_array< double, 2 > &  B2,
const QuadratureRule qr 
)

Compute the Gram-like matrix given a family of vector-valued and one of scalar-valued functions by tensorizing the latter.

Parameters
B1First family at quadrature nodes
B2Second family (to be tensorized) at quadrature nodes
qrQuadrature rule used for evaluation

◆ compute_gram_matrix() [7/9]

Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< VectorRd, 2 > &  B1,
const boost::multi_array< VectorRd, 2 > &  B2,
const QuadratureRule qr,
const size_t  nrows,
const size_t  ncols,
const std::string  sym = "nonsym" 
)

Compute the Gram-like matrix given the evaluation of two families of functions at quadrature nodes. This version is an overload for Vector3d-valued families, more efficient than the generic templated version.

Parameters
B1First family at quadrature nodes
B2Second family at quadrature nodes
qrQuadrature rule used for evaluation
nrowsOptional. Number of rows of the matrix (nb of members of first family to consider).
ncolsOptional. Number of rows of the matrix (nb of members of second family to consider).
symOptional. "sym" to indicate that the matrix is symmetric (B1=B2)

◆ compute_gram_matrix() [8/9]

Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const boost::multi_array< VectorRd, 2 > &  B1,
const boost::multi_array< VectorRd, 2 > &  B2,
const QuadratureRule qr,
const std::string  sym 
)

Compute the Gram-like matrix given the evaluation of two families of functions at quadrature nodes. Consists in calling the Vector3d-valued version with nrows = nb of elements in B1, ncols = nb of elements in B2.

Parameters
B1First family at quadrature nodes
B2Second family at quadrature nodes
qrQuadrature rule used for evaluation
symOptional. "sym" to indicate that the matrix is symmetric (B1=B2)

◆ compute_gram_matrix() [9/9]

Eigen::MatrixXd HArDCore3D::compute_gram_matrix ( const MatrixFamily< ScalarFamilyType, N > &  MatFam,
const boost::multi_array< double, 2 > &  scalar_family_quad,
const QuadratureRule qr 
)

Compute the Gram-like matrix for a MatrixFamily. This overload is more efficient than the generic function as it only computes the gram matrix of the underlying scalar family, and then creates the bloc-diagonal gram matrix of the MatrixFamily (which is indeed bloc diagonal given the choice of m_E elements in this class).

Parameters
MatFamMatrix family
scalar_family_quadvalues of the underlying scalar family at quadrature nodes
qrQuadrature rule used for evaluation

◆ compute_weighted_gram_matrix() [1/4]

template<typename T , typename U >
Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix ( const FType< U > &  f,
const BasisQuad< T > &  B1,
const BasisQuad< T > &  B2,
const QuadratureRule qr,
const std::string  sym 
)

Computes the Gram-like matrix of integrals (f phi_i, phi_j)

Parameters
fWeight function. Possible types of U are MatrixRd and double - must be compatible with T
B1First family of basis functions at quadrature nodes. Possible types of T are VectorRd and double
B2Second family of basis functions at quadrature nodes. Possible types of T are VectorRd and double
qrQuadrature rule
symArgument if matrix is symmetric to increase efficiency

◆ compute_weighted_gram_matrix() [2/4]

template<typename T , typename U >
Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix ( const FType< U > &  f,
const BasisQuad< T > &  B1,
const BasisQuad< T > &  B2,
const QuadratureRule qr,
size_t  n_rows = 0,
size_t  n_cols = 0,
const std::string  sym = "nonsym" 
)

Computes the Gram-like matrix of integrals (f phi_i, phi_j)

Parameters
fWeight function. Possible types of U are MatrixRd and double - must be compatible with T
B1First family of basis functions at quadrature nodes. Possible types of T are VectorRd and double
B2Second family of basis functions at quadrature nodes. Possible types of T are VectorRd and double
qrQuadrature rule
n_rowsOptional argument for number of functions from first family to be integrated against. Default integrates whole family
n_colsOptional argument for number of functions from second family to be integrated against. Default integrates whole family
symOptional argument if matrix is symmetric to increase efficiency

◆ compute_weighted_gram_matrix() [3/4]

Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix ( const FType< VectorRd > &  f,
const BasisQuad< double > &  B1,
const BasisQuad< VectorRd > &  B2,
const QuadratureRule qr,
size_t  n_rows,
size_t  n_cols 
)

Computes the Gram-like matrix of integrals (phi_i, f dot phi_j)

Parameters
fWeight function
B1Family of scalar basis functions at quadrature nodes
B2Family of vector basis functions at quadrature nodes
qrQuadrature rule
n_rowsOptional argument for number of functions from scalar family to be integrated against. Default integrates whole family
n_colsOptional argument for number of functions from vector family to be integrated against. Default integrates whole family

◆ compute_weighted_gram_matrix() [4/4]

Eigen::MatrixXd HArDCore3D::compute_weighted_gram_matrix ( const FType< VectorRd > &  f,
const BasisQuad< VectorRd > &  B1,
const BasisQuad< double > &  B2,
const QuadratureRule qr,
size_t  n_rows,
size_t  n_cols 
)

Computes the Gram-like matrix of integrals (f dot phi_i, phi_j)

Parameters
fWeight function
B1Family of vector basis functions at quadrature nodes
B2Family of scalar basis functions at quadrature nodes
qrQuadrature rule
n_rowsOptional argument for number of functions from vector family to be integrated against. Default integrates whole family
n_colsOptional argument for number of functions from scalar family to be integrated against. Default integrates whole family

◆ coordinates_system()

const JacobianType HArDCore3D::MonomialScalarBasisFace::coordinates_system ( ) const
inline

Return the system of coordinates (basis in rows) on the face.

◆ curl() [1/8]

MonomialScalarBasisFace::CurlValue HArDCore3D::MonomialScalarBasisFace::curl ( size_t  i,
const VectorRd &  x 
) const

Evaluate the two-dimensional curl of the i-th basis function at point x.

◆ curl() [2/8]

template<typename BasisType >
CurlValue HArDCore3D::Family< BasisType >::curl ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the curl of the i-th function at point x.

◆ curl() [3/8]

CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curl ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the curl of the i-th basis function at point x.

◆ curl() [4/8]

template<typename BasisType >
CurlValue HArDCore3D::ShiftedBasis< BasisType >::curl ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the curl of the i-th basis function at point x.

◆ curl() [5/8]

template<typename BasisType >
CurlValue HArDCore3D::RestrictedBasis< BasisType >::curl ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the curl of the i-th basis function at point x.

◆ curl() [6/8]

GolyComplBasisCell::CurlValue HArDCore3D::GolyComplBasisCell::curl ( size_t  i,
const VectorRd &  x 
) const

Evaluate the curl of the i-th basis function at point x.

◆ curl() [7/8]

template<typename BasisType >
CurlValue HArDCore3D::Family< BasisType >::curl ( size_t  i,
size_t  iqn,
const boost::multi_array< CurlValue, 2 > &  ancestor_curl_quad 
) const
inline

Evaluate the curl of the i-th function at a quadrature point iqn, knowing all the curls of ancestor basis functions at the quadrature nodes (provided by eval_quad)

◆ curl() [8/8]

CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curl ( size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_gradient_quad 
) const
inline

Evaluate the curl 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)

◆ CurlBasis()

template<typename BasisType >
HArDCore3D::CurlBasis< BasisType >::CurlBasis ( const BasisType basis)
inline

Constructor.

◆ curlcurl() [1/3]

CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curlcurl ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the curl curl of the i-th basis function at point x. We use the formula curl curl = - Laplace + grad div.

◆ curlcurl() [2/3]

CurlValue HArDCore3D::TangentFamily< ScalarFamilyType >::curlcurl ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the curl curl of the i-th basis function at point x.

◆ curlcurl() [3/3]

CurlValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::curlcurl ( size_t  i,
size_t  iqn,
const boost::multi_array< typename ScalarFamilyType::HessianValue, 2 > &  ancestor_hessian_quad 
) const
inline

Evaluate the curl curl of the i-th basis function at a quadrature point iqn, knowing all the values of the Hessian of ancestor basis functions at the quadrature nodes (provided by eval_quad)

◆ DecomposePoly() [1/2]

template<typename BasisType >
HArDCore3D::DecomposePoly< BasisType >::DecomposePoly ( const Cell &  T,
const BasisType basis 
)
inline

Constructor for cell.

Parameters
TCell on which the polynomial functions are defined
basisBasis for face polynomials

◆ DecomposePoly() [2/2]

template<typename BasisType >
HArDCore3D::DecomposePoly< BasisType >::DecomposePoly ( const Face &  F,
const BasisType basis 
)
inline

Constructor for face.

The basis provided here must be of same rank (scalar, vector) as the polynomials to decompose, and of course of degree equal to or higher to those. The polynomials are decomposed on this basis. The method seems much more stable if we start from a straight monomial basis (possibly vectorialised, but not a family of some basis).

Parameters
FFace on which the polynomial functions are defined
basisBasis for face polynomials

◆ dimension() [1/16]

size_t HArDCore3D::MonomialScalarBasisCell::dimension ( ) const
inline

Compute the dimension of the basis.

◆ dimension() [2/16]

size_t HArDCore3D::MonomialScalarBasisFace::dimension ( ) const
inline

Dimension of the basis.

◆ dimension() [3/16]

size_t HArDCore3D::MonomialScalarBasisEdge::dimension ( ) const
inline

Dimension of the basis.

◆ dimension() [4/16]

template<typename BasisType >
size_t HArDCore3D::Family< BasisType >::dimension ( ) const
inline

Dimension of the family. This is actually the number of functions in the family, not necessarily linearly independent.

◆ dimension() [5/16]

Return the dimension of the family.

◆ dimension() [6/16]

size_t HArDCore3D::MatrixFamily< ScalarFamilyType, N >::dimension ( ) const
inline

Return the dimension of the family.

◆ dimension() [7/16]

size_t HArDCore3D::TangentFamily< ScalarFamilyType >::dimension ( ) const
inline

Return the dimension of the family.

◆ dimension() [8/16]

template<typename BasisType >
size_t HArDCore3D::ShiftedBasis< BasisType >::dimension ( ) const
inline

Return the dimension of the basis.

◆ dimension() [9/16]

template<typename BasisType >
size_t HArDCore3D::RestrictedBasis< BasisType >::dimension ( ) const
inline

Return the dimension of the basis.

◆ dimension() [10/16]

template<typename BasisType >
size_t HArDCore3D::GradientBasis< BasisType >::dimension ( ) const
inline

Compute the dimension of the basis.

◆ dimension() [11/16]

template<typename BasisType >
size_t HArDCore3D::CurlBasis< BasisType >::dimension ( ) const
inline

Compute the dimension of the basis.

◆ dimension() [12/16]

template<typename BasisType >
size_t HArDCore3D::DivergenceBasis< BasisType >::dimension ( ) const
inline

Compute the dimension of the basis.

◆ dimension() [13/16]

size_t HArDCore3D::RolyComplBasisCell::dimension ( ) const
inline

Compute the dimension of the basis.

◆ dimension() [14/16]

size_t HArDCore3D::GolyComplBasisCell::dimension ( ) const
inline

Compute the dimension of the basis.

◆ dimension() [15/16]

size_t HArDCore3D::RolyComplBasisFace::dimension ( ) const
inline

Dimension of the basis.

◆ dimension() [16/16]

size_t HArDCore3D::GolyComplBasisFace::dimension ( ) const
inline

Dimension of the basis.

◆ dimPkmo()

size_t HArDCore3D::GolyComplBasisCell::dimPkmo ( ) const
inline

Returns the dimension of P^{k-1}(R^3)

◆ divergence() [1/11]

template<typename BasisType >
DivergenceValue HArDCore3D::Family< BasisType >::divergence ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the divergence of the i-th function at point x.

◆ divergence() [2/11]

DivergenceValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::divergence ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the divergence of the i-th basis function at point x.

◆ divergence() [3/11]

DivergenceValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::divergence ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the divergence of the i-th basis function at point x.

◆ divergence() [4/11]

DivergenceValue HArDCore3D::TangentFamily< ScalarFamilyType >::divergence ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the divergence of the i-th basis function at point x.

◆ divergence() [5/11]

template<typename BasisType >
DivergenceValue HArDCore3D::ShiftedBasis< BasisType >::divergence ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the divergence of the i-th basis function at point x.

◆ divergence() [6/11]

template<typename BasisType >
DivergenceValue HArDCore3D::RestrictedBasis< BasisType >::divergence ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the divergence of the i-th basis function at point x.

◆ divergence() [7/11]

RolyComplBasisCell::DivergenceValue HArDCore3D::RolyComplBasisCell::divergence ( size_t  i,
const VectorRd &  x 
) const

Evaluate the divergence of the i-th basis function at point x.

◆ divergence() [8/11]

RolyComplBasisFace::DivergenceValue HArDCore3D::RolyComplBasisFace::divergence ( size_t  i,
const VectorRd &  x 
) const

Evaluate the divergence of the i-th basis function at point x.

◆ divergence() [9/11]

template<typename BasisType >
DivergenceValue HArDCore3D::Family< BasisType >::divergence ( size_t  i,
size_t  iqn,
const boost::multi_array< DivergenceValue, 2 > &  ancestor_divergence_quad 
) const
inline

Evaluate the divergence of the i-th function at a quadrature point iqn, knowing all the divergences of ancestor basis functions at the quadrature nodes (provided by eval_quad)

◆ divergence() [10/11]

DivergenceValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::divergence ( size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_gradient_quad 
) const
inline

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)

◆ divergence() [11/11]

DivergenceValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::divergence ( size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_gradient_quad 
) const
inline

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)

◆ DivergenceBasis()

template<typename BasisType >
HArDCore3D::DivergenceBasis< BasisType >::DivergenceBasis ( const BasisType basis)
inline

Constructor.

◆ evaluate() [1/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Function >::evaluate ( const BasisType basis,
size_t  i,
const VectorRd &  x 
)
inlinestatic

◆ evaluate() [2/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Gradient >::evaluate ( const BasisType basis,
size_t  i,
const VectorRd &  x 
)
inlinestatic

◆ evaluate() [3/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Curl >::evaluate ( const BasisType basis,
size_t  i,
const VectorRd &  x 
)
inlinestatic

◆ evaluate() [4/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Divergence >::evaluate ( const BasisType basis,
size_t  i,
const VectorRd &  x 
)
inlinestatic

◆ evaluate() [5/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Hessian >::evaluate ( const BasisType basis,
size_t  i,
const VectorRd &  x 
)
inlinestatic

◆ evaluate() [6/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, CurlCurl >::evaluate ( const BasisType basis,
size_t  i,
const VectorRd &  x 
)
inlinestatic

◆ evaluate() [7/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Curl >::evaluate ( const BasisType basis,
size_t  i,
size_t  iqn,
const boost::multi_array< ReturnValue, 2 > &  ancestor_curl_quad 
)
inlinestatic

◆ evaluate() [8/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, CurlCurl >::evaluate ( const BasisType basis,
size_t  i,
size_t  iqn,
const boost::multi_array< ReturnValue, 2 > &  ancestor_curlcurl_quad 
)
inlinestatic

◆ evaluate() [9/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Divergence >::evaluate ( const BasisType basis,
size_t  i,
size_t  iqn,
const boost::multi_array< ReturnValue, 2 > &  ancestor_divergence_quad 
)
inlinestatic

◆ evaluate() [10/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Gradient >::evaluate ( const BasisType basis,
size_t  i,
size_t  iqn,
const boost::multi_array< ReturnValue, 2 > &  ancestor_gradient_quad 
)
inlinestatic

◆ evaluate() [11/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Hessian >::evaluate ( const BasisType basis,
size_t  i,
size_t  iqn,
const boost::multi_array< ReturnValue, 2 > &  ancestor_hessian_quad 
)
inlinestatic

◆ evaluate() [12/26]

template<typename BasisType >
static ReturnValue HArDCore3D::detail::basis_evaluation_traits< BasisType, Function >::evaluate ( const BasisType basis,
size_t  i,
size_t  iqn,
const boost::multi_array< ReturnValue, 2 > &  ancestor_value_quad 
)
inlinestatic

◆ evaluate() [13/26]

◆ evaluate() [14/26]

◆ evaluate() [15/26]

static ReturnValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Function >::evaluate ( const MatrixFamily< ScalarBasisType, N > &  basis,
size_t  i,
size_t  iqn,
const boost::multi_array< double, 2 > &  ancestor_basis_quad 
)
inlinestatic

◆ evaluate() [16/26]

static ReturnValue HArDCore3D::detail::basis_evaluation_traits< MatrixFamily< ScalarBasisType, N >, Divergence >::evaluate ( const MatrixFamily< ScalarBasisType, N > &  basis,
size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_basis_quad 
)
inlinestatic

◆ evaluate() [17/26]

◆ evaluate() [18/26]

◆ evaluate() [19/26]

◆ evaluate() [20/26]

◆ evaluate() [21/26]

◆ evaluate() [22/26]

static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Function >::evaluate ( const TensorizedVectorFamily< ScalarBasisType, N > &  basis,
size_t  i,
size_t  iqn,
const boost::multi_array< double, 2 > &  ancestor_basis_quad 
)
inlinestatic

◆ evaluate() [23/26]

static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, CurlCurl >::evaluate ( const TensorizedVectorFamily< ScalarBasisType, N > &  basis,
size_t  i,
size_t  iqn,
const boost::multi_array< MatrixRd, 2 > &  ancestor_basis_quad 
)
inlinestatic

◆ evaluate() [24/26]

static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Gradient >::evaluate ( const TensorizedVectorFamily< ScalarBasisType, N > &  basis,
size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_basis_quad 
)
inlinestatic

◆ evaluate() [25/26]

static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Curl >::evaluate ( const TensorizedVectorFamily< ScalarBasisType, N > &  basis,
size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_basis_quad 
)
inlinestatic

◆ evaluate() [26/26]

static ReturnValue HArDCore3D::detail::basis_evaluation_traits< TensorizedVectorFamily< ScalarBasisType, N >, Divergence >::evaluate ( const TensorizedVectorFamily< ScalarBasisType, N > &  basis,
size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_basis_quad 
)
inlinestatic

◆ family()

template<typename BasisType >
Family< BasisType > HArDCore3D::DecomposePoly< BasisType >::family ( boost::multi_array< typename BasisType::FunctionValue, 2 > &  values)
inline

Returns the decomposed polynomials as a Family of the provided basis.

Parameters
valuesValues of polynomials at the nodes (e.g. obtained via evaluate_quad)

◆ Family()

template<typename BasisType >
HArDCore3D::Family< BasisType >::Family ( const BasisType basis,
const Eigen::MatrixXd &  matrix 
)
inline

Constructor.

Parameters
basisThe basis in which the family is expressed
matrixThe coefficient matrix whose i-th line contains the coefficient of the expansion of the i-th function of the family in the basis

◆ function() [1/19]

MonomialScalarBasisCell::FunctionValue HArDCore3D::MonomialScalarBasisCell::function ( size_t  i,
const VectorRd &  x 
) const

Evaluate the i-th basis function at point x.

◆ function() [2/19]

MonomialScalarBasisFace::FunctionValue HArDCore3D::MonomialScalarBasisFace::function ( size_t  i,
const VectorRd &  x 
) const

Evaluate the i-th basis function at point x.

◆ function() [3/19]

MonomialScalarBasisEdge::FunctionValue HArDCore3D::MonomialScalarBasisEdge::function ( size_t  i,
const VectorRd &  x 
) const

Evaluate the i-th basis function at point x.

◆ function() [4/19]

template<typename BasisType >
FunctionValue HArDCore3D::Family< BasisType >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th function at point x.

◆ function() [5/19]

FunctionValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [6/19]

FunctionValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [7/19]

FunctionValue HArDCore3D::TangentFamily< ScalarFamilyType >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [8/19]

template<typename BasisType >
FunctionValue HArDCore3D::ShiftedBasis< BasisType >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [9/19]

template<typename BasisType >
FunctionValue HArDCore3D::RestrictedBasis< BasisType >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [10/19]

template<typename BasisType >
FunctionValue HArDCore3D::GradientBasis< BasisType >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [11/19]

template<typename BasisType >
FunctionValue HArDCore3D::CurlBasis< BasisType >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [12/19]

template<typename BasisType >
FunctionValue HArDCore3D::DivergenceBasis< BasisType >::function ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the i-th basis function at point x.

◆ function() [13/19]

RolyComplBasisCell::FunctionValue HArDCore3D::RolyComplBasisCell::function ( size_t  i,
const VectorRd &  x 
) const

Evaluate the i-th basis function at point x.

◆ function() [14/19]

GolyComplBasisCell::FunctionValue HArDCore3D::GolyComplBasisCell::function ( size_t  i,
const VectorRd &  x 
) const

Evaluate the i-th basis function at point x.

◆ function() [15/19]

RolyComplBasisFace::FunctionValue HArDCore3D::RolyComplBasisFace::function ( size_t  i,
const VectorRd &  x 
) const

Evaluate the i-th basis function at point x.

◆ function() [16/19]

GolyComplBasisFace::FunctionValue HArDCore3D::GolyComplBasisFace::function ( size_t  i,
const VectorRd &  x 
) const

Evaluate the i-th basis function at point x.

◆ function() [17/19]

FunctionValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::function ( size_t  i,
size_t  iqn,
const boost::multi_array< double, 2 > &  ancestor_value_quad 
) const
inline

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)

◆ function() [18/19]

FunctionValue HArDCore3D::MatrixFamily< ScalarFamilyType, N >::function ( size_t  i,
size_t  iqn,
const boost::multi_array< double, 2 > &  ancestor_value_quad 
) const
inline

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)

◆ function() [19/19]

template<typename BasisType >
FunctionValue HArDCore3D::Family< BasisType >::function ( size_t  i,
size_t  iqn,
const boost::multi_array< FunctionValue, 2 > &  ancestor_value_quad 
) const
inline

Evaluate the i-th function at a quadrature point iqn, knowing all the values of ancestor basis functions at the quadrature nodes (provided by eval_quad)

◆ generators()

Eigen::Matrix< double, 2, dimspace > HArDCore3D::TangentFamily< ScalarFamilyType >::generators ( ) const
inline

Returns the generators of the basis functions.

◆ GenericTensorization()

Family< TensorizedVectorFamily< ScalarBasisType, N > > HArDCore3D::GenericTensorization ( const ScalarBasisType B,
const std::vector< Eigen::VectorXd > &  v 
)

From a scalar family B=(B_1..B_r) and vectors (v_1..v_k) in R^N, constructs a "Family" of "TensorizedVectorFamily" (built on B, of size N) that represents the family (B_1v_1..B_rv_1 B_1v_2...B_rv_2...B_1v_k...B_rv_k).

Useful to tensorized scalar family while controlling the directions of tensorization (e.g. to identify tangential and normal directions along a surface, etc.). If B and v are orthonormal, then so is the returned family of tensorized basis.

Parameters
vThe scalar family The vectors for tensorization

◆ get_nodes()

template<typename BasisType >
QuadratureRule HArDCore3D::DecomposePoly< BasisType >::get_nodes ( ) const
inline

Return the set of nodes (useful to compute value of polynomial to decompose via evaluate_quad)

◆ GolyComplBasisCell()

HArDCore3D::GolyComplBasisCell::GolyComplBasisCell ( const Cell &  T,
size_t  degree 
)

Constructor.

Parameters
TA mesh cell
degreeThe maximum polynomial degree to be considered

◆ GolyComplBasisFace()

HArDCore3D::GolyComplBasisFace::GolyComplBasisFace ( const Face &  F,
size_t  degree 
)

Constructor.

Parameters
FA mesh face
degreeThe maximum polynomial degree to be considered

◆ gradient() [1/9]

MonomialScalarBasisCell::GradientValue HArDCore3D::MonomialScalarBasisCell::gradient ( size_t  i,
const VectorRd &  x 
) const

Evaluate the gradient of the i-th basis function at point x.

◆ gradient() [2/9]

MonomialScalarBasisFace::GradientValue HArDCore3D::MonomialScalarBasisFace::gradient ( size_t  i,
const VectorRd &  x 
) const

Evaluate the gradient of the i-th basis function at point x.

◆ gradient() [3/9]

MonomialScalarBasisEdge::GradientValue HArDCore3D::MonomialScalarBasisEdge::gradient ( size_t  i,
const VectorRd &  x 
) const

Evaluate the gradient of the i-th basis function at point x.

◆ gradient() [4/9]

template<typename BasisType >
GradientValue HArDCore3D::Family< BasisType >::gradient ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the gradient of the i-th function at point x.

◆ gradient() [5/9]

GradientValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::gradient ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the gradient of the i-th basis function at point x.

◆ gradient() [6/9]

template<typename BasisType >
GradientValue HArDCore3D::ShiftedBasis< BasisType >::gradient ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the gradient of the i-th basis function at point x.

◆ gradient() [7/9]

template<typename BasisType >
GradientValue HArDCore3D::RestrictedBasis< BasisType >::gradient ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the gradient of the i-th basis function at point x.

◆ gradient() [8/9]

template<typename BasisType >
GradientValue HArDCore3D::Family< BasisType >::gradient ( size_t  i,
size_t  iqn,
const boost::multi_array< GradientValue, 2 > &  ancestor_gradient_quad 
) const
inline

Evaluate the gradient of the i-th function at a quadrature point iqn, knowing all the gradients of ancestor basis functions at the quadrature nodes (provided by eval_quad)

◆ gradient() [9/9]

GradientValue HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::gradient ( size_t  i,
size_t  iqn,
const boost::multi_array< VectorRd, 2 > &  ancestor_gradient_quad 
) const
inline

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)

◆ GradientBasis()

template<typename BasisType >
HArDCore3D::GradientBasis< BasisType >::GradientBasis ( const BasisType basis)
inline

Constructor.

◆ gram_schmidt()

template<typename T >
Eigen::MatrixXd HArDCore3D::gram_schmidt ( boost::multi_array< T, 2 > &  basis_eval,
const std::function< double(size_t, size_t)> &  inner_product 
)

Gram-Schmidt algorithm to ortonormalize a basis. The matrix \(M\) returned by this function gives the coefficients in the original basis of the orthonormalised basis. If \((f_1,...,f_r)\) is the original basis, the orthonormalised basis is \((\phi_1,...,\phi_r)\) where \(\phi_i = \sum_j M_{ij}f_j\).

The function also modifies the variable basis_eval so that it contains the evaluation on at quadrature nodes of the new orthonormalised basis.

Parameters
basis_evalEvaluations at quadrature nodes of the original basis.
inner_productinner product (of two original basis functions) with respect to which we orthonormalise. This inner product must only depend on the basis functions through their values basis_eval.

◆ hessian() [1/6]

MonomialScalarBasisCell::HessianValue HArDCore3D::MonomialScalarBasisCell::hessian ( size_t  i,
const VectorRd &  x 
) const

Evaluate the hessian of the i-th basis function at point x.

◆ hessian() [2/6]

MonomialScalarBasisFace::HessianValue HArDCore3D::MonomialScalarBasisFace::hessian ( size_t  i,
const VectorRd &  x 
) const

Evaluate the Hessian of the i-th basis function at point x.

◆ hessian() [3/6]

template<typename BasisType >
HessianValue HArDCore3D::Family< BasisType >::hessian ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the hessian of the i-th function at point x.

◆ hessian() [4/6]

template<typename BasisType >
HessianValue HArDCore3D::ShiftedBasis< BasisType >::hessian ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the hessian of the i-th basis function at point x.

◆ hessian() [5/6]

template<typename BasisType >
HessianValue HArDCore3D::RestrictedBasis< BasisType >::hessian ( size_t  i,
const VectorRd &  x 
) const
inline

Evaluate the hessian of the i-th basis function at point x.

◆ hessian() [6/6]

template<typename BasisType >
HessianValue HArDCore3D::Family< BasisType >::hessian ( size_t  i,
size_t  iqn,
const boost::multi_array< HessianValue, 2 > &  ancestor_hessian_quad 
) const
inline

Evaluate the hessian of the i-th function at a quadrature point iqn, knowing all the hessian of ancestor basis functions at the quadrature nodes (provided by eval_quad)

◆ homogeneous() [1/2]

static std::vector< VectorZd > HArDCore3D::MonomialPowers< Cell >::homogeneous ( const size_t  L)
inlinestatic

◆ homogeneous() [2/2]

static std::vector< Eigen::Vector2i > HArDCore3D::MonomialPowers< Face >::homogeneous ( const size_t  L)
inlinestatic

◆ integrate()

template<typename T >
Eigen::VectorXd HArDCore3D::integrate ( const FType< T > &  f,
const BasisQuad< T > &  B,
const QuadratureRule qr,
size_t  n_rows = 0 
)

Computes the vector of integrals (f, phi_i)

Parameters
fFunction to be integrated. T is any type that has a scalar_product
BFamily of basis functions at quadrature nodes. Possible types of T are double and VectorRd
qrQuadrature rule
n_rowsOptional argument for number of basis functions to be integrated. Default integrates all in the family.

◆ IsotropicMatrixFamily()

Family< MatrixFamily< ScalarBasisType, N > > HArDCore3D::IsotropicMatrixFamily ( const ScalarBasisType B)

From a scalar family B, constructs a "Family" of "MatrixFamily" (built on B, of size NxN) that represents the family B Id on the MatrixFamily.

Useful, e.g., to compute Gram matrices involving traces, by writing tr(G) B = G : B Id and computing the Gram matrix of G with the output of this function.

Parameters
BThe scalar family

◆ jacobian() [1/2]

const JacobianType & HArDCore3D::MonomialScalarBasisFace::jacobian ( ) const
inline

Return the Jacobian of the coordinate system transformation.

◆ jacobian() [2/2]

const JacobianType & HArDCore3D::RolyComplBasisFace::jacobian ( ) const
inline

Return the Jacobian of the coordinate system transformation.

◆ l2_orthonormalize() [1/2]

template<typename BasisType >
Family< BasisType > HArDCore3D::l2_orthonormalize ( const BasisType basis,
const Eigen::MatrixXd &  GM 
)

\(L^2\)-orthonormalization: when the Gram Matrix is passed, we use Cholesky.

Parameters
basisbasis to orthonormalise
GMGram matrix of the basis

◆ l2_orthonormalize() [2/2]

template<typename BasisType >
Family< BasisType > HArDCore3D::l2_orthonormalize ( const BasisType basis,
const QuadratureRule qr,
boost::multi_array< typename BasisType::FunctionValue, 2 > &  basis_quad 
)

\(L^2\)-orthonormalization: simply consists in using gram_schmidt() with the specific l2 inner product

Parameters
basisbasis to orthonormalise
qrquadrature rule for computing the l2 inner product
basis_quadvalues of basis functions at quadrature nodes

◆ l2_projection()

template<typename BasisType >
Eigen::VectorXd HArDCore3D::l2_projection ( const std::function< typename BasisType::FunctionValue(const VectorRd &)> &  f,
const BasisType basis,
QuadratureRule quad,
const boost::multi_array< typename BasisType::FunctionValue, 2 > &  basis_quad,
const Eigen::MatrixXd &  mass_basis = Eigen::MatrixXd::Zero(1,1) 
)

Compute the L2-projection of a function.

Parameters
fFunction to project
basisBasis for the space on which we project
quadQuadrature rule
basis_quadEvaluation of the basis at quadrature nodes
mass_basisOptional: the mass matrix of the basis, if previously calculated

◆ matrix()

template<typename BasisType >
const Eigen::MatrixXd & HArDCore3D::Family< BasisType >::matrix ( ) const
inline

Return the coefficient matrix.

◆ MatrixFamily()

HArDCore3D::MatrixFamily< ScalarFamilyType, N >::MatrixFamily ( const ScalarFamilyType scalar_family)
inline

◆ matrixSize()

const size_t HArDCore3D::MatrixFamily< ScalarFamilyType, N >::matrixSize ( ) const
inline

Return the dimension of the matrices in the family.

◆ max_degree() [1/11]

size_t HArDCore3D::MonomialScalarBasisCell::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [2/11]

size_t HArDCore3D::MonomialScalarBasisFace::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [3/11]

size_t HArDCore3D::MonomialScalarBasisEdge::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [4/11]

template<typename BasisType >
size_t HArDCore3D::Family< BasisType >::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [5/11]

Returns the maximum degree of the basis functions.

◆ max_degree() [6/11]

size_t HArDCore3D::TangentFamily< ScalarFamilyType >::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [7/11]

template<typename BasisType >
size_t HArDCore3D::ShiftedBasis< BasisType >::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [8/11]

template<typename BasisType >
size_t HArDCore3D::RestrictedBasis< BasisType >::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [9/11]

size_t HArDCore3D::RolyComplBasisCell::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [10/11]

size_t HArDCore3D::GolyComplBasisCell::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ max_degree() [11/11]

size_t HArDCore3D::RolyComplBasisFace::max_degree ( ) const
inline

Returns the maximum degree of the basis functions.

◆ MonomialScalarBasisCell()

HArDCore3D::MonomialScalarBasisCell::MonomialScalarBasisCell ( const Cell &  T,
size_t  degree 
)

Constructor.

Parameters
TA mesh cell
degreeThe maximum polynomial degree to be considered

◆ MonomialScalarBasisEdge()

HArDCore3D::MonomialScalarBasisEdge::MonomialScalarBasisEdge ( const Edge &  E,
size_t  degree 
)

Constructor.

Parameters
EA mesh edge
degreeThe maximum polynomial degree to be considered

◆ MonomialScalarBasisFace()

HArDCore3D::MonomialScalarBasisFace::MonomialScalarBasisFace ( const Face &  F,
size_t  degree 
)

Constructor.

Parameters
FA mesh face
degreeThe maximum polynomial degree to be considered

◆ normal() [1/2]

const VectorRd & HArDCore3D::MonomialScalarBasisFace::normal ( ) const
inline

Return the normal to the face used in the computation of the curl.

◆ normal() [2/2]

const VectorRd & HArDCore3D::GolyComplBasisFace::normal ( ) const
inline

Return the normal to the face used in the computation of the curl.

◆ PermuteTensorization()

Eigen::MatrixXd HArDCore3D::PermuteTensorization ( const size_t  a,
const size_t  b 
)

Returns the matrix giving the permutation of the tensorization of a family of size a with a family of size b.

For \((e_i)_{i=1..a}\) and \((f_i)_{i=1..b}\) two families, define \((e\otimes f)\) as the family \((e\otimes f)_{l=1..ab}=(e_1\otimes f_1,\ldots,e_a\otimes f_1,e_1\otimes f_2,\ldots)\). Then this function returns the permutation matrix \(M\) such that \(M_{lk}=1\) if and only if \((e\otimes f)_l\) and \((f\otimes e)_k\) correspond to the same \(e_i\) and \(f_j\).
If we consider the tensor product as "symmetric" (the order does not count, that is, \(e_if_j=f_je_i\)), and \(e\) and \(f\) as bases of \(E\) and \(F\), then \((e\otimes f)\) and \((f\otimes e)\) are just two different ways of creating a basis of the tensor space \(E\otimes F\) by incrementing first either the indices of \(e\) or \(f\). Then \(M\) is the matrix that expresses the family \((f\otimes e)\) on the family \((e\otimes f)\): \((f\otimes e)_l = \sum_k M_{lk}(e\otimes f)_k\). In that interpretation, \(M\) is actually the change-of-basis matrix from \((e\otimes f)\) to \((f\otimes e)\), that is, if \(X\) are the coordinates of some vector in \((f\otimes e)\) then \(MX\) are the coordinates of that vector in \((e\otimes f)\).

Parameters
aSize of the first family \(e\) in the tensor product
bSize of the second family \(f\) in the tensor product

◆ powers() [1/5]

VectorZd HArDCore3D::MonomialScalarBasisCell::powers ( size_t  i) const
inline

Returns the powers of the i-th basis function (its degree can be found using powers(i).sum())

◆ powers() [2/5]

Eigen::Vector2i HArDCore3D::MonomialScalarBasisFace::powers ( size_t  i) const
inline

Returns the powers of the i-th basis function (its degree can be found using powers(i).sum())

◆ powers() [3/5]

VectorZd HArDCore3D::RolyComplBasisCell::powers ( size_t  i) const
inline

Returns the powers of the i-th basis function (not including the vector part)

◆ powers() [4/5]

VectorZd HArDCore3D::GolyComplBasisCell::powers ( size_t  i) const
inline

Returns the powers of the i-th basis function (not including the vector part)

◆ powers() [5/5]

Eigen::Vector2i HArDCore3D::RolyComplBasisFace::powers ( size_t  i) const
inline

Returns the powers of the i-th basis function.

◆ rck()

const std::shared_ptr< RolyComplBasisFace > & HArDCore3D::GolyComplBasisFace::rck ( ) const
inline

Return the Rck basis.

◆ RestrictedBasis()

template<typename BasisType >
HArDCore3D::RestrictedBasis< BasisType >::RestrictedBasis ( const BasisType basis,
const size_t dimension 
)
inline

Constructor.

Parameters
basisA basis
dimensionThe dimension of the restricted basis

◆ RolyComplBasisCell()

HArDCore3D::RolyComplBasisCell::RolyComplBasisCell ( const Cell &  T,
size_t  degree 
)

Constructor.

Parameters
TA mesh cell
degreeThe maximum polynomial degree to be considered

◆ RolyComplBasisFace()

HArDCore3D::RolyComplBasisFace::RolyComplBasisFace ( const Face &  F,
size_t  degree 
)

Constructor.

Parameters
FA mesh face
degreeThe maximum polynomial degree to be considered

◆ scalar_product() [1/5]

template<typename Value >
boost::multi_array< double, 2 > HArDCore3D::scalar_product ( const boost::multi_array< Value, 2 > &  basis_quad,
const Value v 
)

This overloading of the scalar_product function computes the scalar product between an evaluation of a basis and a constant value; both basis values and constant value must be of type Value.

Parameters
basis_quadThe basis evaluation
vThe vector to take the scalar product with

◆ scalar_product() [2/5]

double HArDCore3D::scalar_product ( const double x,
const double y 
)

Scalar product between two reals.

◆ scalar_product() [3/5]

double HArDCore3D::scalar_product ( const double x,
const Eigen::Matrix< double, 1, 1 > &  y 
)

Scalar product between one real and one 1-dimension Eigen vector.

◆ scalar_product() [4/5]

template<int N>
double HArDCore3D::scalar_product ( const Eigen::Matrix< double, N, N > &  x,
const Eigen::Matrix< double, N, N > &  y 
)

Scalar product between two matrices.

◆ scalar_product() [5/5]

double HArDCore3D::scalar_product ( const VectorRd &  x,
const VectorRd &  y 
)

Scalar product between two vectors.

◆ ScalarRotFamily()

DivergenceBasis< TangentFamily< ScalarFamilyType > > HArDCore3D::ScalarRotFamily ( const TangentFamily< ScalarFamilyType > &  tangent_family,
const Face &  F 
)

The following function creates the "scalar rot" basis of a TangentFamily on a face.

◆ shift()

template<typename BasisType >
size_t HArDCore3D::ShiftedBasis< BasisType >::shift ( ) const
inline

Return the shift.

◆ ShiftedBasis()

template<typename BasisType >
HArDCore3D::ShiftedBasis< BasisType >::ShiftedBasis ( const BasisType basis,
const int  shift 
)
inline

Constructor.

Parameters
basisA basis
shiftThe shift

◆ symmetricBasis()

const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::symmetricBasis ( ) const
inline

Returns the matrix that can be used, in a Family of this MatrixBasis, to create a basis of the subspace of symmetric matrices.

◆ symmetriseOperator()

const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::symmetriseOperator ( ) const
inline

Return the symmetrisation operator, the rN^2 square matrix that to a given vector of coefficients on the Matrix family associates the vector of coefficients corresponding to the symmetrised matrix.

◆ TangentFamily()

HArDCore3D::TangentFamily< ScalarFamilyType >::TangentFamily ( const ScalarFamilyType scalar_family,
const Eigen::Matrix< double, 2, dimspace > &  generators 
)
inline

Constructor.

Parameters
scalar_familyA basis for the scalar space
generatorsTwo generators of the plane

◆ TensorizedVectorFamily()

HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::TensorizedVectorFamily ( const ScalarFamilyType scalar_family)
inline

◆ traceOperator()

const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::traceOperator ( ) const
inline

Returns the matrix corresponding to the trace, expressed as a linear operator between that MatrixFamily and the underlying scalar family.

Tr_{kl} is the coefficient on f_k (scalar family) of the l-th element of the Matrix family.

◆ transform_values_quad()

template<typename outValue , typename inValue , typename FunctionType >
boost::multi_array< outValue, 2 > HArDCore3D::transform_values_quad ( const boost::multi_array< inValue, 2 > &  B_quad,
const FunctionType &  F 
)

Takes an array B_quad of values at quadrature nodes and applies the function F to all of them. F must take inValue and return outValue. The function must be called with outValue as template argument: transform_values_quad<outValue>(...)

Parameters
B_quadEvaluations to be transformed
FTransformation

◆ transposeOperator()

const Eigen::MatrixXd HArDCore3D::MatrixFamily< ScalarFamilyType, N >::transposeOperator ( ) const
inline

Return the transpose operator, the rN^2 square matrix that to a given vector of coefficients on the Matrix family associates the vector of coefficients corresponding to the transpose.

◆ vector_product()

boost::multi_array< VectorRd, 2 > HArDCore3D::vector_product ( const boost::multi_array< VectorRd, 2 > &  basis_quad,
const VectorRd &  v 
)

Compute the vector (cross) product between the evaluation of a basis and a constant vector.

Parameters
basis_quadThe basis evaluation
vThe vector to take the vector product with

Variable Documentation

◆ AncestorBasisFunction [1/7]

◆ AncestorBasisFunction [2/7]

◆ AncestorBasisFunction [3/7]

◆ AncestorBasisFunction [4/7]

◆ AncestorBasisFunction [5/7]

◆ AncestorBasisFunction [6/7]

◆ AncestorBasisFunction [7/7]

◆ basisRd

const std::vector<VectorRd> HArDCore3D::basisRd = { VectorRd(1., 0., 0.), VectorRd(0., 1., 0.), VectorRd(0., 0., 1.) }
static

◆ dimspace

constexpr int HArDCore3D::dimspace = 3
constexpr

Dimension, and generic types for vector in correct dimension (makes it easier to translate a code between 2D and 3D)

◆ hasAncestor [1/16]

constexpr const bool HArDCore3D::MonomialScalarBasisCell::hasAncestor = false
staticconstexpr

◆ hasAncestor [2/16]

constexpr const bool HArDCore3D::MonomialScalarBasisFace::hasAncestor = false
staticconstexpr

◆ hasAncestor [3/16]

constexpr const bool HArDCore3D::MonomialScalarBasisEdge::hasAncestor = false
staticconstexpr

◆ hasAncestor [4/16]

template<typename BasisType >
constexpr const bool HArDCore3D::Family< BasisType >::hasAncestor = true
staticconstexpr

◆ hasAncestor [5/16]

◆ hasAncestor [6/16]

◆ hasAncestor [7/16]

◆ hasAncestor [8/16]

template<typename BasisType >
constexpr const bool HArDCore3D::ShiftedBasis< BasisType >::hasAncestor = true
staticconstexpr

◆ hasAncestor [9/16]

template<typename BasisType >
constexpr const bool HArDCore3D::RestrictedBasis< BasisType >::hasAncestor = true
staticconstexpr

◆ hasAncestor [10/16]

template<typename BasisType >
constexpr const bool HArDCore3D::GradientBasis< BasisType >::hasAncestor = true
staticconstexpr

◆ hasAncestor [11/16]

template<typename BasisType >
constexpr const bool HArDCore3D::CurlBasis< BasisType >::hasAncestor = true
staticconstexpr

◆ hasAncestor [12/16]

template<typename BasisType >
constexpr const bool HArDCore3D::DivergenceBasis< BasisType >::hasAncestor = true
staticconstexpr

◆ hasAncestor [13/16]

constexpr const bool HArDCore3D::RolyComplBasisCell::hasAncestor = false
staticconstexpr

◆ hasAncestor [14/16]

constexpr const bool HArDCore3D::GolyComplBasisCell::hasAncestor = false
staticconstexpr

◆ hasAncestor [15/16]

constexpr const bool HArDCore3D::RolyComplBasisFace::hasAncestor = false
staticconstexpr

◆ hasAncestor [16/16]

constexpr const bool HArDCore3D::GolyComplBasisFace::hasAncestor = false
staticconstexpr

◆ hasCurl [1/16]

const bool HArDCore3D::MonomialScalarBasisCell::hasCurl = false
static

◆ hasCurl [2/16]

const bool HArDCore3D::MonomialScalarBasisFace::hasCurl = true
static

◆ hasCurl [3/16]

const bool HArDCore3D::MonomialScalarBasisEdge::hasCurl = false
static

◆ hasCurl [4/16]

template<typename BasisType >
const bool HArDCore3D::Family< BasisType >::hasCurl = BasisType::hasCurl
static

◆ hasCurl [5/16]

const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasCurl = (ScalarFamilyType::hasGradient && N == dimspace)
static

◆ hasCurl [6/16]

◆ hasCurl [7/16]

◆ hasCurl [8/16]

template<typename BasisType >
const bool HArDCore3D::ShiftedBasis< BasisType >::hasCurl = BasisType::hasCurl
static

◆ hasCurl [9/16]

template<typename BasisType >
const bool HArDCore3D::RestrictedBasis< BasisType >::hasCurl = BasisType::hasCurl
static

◆ hasCurl [10/16]

◆ hasCurl [11/16]

◆ hasCurl [12/16]

◆ hasCurl [13/16]

const bool HArDCore3D::RolyComplBasisCell::hasCurl = false
static

◆ hasCurl [14/16]

const bool HArDCore3D::GolyComplBasisCell::hasCurl = true
static

◆ hasCurl [15/16]

const bool HArDCore3D::RolyComplBasisFace::hasCurl = false
static

◆ hasCurl [16/16]

const bool HArDCore3D::GolyComplBasisFace::hasCurl = false
static

◆ hasCurlCurl [1/16]

const bool HArDCore3D::MonomialScalarBasisCell::hasCurlCurl = false
static

◆ hasCurlCurl [2/16]

const bool HArDCore3D::MonomialScalarBasisFace::hasCurlCurl = false
static

◆ hasCurlCurl [3/16]

const bool HArDCore3D::MonomialScalarBasisEdge::hasCurlCurl = false
static

◆ hasCurlCurl [4/16]

template<typename BasisType >
const bool HArDCore3D::Family< BasisType >::hasCurlCurl = BasisType::hasCurlCurl
static

◆ hasCurlCurl [5/16]

const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasCurlCurl = (ScalarFamilyType::hasHessian && N == dimspace)
static

◆ hasCurlCurl [6/16]

◆ hasCurlCurl [7/16]

const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasCurlCurl = ScalarFamilyType::hasHessian
static

◆ hasCurlCurl [8/16]

template<typename BasisType >
const bool HArDCore3D::ShiftedBasis< BasisType >::hasCurlCurl = BasisType::hasCurlCurl
static

◆ hasCurlCurl [9/16]

template<typename BasisType >
const bool HArDCore3D::RestrictedBasis< BasisType >::hasCurlCurl = BasisType::hasCurlCurl
static

◆ hasCurlCurl [10/16]

template<typename BasisType >
const bool HArDCore3D::GradientBasis< BasisType >::hasCurlCurl = false
static

◆ hasCurlCurl [11/16]

template<typename BasisType >
const bool HArDCore3D::CurlBasis< BasisType >::hasCurlCurl = false
static

◆ hasCurlCurl [12/16]

◆ hasCurlCurl [13/16]

const bool HArDCore3D::RolyComplBasisCell::hasCurlCurl = false
static

◆ hasCurlCurl [14/16]

const bool HArDCore3D::GolyComplBasisCell::hasCurlCurl = false
static

◆ hasCurlCurl [15/16]

const bool HArDCore3D::RolyComplBasisFace::hasCurlCurl = false
static

◆ hasCurlCurl [16/16]

const bool HArDCore3D::GolyComplBasisFace::hasCurlCurl = false
static

◆ hasDivergence [1/16]

const bool HArDCore3D::MonomialScalarBasisCell::hasDivergence = false
static

◆ hasDivergence [2/16]

const bool HArDCore3D::MonomialScalarBasisFace::hasDivergence = false
static

◆ hasDivergence [3/16]

const bool HArDCore3D::MonomialScalarBasisEdge::hasDivergence = false
static

◆ hasDivergence [4/16]

template<typename BasisType >
const bool HArDCore3D::Family< BasisType >::hasDivergence = BasisType::hasDivergence
static

◆ hasDivergence [5/16]

const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasDivergence = (ScalarFamilyType::hasGradient && N == dimspace)
static

◆ hasDivergence [6/16]

const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasDivergence = ( ScalarFamilyType::hasGradient && N==dimspace )
static

◆ hasDivergence [7/16]

const bool HArDCore3D::TangentFamily< ScalarFamilyType >::hasDivergence = ScalarFamilyType::hasGradient
static

◆ hasDivergence [8/16]

template<typename BasisType >
const bool HArDCore3D::ShiftedBasis< BasisType >::hasDivergence = BasisType::hasDivergence
static

◆ hasDivergence [9/16]

template<typename BasisType >
const bool HArDCore3D::RestrictedBasis< BasisType >::hasDivergence = BasisType::hasDivergence
static

◆ hasDivergence [10/16]

template<typename BasisType >
const bool HArDCore3D::GradientBasis< BasisType >::hasDivergence = false
static

◆ hasDivergence [11/16]

template<typename BasisType >
const bool HArDCore3D::CurlBasis< BasisType >::hasDivergence = false
static

◆ hasDivergence [12/16]

template<typename BasisType >
const bool HArDCore3D::DivergenceBasis< BasisType >::hasDivergence = false
static

◆ hasDivergence [13/16]

const bool HArDCore3D::RolyComplBasisCell::hasDivergence = true
static

◆ hasDivergence [14/16]

const bool HArDCore3D::GolyComplBasisCell::hasDivergence = false
static

◆ hasDivergence [15/16]

const bool HArDCore3D::RolyComplBasisFace::hasDivergence = true
static

◆ hasDivergence [16/16]

const bool HArDCore3D::GolyComplBasisFace::hasDivergence = false
static

◆ hasFunction [1/16]

const bool HArDCore3D::MonomialScalarBasisCell::hasFunction = true
static

◆ hasFunction [2/16]

const bool HArDCore3D::MonomialScalarBasisFace::hasFunction = true
static

◆ hasFunction [3/16]

const bool HArDCore3D::MonomialScalarBasisEdge::hasFunction = true
static

◆ hasFunction [4/16]

template<typename BasisType >
const bool HArDCore3D::Family< BasisType >::hasFunction = BasisType::hasFunction
static

◆ hasFunction [5/16]

const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasFunction = ScalarFamilyType::hasFunction
static

◆ hasFunction [6/16]

const bool HArDCore3D::MatrixFamily< ScalarFamilyType, N >::hasFunction = ScalarFamilyType::hasFunction
static

◆ hasFunction [7/16]

◆ hasFunction [8/16]

template<typename BasisType >
const bool HArDCore3D::ShiftedBasis< BasisType >::hasFunction = BasisType::hasFunction
static

◆ hasFunction [9/16]

template<typename BasisType >
const bool HArDCore3D::RestrictedBasis< BasisType >::hasFunction = BasisType::hasFunction
static

◆ hasFunction [10/16]

template<typename BasisType >
const bool HArDCore3D::GradientBasis< BasisType >::hasFunction = true
static

◆ hasFunction [11/16]

template<typename BasisType >
const bool HArDCore3D::CurlBasis< BasisType >::hasFunction = true
static

◆ hasFunction [12/16]

template<typename BasisType >
const bool HArDCore3D::DivergenceBasis< BasisType >::hasFunction = true
static

◆ hasFunction [13/16]

const bool HArDCore3D::RolyComplBasisCell::hasFunction = true
static

◆ hasFunction [14/16]

const bool HArDCore3D::GolyComplBasisCell::hasFunction = true
static

◆ hasFunction [15/16]

const bool HArDCore3D::RolyComplBasisFace::hasFunction = true
static

◆ hasFunction [16/16]

const bool HArDCore3D::GolyComplBasisFace::hasFunction = true
static

◆ hasGradient [1/16]

const bool HArDCore3D::MonomialScalarBasisCell::hasGradient = true
static

◆ hasGradient [2/16]

const bool HArDCore3D::MonomialScalarBasisFace::hasGradient = true
static

◆ hasGradient [3/16]

const bool HArDCore3D::MonomialScalarBasisEdge::hasGradient = true
static

◆ hasGradient [4/16]

template<typename BasisType >
const bool HArDCore3D::Family< BasisType >::hasGradient = BasisType::hasGradient
static

◆ hasGradient [5/16]

const bool HArDCore3D::TensorizedVectorFamily< ScalarFamilyType, N >::hasGradient = ScalarFamilyType::hasGradient
static

◆ hasGradient [6/16]

◆ hasGradient [7/16]

◆ hasGradient [8/16]

template<typename BasisType >
const bool HArDCore3D::ShiftedBasis< BasisType >::hasGradient = BasisType::hasGradient
static

◆ hasGradient [9/16]

template<typename BasisType >
const bool HArDCore3D::RestrictedBasis< BasisType >::hasGradient = BasisType::hasGradient
static

◆ hasGradient [10/16]

template<typename BasisType >
const bool HArDCore3D::GradientBasis< BasisType >::hasGradient = false
static

◆ hasGradient [11/16]

template<typename BasisType >
const bool HArDCore3D::CurlBasis< BasisType >::hasGradient = false
static

◆ hasGradient [12/16]

◆ hasGradient [13/16]

const bool HArDCore3D::RolyComplBasisCell::hasGradient = false
static

◆ hasGradient [14/16]

const bool HArDCore3D::GolyComplBasisCell::hasGradient = false
static

◆ hasGradient [15/16]

const bool HArDCore3D::RolyComplBasisFace::hasGradient = false
static

◆ hasGradient [16/16]

const bool HArDCore3D::GolyComplBasisFace::hasGradient = false
static

◆ hasHessian [1/16]

const bool HArDCore3D::MonomialScalarBasisCell::hasHessian = true
static

◆ hasHessian [2/16]

const bool HArDCore3D::MonomialScalarBasisFace::hasHessian = true
static

◆ hasHessian [3/16]

const bool HArDCore3D::MonomialScalarBasisEdge::hasHessian = false
static

◆ hasHessian [4/16]

template<typename BasisType >
const bool HArDCore3D::Family< BasisType >::hasHessian = BasisType::hasHessian
static

◆ hasHessian [5/16]

◆ hasHessian [6/16]

◆ hasHessian [7/16]

◆ hasHessian [8/16]

template<typename BasisType >
const bool HArDCore3D::ShiftedBasis< BasisType >::hasHessian = BasisType::hasHessian
static

◆ hasHessian [9/16]

template<typename BasisType >
const bool HArDCore3D::RestrictedBasis< BasisType >::hasHessian = BasisType::hasHessian
static

◆ hasHessian [10/16]

◆ hasHessian [11/16]

template<typename BasisType >
const bool HArDCore3D::CurlBasis< BasisType >::hasHessian = false
static

◆ hasHessian [12/16]

◆ hasHessian [13/16]

const bool HArDCore3D::RolyComplBasisCell::hasHessian = false
static

◆ hasHessian [14/16]

const bool HArDCore3D::GolyComplBasisCell::hasHessian = false
static

◆ hasHessian [15/16]

const bool HArDCore3D::RolyComplBasisFace::hasHessian = false
static

◆ hasHessian [16/16]

const bool HArDCore3D::GolyComplBasisFace::hasHessian = false
static

◆ m_basis

◆ m_dim

◆ m_nb_nodes

◆ m_nodes

Nodes for the interpolation.

◆ m_on_basis

◆ m_on_basis_nodes

template<typename BasisType >
boost::multi_array<typename BasisType::FunctionValue, 2> HArDCore3D::DecomposePoly< BasisType >::m_on_basis_nodes

◆ skew_symmetrise_matrix

std::function<Eigen::MatrixXd(const Eigen::MatrixXd &)> HArDCore3D::skew_symmetrise_matrix = [](const Eigen::MatrixXd & x)->Eigen::MatrixXd { return 0.5*(x-x.transpose());}
inlinestatic

Function to skew-symmetrise a matrix (useful together with transform_values_quad)

◆ symmetrise_matrix

std::function<Eigen::MatrixXd(const Eigen::MatrixXd &)> HArDCore3D::symmetrise_matrix = [](const Eigen::MatrixXd & x)->Eigen::MatrixXd { return 0.5*(x+x.transpose());}
inlinestatic

Function to symmetrise a matrix (useful together with transform_values_quad)

◆ tensorRank [1/16]

constexpr const TensorRankE HArDCore3D::MonomialScalarBasisCell::tensorRank = Scalar
staticconstexpr

◆ tensorRank [2/16]

constexpr const TensorRankE HArDCore3D::MonomialScalarBasisFace::tensorRank = Scalar
staticconstexpr

◆ tensorRank [3/16]

constexpr const TensorRankE HArDCore3D::MonomialScalarBasisEdge::tensorRank = Scalar
staticconstexpr

◆ tensorRank [4/16]

template<typename BasisType >
constexpr const TensorRankE HArDCore3D::Family< BasisType >::tensorRank = BasisType::tensorRank
staticconstexpr

◆ tensorRank [5/16]

◆ tensorRank [6/16]

◆ tensorRank [7/16]

◆ tensorRank [8/16]

template<typename BasisType >
constexpr const TensorRankE HArDCore3D::ShiftedBasis< BasisType >::tensorRank = BasisType::tensorRank
staticconstexpr

◆ tensorRank [9/16]

template<typename BasisType >
constexpr const TensorRankE HArDCore3D::RestrictedBasis< BasisType >::tensorRank = BasisType::tensorRank
staticconstexpr

◆ tensorRank [10/16]

template<typename BasisType >
constexpr const TensorRankE HArDCore3D::GradientBasis< BasisType >::tensorRank = (BasisType::tensorRank==Scalar ? Vector : Matrix)
staticconstexpr

◆ tensorRank [11/16]

template<typename BasisType >
constexpr const TensorRankE HArDCore3D::CurlBasis< BasisType >::tensorRank = Vector
staticconstexpr

◆ tensorRank [12/16]

◆ tensorRank [13/16]

constexpr const TensorRankE HArDCore3D::RolyComplBasisCell::tensorRank = Vector
staticconstexpr

◆ tensorRank [14/16]

constexpr const TensorRankE HArDCore3D::GolyComplBasisCell::tensorRank = Vector
staticconstexpr

◆ tensorRank [15/16]

constexpr const TensorRankE HArDCore3D::RolyComplBasisFace::tensorRank = Vector
staticconstexpr

◆ tensorRank [16/16]

constexpr const TensorRankE HArDCore3D::GolyComplBasisFace::tensorRank = Vector
staticconstexpr