SpECTRE  v2023.01.13
dg::NumericalFluxes::Hll< System > Struct Template Reference

Compute the HLL numerical flux. More...

#include <Hll.hpp>


struct  LargestIngoingSpeed
 Estimate for the largest ingoing signal speed. More...
struct  LargestOutgoingSpeed
 Estimate for the largest outgoing signal speed. More...

Public Types

using variables_tags = typename System::variables_tag::tags_list
using package_field_tags = tmpl::append< db::wrap_tags_in<::Tags::NormalDotFlux, variables_tags >, variables_tags, tmpl::list< LargestIngoingSpeed, LargestOutgoingSpeed > >
using package_extra_tags = tmpl::list<>
using argument_tags = tmpl::push_back< tmpl::append< db::wrap_tags_in<::Tags::NormalDotFlux, variables_tags >, variables_tags >, char_speeds_tag >
using options = tmpl::list<>

Public Member Functions

void pup (PUP::er &)
template<class... Args>
void package_data (const Args &... args) const
template<class... Args>
void operator() (const Args &... args) const

Static Public Attributes

static constexpr Options::String help = {"Computes the HLL numerical flux."}

Detailed Description

template<typename System>
struct dg::NumericalFluxes::Hll< System >

Compute the HLL numerical flux.

Let \(U\) be the state vector of the system and \(F^i\) the corresponding volume fluxes. Let \(n_i\) be the unit normal to the interface. Denoting \(F := n_i F^i\), the HLL flux is [67]

\begin{align*} G_\text{HLL} = \frac{S_\text{max} F_\text{int} - S_\text{min} F_\text{ext}}{S_\text{max} - S_\text{min}} - \frac{S_\text{min}S_\text{max}}{S_\text{max} - S_\text{min}} \left(U_\text{int} - U_\text{ext}\right) \end{align*}

where "int" and "ext" stand for interior and exterior, respectively. \(S_\text{min}\) and \(S_\text{max}\) are estimates on the minimum and maximum signal velocities bounding the ingoing and outgoing wavespeeds that arise when solving the Riemann problem. Here we use the simple estimates [38]

\begin{align*} S_\text{min} &= \text{min}\left(\{\lambda_\text{int}\},\{\lambda_\text{ext}\}, 0\right)\\ S_\text{max} &= \text{max}\left(\{\lambda_\text{int}\},\{\lambda_\text{ext}\}, 0\right), \end{align*}

where \(\{\lambda\}\) is the set of all the characteristic speeds along a given normal. Note that for either \(S_\text{min} = 0\) or \(S_\text{max} = 0\) (i.e. all characteristics move in the same direction) the HLL flux reduces to pure upwinding.

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