|
Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website |
Classes | |
| struct | HLL |
| struct | HLLC |
| struct | 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... | |
| struct | 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 | Roe |
| Roe's approximate Riemann solver with Harten's entropy fix on the acoustic waves. More... | |
| struct | Rusanov |
| struct | 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... | |
Functions | |
| KOKKOS_INLINE_FUNCTION void | 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 | 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 | 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 | 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. | |
All solvers take left/right states as W = [rho, u, p] (u with N_DIM components) and a unit normal pointing from left to right, and return the flux of [rho, rho u, rho E] through the face per unit area.
| 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::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 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::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.