template<size_t K>
DubinerTetrahedron class
Dubiner orthogonal modal basis on the reference tetrahedron.
| Template parameters | |
|---|---|
| K | Maximum polynomial degree. |
Provides evaluation of the Dubiner basis functions on collapsed coordinates , mapped from the reference tetrahedron with vertices .
The basis uses a Duffy-type collapse and is constructed as:
Public static functions
-
template<size_t P, size_t Q, size_t R>static void getBasis(Real& basis, Real a, Real b, Real c) constexpr
- Evaluates the Dubiner basis function .
-
template<size_t P, size_t Q, size_t R>static void getGradient(Real& dpsi_da, Real& dpsi_db, Real& dpsi_dc, Real a, Real b, Real c) constexpr
- Gets the gradient of the basis function.
-
template<size_t P, size_t Q, size_t R>static void getReferenceGradient(Real& dpsi_dx, Real& dpsi_dy, Real& dpsi_dz, Real x, Real y, Real z) constexpr
- Computes the gradient of in reference coordinates.
-
template<size_t P, size_t Q, size_t R>static void getReferenceGradientFromCollapsed(Real& dpsi_dx, Real& dpsi_dy, Real& dpsi_dz, Real a, Real b, Real c, Real s1, Real s2) constexpr
- Computes the gradient of from precomputed collapsed coordinates.
- static void getCollapsed(Real& a, Real& b, Real& c, Real x, Real y, Real z) constexpr
- Maps reference coordinates to collapsed coordinates.
Function documentation
template<size_t K>
template<size_t P, size_t Q, size_t R>
static void Rodin:: Variational:: DubinerTetrahedron<K>:: getBasis(Real& basis,
Real a,
Real b,
Real c) constexpr
Evaluates the Dubiner basis function .
| Template parameters | |
|---|---|
| P | First modal index. |
| Q | Second modal index. |
| R | Third modal index (P + Q + R ≤ K). |
| Parameters | |
| basis out | The computed basis function value. |
| a | First collapsed coordinate. |
| b | Second collapsed coordinate. |
| c | Third collapsed coordinate. |
template<size_t K>
template<size_t P, size_t Q, size_t R>
static void Rodin:: Variational:: DubinerTetrahedron<K>:: getReferenceGradient(Real& dpsi_dx,
Real& dpsi_dy,
Real& dpsi_dz,
Real x,
Real y,
Real z) constexpr
Computes the gradient of in reference coordinates.
| Template parameters | |
|---|---|
| P | First modal index. |
| Q | Second modal index. |
| R | Third modal index. |
| Parameters | |
| dpsi_dx out | Derivative with respect to . |
| dpsi_dy out | Derivative with respect to . |
| dpsi_dz out | Derivative with respect to . |
| x | First reference coordinate. |
| y | Second reference coordinate. |
| z | Third reference coordinate. |
The Duffy-coordinate factors cancel analytically before differentiation, so the returned derivative has a finite value on the collapsed edge and at the collapsed vertex.
template<size_t K>
template<size_t P, size_t Q, size_t R>
static void Rodin:: Variational:: DubinerTetrahedron<K>:: getReferenceGradientFromCollapsed(Real& dpsi_dx,
Real& dpsi_dy,
Real& dpsi_dz,
Real a,
Real b,
Real c,
Real s1,
Real s2) constexpr
Computes the gradient of from precomputed collapsed coordinates.
| Parameters | |
|---|---|
| dpsi_dx out | Derivative with respect to . |
| dpsi_dy out | Derivative with respect to . |
| dpsi_dz out | Derivative with respect to . |
| a | First collapsed coordinate. |
| b | Second collapsed coordinate. |
| c | Third collapsed coordinate. |
| s1 | Value of . |
| s2 | Value of . |
This overload avoids repeated Duffy-coordinate transformations while tabulating all modes at the same reference point.