Tabulation Project basix
|
Functions | |
std::vector< Eigen::ArrayXXd > | tabulate (cell::type celltype, int degree, int nd, const Eigen::ArrayXXd &x) |
int | dim (cell::type cell, int n) |
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 | n | ||
) |
Dimension of a space
[in] | cell | The cell type |
[in] | n | The polynomial degree |
std::vector< Eigen::ArrayXXd > basix::polyset::tabulate | ( | cell::type | celltype, |
int | degree, | ||
int | nd, | ||
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.
celltype | Cell type |
degree | Polynomial degree |
nd | Maximum derivative order. Use nd = 0 for the basis only. |
x | Points at which to evaluate the basis. The shape is (number of points, geometric dimension). |