Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
riemann::RHLL Struct Reference

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...

#include <riemann_solver.h>

Static Public Member Functions

static KOKKOS_INLINE_FUNCTION void calc_flux (rtype *flux, const rtype *n, const rtype *W_l, const rtype *W_r, const rtype gamma)
 
static KOKKOS_INLINE_FUNCTION void calc_flux (rtype *flux, const rtype *n, const rtype *W_l, const rtype *W_r, const SideThermo &th_l, const SideThermo &th_r)
 Mixture flux with per-side thermodynamics.
 
template<typename... Thermo>
static KOKKOS_INLINE_FUNCTION void shock_blended (rtype *flux, const rtype *n, const rtype *W_l, const rtype *W_r, const rtype a_ref, const Thermo &... th)
 The rotated hybrid, blended toward HLL along the face normal by the pressure jump across the face: w F_rotated + (1 - w) F_HLL(n), w = min(p_l / p_r, p_r / p_l)^3 (the pressure weight of AUSMPW+: Kim, Kim & Rho, J. Comput. Phys. 174, 2001). On faces aligned with a shock the rotation is already HLL along n; on tetrahedra it turns HLL toward the shock normal, which grows a carbuncle on the stagnation line with MUSCL or TENO states (#80). Contacts and shear layers carry no pressure jump and keep the rotated flux.
 
template<typename... Thermo>
static KOKKOS_INLINE_FUNCTION void rotated (rtype *flux, const rtype *n, const rtype *W_l, const rtype *W_r, const rtype a_ref, const Thermo &... th)
 The hybrid for either form of the thermodynamics th, passed on to HLL and Roe; a_ref scales the threshold below which the velocity jump falls back to the face normal.
 
template<typename... Thermo>
static KOKKOS_INLINE_FUNCTION void rotated_3d (rtype *flux, const rtype *n, const rtype *W_l, const rtype *W_r, const rtype a_ref, const Thermo &... th)
 3D variant: n1 is the unit velocity difference (or n), n2 the unit vector orthogonal to n1 in the plane of n1 and n, both oriented along n. Roe is dropped when n1 is parallel to n.
 

Detailed Description

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).

Member Function Documentation

◆ calc_flux() [1/2]

static KOKKOS_INLINE_FUNCTION void riemann::RHLL::calc_flux ( rtype *  flux,
const rtype *  n,
const rtype *  W_l,
const rtype *  W_r,
const rtype  gamma 
)
inlinestatic

◆ calc_flux() [2/2]

static KOKKOS_INLINE_FUNCTION void riemann::RHLL::calc_flux ( rtype *  flux,
const rtype *  n,
const rtype *  W_l,
const rtype *  W_r,
const SideThermo &  th_l,
const SideThermo &  th_r 
)
inlinestatic

Mixture flux with per-side thermodynamics.

◆ rotated()

template<typename... Thermo>
static KOKKOS_INLINE_FUNCTION void riemann::RHLL::rotated ( rtype *  flux,
const rtype *  n,
const rtype *  W_l,
const rtype *  W_r,
const rtype  a_ref,
const Thermo &...  th 
)
inlinestatic

The hybrid for either form of the thermodynamics th, passed on to HLL and Roe; a_ref scales the threshold below which the velocity jump falls back to the face normal.

◆ rotated_3d()

template<typename... Thermo>
static KOKKOS_INLINE_FUNCTION void riemann::RHLL::rotated_3d ( rtype *  flux,
const rtype *  n,
const rtype *  W_l,
const rtype *  W_r,
const rtype  a_ref,
const Thermo &...  th 
)
inlinestatic

3D variant: n1 is the unit velocity difference (or n), n2 the unit vector orthogonal to n1 in the plane of n1 and n, both oriented along n. Roe is dropped when n1 is parallel to n.

◆ shock_blended()

template<typename... Thermo>
static KOKKOS_INLINE_FUNCTION void riemann::RHLL::shock_blended ( rtype *  flux,
const rtype *  n,
const rtype *  W_l,
const rtype *  W_r,
const rtype  a_ref,
const Thermo &...  th 
)
inlinestatic

The rotated hybrid, blended toward HLL along the face normal by the pressure jump across the face: w F_rotated + (1 - w) F_HLL(n), w = min(p_l / p_r, p_r / p_l)^3 (the pressure weight of AUSMPW+: Kim, Kim & Rho, J. Comput. Phys. 174, 2001). On faces aligned with a shock the rotation is already HLL along n; on tetrahedra it turns HLL toward the shock normal, which grows a carbuncle on the stagnation line with MUSCL or TENO states (#80). Contacts and shear layers carry no pressure jump and keep the rotated flux.


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