![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
#include <source/euler/indicator.h>


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 |
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.
| 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.
|
inline |
Constructor.
Definition at line 102 of file indicator.h.
|
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.
|
friend |
Definition at line 171 of file indicator.h.