Base type for a set of hierarchical polynomials on space of dimension >= 2.
More...
#include <ptems/spaces/hierarchicalpolynomials.hpp>
|
template<typename T > |
static T * | Polynomials (const ReferenceElement< DIM > &refElement, const Vector< DIM > &pt, T *result, std::size_t polydeg) |
| Computes the value of the first N hierarchical polynomials on the reference element, where N is the result of NumberDoFs(refElement, polydeg). More...
|
|
template<typename T > |
static FuncAndGradData< DIM, T > * | Gradient (const ReferenceElement< DIM > &refElement, const Vector< DIM > &pt, FuncAndGradData< DIM, T > *result, std::size_t polydeg) |
| Computes the value of the first N hierarchical polynomials, and their first order derivatives, on the reference element, where N is the result of NumberDoFs(refElement, polydeg). More...
|
|
template<typename T > |
static FuncGradAndHessianData< DIM, T > * | Hessian (const ReferenceElement< DIM > &refElement, const Vector< DIM > &pt, FuncGradAndHessianData< DIM, T > *result, std::size_t polydeg) |
| Computes the value of the first N hierarchical polynomials, and their first and second order derivatives, on the reference element, where N is the result of NumberDoFs(refElement, polydeg). More...
|
|
static std::vector< std::size_t > | Indices (const ReferenceElement< DIM > &refElement, std::size_t originalPolydeg, std::size_t newPolydeg) |
| Gets the indices of the subset of the basis for polynomial degree originalPolydeg which form the basis for polynomial degree newPolydeg . More...
|
|
template<typename OneDPolynomials, std::size_t DIM>
struct ptems::HierarchicalPolynomials< OneDPolynomials, DIM >
Base type for a set of hierarchical polynomials on space of dimension >= 2.
Most hierarchical polynomials are defined identically on higher dimensions based purely on their one dimensional definition. This class extracts this commonality.
- Template Parameters
-
OneDPolynomials | The type for the one dimensional polynomials |
DIM | The dimension of the polynomials |
◆ Gradient()
template<typename OneDPolynomials , std::size_t DIM>
template<typename T >
Computes the value of the first N hierarchical polynomials, and their first order derivatives, on the reference element, where N is the result of NumberDoFs(refElement, polydeg).
- Template Parameters
-
- Parameters
-
refElement | Reference element - either the reference square or triangle |
pt | The point to compute the values of the hierarchical polynomial at |
result | Array of at least NumberDoFs(refElement, polydeg) entries, to store the result into |
polydeg | The polynomial degree of the hierarchical basis functions |
- Returns
- Pointer to the entry AFTER the last basis filled (
=result+N
where N
is the number of basis functions depending on the reference element)
◆ Hessian()
template<typename OneDPolynomials , std::size_t DIM>
template<typename T >
Computes the value of the first N hierarchical polynomials, and their first and second order derivatives, on the reference element, where N is the result of NumberDoFs(refElement, polydeg).
- Template Parameters
-
- Parameters
-
refElement | Reference element - either the reference square or triangle |
pt | The point to compute the values of the hierarchical polynomial at |
result | Array of at least NumberDoFs(refElement, polydeg) entries, to store the result into |
polydeg | The polynomial degree of the hierarchical basis functions |
- Returns
- Pointer to the entry AFTER the last basis filled (
=result+N
where N
is the number of basis functions depending on the reference element)
◆ Indices()
template<typename OneDPolynomials , std::size_t DIM>
Gets the indices of the subset of the basis for polynomial degree originalPolydeg
which form the basis for polynomial degree newPolydeg
.
- Note
- For hierarchical polynomials the polynomials of order
newPolydeg
are contained within the set of polynomials of order originalPolydeg
- Exceptions
-
- Parameters
-
refElement | The reference element the bases are defined on |
originalPolydeg | The polynomial degree of the original basis |
newPolydeg | The polynomial degree of the smaller basis to get the indices of |
- Returns
- Map of indices for the smaller basis to the original larger basis index
◆ Polynomials()
template<typename OneDPolynomials , std::size_t DIM>
template<typename T >
Computes the value of the first N hierarchical polynomials on the reference element, where N is the result of NumberDoFs(refElement, polydeg).
- Template Parameters
-
- Parameters
-
refElement | Reference element |
pt | The point to compute the values of the hierarchical polynomial at |
result | Array of at least NumberDoFs(refElement, polydeg) entries, to store the result into |
polydeg | The polynomial degree of the hierarchical basis functions |
- Returns
- Pointer to the entry AFTER the last basis filled (
=result+N
where N
is the number of basis functions depending on the reference element)
The documentation for this struct was generated from the following file:
- ptems/spaces/hierarchicalpolynomials.hpp