OISEAU
A modern DGTD framework
Loading...
Searching...
No Matches
oiseau::dg::nodal::RefTetrahedron Class Reference

Represents a reference tetrahedron element for nodal Discontinuous Galerkin methods. More...

#include <ref_tetrahedron.hpp>

Inheritance diagram for oiseau::dg::nodal::RefTetrahedron:
oiseau::dg::nodal::RefElement

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ RefTetrahedron()

oiseau::dg::nodal::RefTetrahedron::RefTetrahedron ( unsigned order)
explicit

Constructs a RefTetrahedron object of a specific polynomial order.

Parameters
orderThe 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.

Member Function Documentation

◆ basis_function()

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}\).

Parameters
rst2D array (shape: N_points × 3) of (r, s, t) coordinates where to evaluate.
iPolynomial degree index (e.g., for the first transformed coordinate).
jPolynomial degree index (e.g., for the second transformed coordinate).
kPolynomial degree index (e.g., for the third transformed coordinate).
Returns
1D array (length N_points) of basis function values at each (r, s, t) point.

◆ grad_basis_function()

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).

Parameters
rst2D array (shape: N_points × 3) of (r, s, t) coordinates.
iPolynomial degree index.
jPolynomial degree index.
kPolynomial degree index.
Returns
2D array (shape: N_points × 3) containing (∂/∂r, ∂/∂s, ∂/∂t) for each point.

The documentation for this class was generated from the following files:
  • /__w/oiseau/oiseau/src/oiseau/dg/nodal/ref_tetrahedron.hpp
  • /__w/oiseau/oiseau/src/oiseau/dg/nodal/ref_tetrahedron.cpp