ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
Loading...
Searching...
No Matches
Classes | List of all members
ryujin::Euler::Indicator< ScalarNumber > Class Template Reference

#include <source/euler/indicator.h>

Inheritance diagram for ryujin::Euler::Indicator< ScalarNumber >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Euler::Indicator< ScalarNumber >:
Collaboration graph
[legend]

Classes

struct  Parameters
 

Public Types

Typedefs and constexpr constants
template<int dim, typename Number = double, typename MemorySpace = dealii::MemorySpace::Host>
using View = IndicatorView< dim, Number, MemorySpace >
 

Public Member Functions

Constructor and setup
 Indicator (const HyperbolicSystem &hyperbolic_system, const std::string &subsection="/Indicator")
 
template<int dim, typename Number , typename MemorySpace = dealii::MemorySpace::Host>
auto view () const
 

Internal data

template<int , typename , typename >
class IndicatorView
 

Detailed Description

template<typename ScalarNumber = double>
class ryujin::Euler::Indicator< ScalarNumber >

An indicator strategy used to form the preliminary high-order update.

The indicator is an entropy-viscosity commutator as described in [7] and [9]. For a given entropy \(\eta\) (either the mathematical entropy, or a Harten entropy, see the documentation of HyperbolicSystem) we let \(\eta'\) denote its derivative with respect to the state variables. We then compute a normalized entropy viscosity ratio \(\alpha_i^n\) for the state \(\boldsymbol U_i^n\) as follows:

\begin{align} \alpha_i^n\;=\;\frac{N_i^n}{D_i^n}, \quad N_i^n\;:=\;\left|a_i^n- \eta'(\boldsymbol U^n_i)\cdot\boldsymbol b_i^n +\frac{\eta(\boldsymbol U^n_i)}{\rho_i^n}\big(\boldsymbol b_i^n\big)_1\right|, \quad D_i^n\;:=\;\left|a_i^n\right| + \sum_{k=1}^{d+1}\left|\big(\eta'(\boldsymbol U^n_i)\big)_k- \delta_{1k}\frac{\eta(\boldsymbol U^n_i)}{\rho_i^n}\right| \,\left|\big(\boldsymbol b_i^n\big)_k\right|, \end{align}

where where \(\big(\,.\,\big)_k\) denotes the \(k\)-th component of a vector, \(\delta_{ij}\) is Kronecker's delta, and where we have set

\begin{align} a_i^n \;:=\; \sum_{j\in\mathcal{I}_i}\left(\frac{\eta(\boldsymbol U_j^n)}{\rho_j^n} -\frac{\eta(\boldsymbol U_i^n)}{\rho_i^n}\right)\, \boldsymbol m_j^n\cdot\boldsymbol c_{ij}, \qquad \boldsymbol b_i^n \;:=\; \sum_{j\in\mathcal{I}_i}\left(\mathbf{f}(\boldsymbol U_j^n)- \mathbf{f}(\boldsymbol U_i^n)\right)\cdot\boldsymbol c_{ij}, \end{align}

Definition at line 69 of file indicator.h.

Member Typedef Documentation

◆ View

template<typename ScalarNumber = double>
template<int dim, typename Number = double, typename MemorySpace = dealii::MemorySpace::Host>
using ryujin::Euler::Indicator< ScalarNumber >::View = IndicatorView<dim, Number, MemorySpace>

Alias for the view on the indicator for a given dimension dim, choice of number type Number, and memory space MemorySpace.

Definition at line 91 of file indicator.h.

Constructor & Destructor Documentation

◆ Indicator()

template<typename ScalarNumber = double>
ryujin::Euler::Indicator< ScalarNumber >::Indicator ( const HyperbolicSystem hyperbolic_system,
const std::string &  subsection = "/Indicator< ScalarNumber >" 
)
inline

Constructor.

Definition at line 102 of file indicator.h.

Member Function Documentation

◆ view()

template<typename ScalarNumber = double>
template<int dim, typename Number , typename MemorySpace = dealii::MemorySpace::Host>
auto ryujin::Euler::Indicator< ScalarNumber >::view ( ) const
inline

Return a view on the Indicator for a given dimension dim and choice of number type Number (which can be a scalar float, or double, as well as a VectorizedArray holding packed scalars). The optional MemorySpace template parameter selects whether the view is intended for the host or device memory space.

Definition at line 144 of file indicator.h.

Friends And Related Symbol Documentation

◆ IndicatorView

template<typename ScalarNumber = double>
template<int , typename , typename >
friend class IndicatorView
friend

Definition at line 171 of file indicator.h.


The documentation for this class was generated from the following file: