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

#include <source/euler_aeos/indicator.h>

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

Public Types

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

Public Member Functions

Constructor and setup
 Indicator (const HyperbolicSystem &hyperbolic_system, const std::string &subsection="/Indicator")
 
Information and statistics
 ACCESSOR_READ_ONLY (evc_factor)
 
template<int dim, typename Number >
auto view () const
 

Detailed Description

template<typename ScalarNumber = double>
class ryujin::EulerAEOS::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 67 of file indicator.h.

Member Typedef Documentation

◆ View

template<typename ScalarNumber = double>
template<int dim, typename Number = double>
using ryujin::EulerAEOS::Indicator< ScalarNumber >::View = IndicatorView<dim, Number>

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

Definition at line 80 of file indicator.h.

Constructor & Destructor Documentation

◆ Indicator()

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

Constructor.

Definition at line 91 of file indicator.h.

Member Function Documentation

◆ ACCESSOR_READ_ONLY()

template<typename ScalarNumber = double>
ryujin::EulerAEOS::Indicator< ScalarNumber >::ACCESSOR_READ_ONLY ( evc_factor  )

◆ view()

template<typename ScalarNumber = double>
template<int dim, typename Number >
auto ryujin::EulerAEOS::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).

Definition at line 116 of file indicator.h.


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