Basix
|
Functions | |
std::vector< Eigen::ArrayXXd > | tabulate (cell::type celltype, int d, int n, const Eigen::ArrayXXd &x) |
int | dim (cell::type cell, int d) |
These are the underlying "expansion sets" for all finite elements, which when multiplied by a set of "coefficients" give the FE basis functions.
The polynomials (and their derivatives) can be tabulated on unit interval, triangle, tetrahedron, quadrilateral, hexahedron, prism and pyramids.
int basix::polyset::dim | ( | cell::type | cell, |
int | d | ||
) |
Dimension of a polynomial space
[in] | cell | The cell type |
[in] | d | The polynomial degree |
d
std::vector< Eigen::ArrayXXd > basix::polyset::tabulate | ( | cell::type | celltype, |
int | d, | ||
int | n, | ||
const Eigen::ArrayXXd & | x | ||
) |
Basis and derivatives of orthonormal polynomials on reference cell at points
Compute all derivatives up to given order. If derivatives are not required, use n=0. For example, order n=2 for a 2D cell, will compute the basis \(N, dN/dx, dN/dy, d^2N/dx^2, d^2N/dxdy, d^2N/dy^2\) in that order. For an interval cell there are (nderiv + 1) derivatives, for a 2D cell, there are (nderiv + 1)(nderiv + 2)/2 derivatives, and in 3D, there are (nderiv + 1)(nderiv + 2)(nderiv + 3)/6. The ordering is 'triangular' with the lower derivatives appearing first.
[in] | celltype | Cell type |
[in] | d | Polynomial degree |
[in] | n | Maximum derivative order. Use n = 0 for the basis only. |
[in] | x | Points at which to evaluate the basis. The shape is (number of points, geometric dimension). |