HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Basis for the space of gradients of polynomials. More...
#include <basis.hpp>
Public Types | |
typedef BasisType::GradientValue | FunctionValue |
typedef Eigen::Matrix< double, dimspace, dimspace > | GradientValue |
typedef VectorRd | CurlValue |
typedef void | DivergenceValue |
typedef void | RotorValue |
typedef void | HessianValue |
typedef BasisType::GeometricSupport | GeometricSupport |
typedef BasisType | AncestorType |
Public Member Functions | |
GradientBasis (const BasisType &basis) | |
Constructor. | |
size_t | dimension () const |
Compute the dimension of the basis. | |
FunctionValue | function (size_t i, const VectorRd &x) const |
Evaluate the i-th basis function at point x. | |
constexpr const BasisType & | ancestor () const |
Return the ancestor (basis that the gradient was taken of) | |
Static Public Attributes | |
static constexpr const TensorRankE | tensorRank = Vector |
static constexpr const bool | hasAncestor = true |
static const bool | hasFunction = true |
static const bool | hasGradient = false |
static const bool | hasCurl = false |
static const bool | hasDivergence = false |
static const bool | hasRotor = false |
static const bool | hasHessian = false |
Basis for the space of gradients of polynomials.
To construct a basis of G^k, this assumes that the scalar basis it is constructed from is an ancestor basis of P^{k+1}/P^0, space of polynomials of degree k+1 without trivial polynomial with zero gradient (e.g. polynomials with zero average, or a hierarchical basis of P^{k+1} in which we have removed the first, constant, polynomial). This can also be used to create a family of gradients (not necessarily linearly independent, if the ancestor basis is not a basis of P^{k+1}/P^0)