|
Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website |
Approximate Riemann solvers. More...
#include <string>#include <unordered_map>#include <Kokkos_Core.hpp>#include "common_typedef.h"#include "common_math.h"#include "teno.h"Go to the source code of this file.
Classes | |
| struct | riemann::SideThermo |
| Thermodynamics of one side of a face for a gas mixture: the frozen ratio of specific heats and the energy offset, with rho E = p / (gamma - 1) + rho e0 + rho |u|^2 / 2 (e0 = 0 for a calorically perfect gas), and the pair the wave-speed estimates use: the same but in double flux, where both fluxes of a face estimate the waves with each side's own cell's, so that their mass fluxes agree at contacts. More... | |
| struct | riemann::Rusanov |
| struct | riemann::HLL |
| struct | riemann::HLLC |
| struct | riemann::Roe |
| Roe's approximate Riemann solver with Harten's entropy fix on the acoustic waves. More... | |
| struct | riemann::RHLL |
| Rotated-hybrid HLL-Roe solver (Nishikawa & Kitamura, J. Comput. Phys. 227, 2008): HLL along the direction of the velocity difference (normal to shocks, where Roe's lack of dissipation causes carbuncles) and Roe across it (shear layers and contacts stay sharp). More... | |
| struct | riemann::KEEP |
| Kinetic-energy- and entropy-preserving central flux (KEEP; Kuya, Totani & Kawai, J. Comput. Phys. 375, 2018) with arithmetic means: mass C = mean(rho) mean(u).n, momentum C mean(u) + mean(p) n, energy C (mean(e) + u_L . u_R / 2) + (p_L u_R.n + p_R u_L.n) / 2. Its momentum flux has Jameson's form, so with cell values on both sides the convective fluxes change the kinetic energy only by the pressure work mean(p) (u_R - u_L).n per face. No dissipation: for the hybrid convective flux (docs/design/les.md, section 4.3). More... | |
Namespaces | |
| namespace | riemann |
Enumerations | |
| enum class | RiemannSolverType { RUSANOV , HLL , HLLC , ROE , RHLL } |
Functions | |
| KOKKOS_INLINE_FUNCTION void | riemann::physical_flux (const rtype *W, const rtype *n, const rtype gamma, rtype *U, rtype *F) |
| Physical Euler flux of state W through unit normal n. | |
| KOKKOS_INLINE_FUNCTION void | riemann::wave_speeds_einfeldt (const rtype *W_l, const rtype *W_r, const rtype u_l_n, const rtype u_r_n, const rtype gamma, rtype &S_l, rtype &S_r) |
| Einfeldt (HLLE) wave speed estimates using Roe averages (Einfeldt et al. 1991; Toro 10.52). | |
| KOKKOS_INLINE_FUNCTION void | riemann::physical_flux (const rtype *W, const rtype *n, const SideThermo &th, rtype *U, rtype *F) |
| Physical Euler flux of state W of a mixture side through unit normal n. | |
| KOKKOS_INLINE_FUNCTION void | riemann::wave_speeds_einfeldt (const rtype *W_l, const rtype *W_r, const rtype u_l_n, const rtype u_r_n, const SideThermo &th_l, const SideThermo &th_r, rtype &S_l, rtype &S_r) |
| Einfeldt wave speed estimates for a mixture: the Roe average of the perfect-gas estimates with sqrt(rho)-weighted averages of gamma and e0, a^2 = (gamma - 1) (H - e0 - |u|^2 / 2). Equal to the perfect-gas estimates when both sides share gamma and e0 = 0. | |
Approximate Riemann solvers.
|
strong |