template<size_t K>
Rodin::Variational::DubinerTetrahedron class

Dubiner orthogonal modal basis on the reference tetrahedron.

Template parameters
K Maximum polynomial degree.

Provides evaluation of the Dubiner basis functions $ \psi_{p,q,r}(a,b,c) $ on collapsed coordinates $ (a,b,c) \in [-1,1]^3 $ , mapped from the reference tetrahedron with vertices $ (0,0,0), (1,0,0), (0,1,0), (0,0,1) $ .

The basis uses a Duffy-type collapse and is constructed as:

\[ \psi_{p,q,r}(a,b,c) = P_p^{(0,0)}(a) \cdot P_q^{(2p+1,0)}(b) \cdot P_r^{(2p+2q+2,0)}(c) \cdot \left(\frac{1-b}{2}\right)^p \cdot \left(\frac{1-c}{2}\right)^{p+q} \]

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 $ \psi_{P,Q,R}(a,b,c) $ .

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 $ \psi_{P,Q,R}(a,b,c) $ .

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.