HasHLLCStructure Concept ReferenceΒΆ

adc_cpp: pops::HasHLLCStructure Concept Reference
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
pops::HasHLLCStructure Concept Reference

HLLC capability: the model provides the CONTACT wave speed and the STAR STATE on side k. More...

#include <numerical_flux.hpp>

Concept definition

template<class M>
requires(const M m, const typename M::State u, const typename M::State v, const Aux a, Real p,
Real q, Real sl, Real sr, Real ss, int dir) {
{ m.pressure(u) } -> std::convertible_to<Real>;
m.wave_speeds(u, a, dir, sl, sr);
{ m.contact_speed(u, v, p, q, sl, sr, dir) } -> std::convertible_to<Real>;
{ m.hllc_star_state(u, p, sl, ss, dir) } -> std::same_as<typename M::State>;
}
HLLC capability: the model provides the CONTACT wave speed and the STAR STATE on side k.
Definition numerical_flux.hpp:142
double Real
Definition types.hpp:30

Detailed Description

HLLC capability: the model provides the CONTACT wave speed and the STAR STATE on side k.

  • contact_speed(UL, UR, pL, pR, sL, sR, dir) -> s* (intermediate wave speed);
  • hllc_star_state(U, p, s, s_star, dir) -> U*_k (star state on side k, s = sL or sR). With pressure + wave_speeds, HLLCFlux then applies the GENERIC algorithm F* = F_k + s_k (U*_k - U_k) without any layout assumption. Both methods must be POPS_HD (called in the kernels).