Represents a reference tetrahedron element for nodal Discontinuous Galerkin methods. More...
#include <ref_tetrahedron.hpp>
Public Member Functions | |
| RefTetrahedron (unsigned order) | |
| Constructs a RefTetrahedron object of a specific polynomial order. | |
| xt::xarray< double > | basis_function (const xt::xarray< double > &rst, int i, int j, int k) const |
| Evaluates a 3D basis function on the reference tetrahedron. | |
| xt::xarray< double > | grad_basis_function (const xt::xarray< double > &rst, int i, int j, int k) const |
| Computes the gradient of a 3D basis function on the reference tetrahedron. | |
| Public Member Functions inherited from oiseau::dg::nodal::RefElement | |
| const xt::xarray< double > & | v () const |
| const xt::xarray< double > & | gv () const |
| const xt::xarray< double > & | d () const |
| const xt::xarray< double > & | r () const |
| unsigned | order () const |
| unsigned | number_of_nodes () const |
| unsigned | number_of_face_nodes () const |
Additional Inherited Members | |
| Protected Member Functions inherited from oiseau::dg::nodal::RefElement | |
| RefElement (unsigned order) | |
| Protected Attributes inherited from oiseau::dg::nodal::RefElement | |
| unsigned | m_order |
| unsigned | m_np {} |
| unsigned | m_nfp {} |
| xt::xarray< double > | m_v |
| xt::xarray< double > | m_gv |
| xt::xarray< double > | m_d |
| xt::xarray< double > | m_r |
Represents a reference tetrahedron element for nodal Discontinuous Galerkin methods.
The reference tetrahedron is defined in a canonical (r, s, t) coordinate system, typically mapping to the region { (r,s,t) | r,s,t >= -1, r+s+t <= -1 }. This class computes properties like nodal distribution, Vandermonde matrices, and differentiation operators for a specified polynomial order.
|
explicit |
Constructs a RefTetrahedron object of a specific polynomial order.
| order | The polynomial order for the basis functions on the tetrahedron. Determines the number of nodes and approximation accuracy. The total degree of basis polynomials will be at most order. |
| xt::xarray< double > oiseau::dg::nodal::RefTetrahedron::basis_function | ( | const xt::xarray< double > & | rst, |
| int | i, | ||
| int | j, | ||
| int | k ) const |
Evaluates a 3D basis function on the reference tetrahedron.
The basis functions are typically orthogonal polynomials (e.g., a product of Jacobi polynomials) defined in a transformed coordinate system (a,b,c) derived from the reference (r,s,t) coordinates. The specific form and the range of indices i,j,k may depend on this->order(). Typically, \(i+j+k \le \text{order}\).
| rst | 2D array (shape: N_points × 3) of (r, s, t) coordinates where to evaluate. |
| i | Polynomial degree index (e.g., for the first transformed coordinate). |
| j | Polynomial degree index (e.g., for the second transformed coordinate). |
| k | Polynomial degree index (e.g., for the third transformed coordinate). |
| xt::xarray< double > oiseau::dg::nodal::RefTetrahedron::grad_basis_function | ( | const xt::xarray< double > & | rst, |
| int | i, | ||
| int | j, | ||
| int | k ) const |
Computes the gradient of a 3D basis function on the reference tetrahedron.
Computes derivatives of the basis function \(\phi_{ijk}\) with respect to the reference coordinates (r, s, t).
| rst | 2D array (shape: N_points × 3) of (r, s, t) coordinates. |
| i | Polynomial degree index. |
| j | Polynomial degree index. |
| k | Polynomial degree index. |