SpECTRE
v2023.01.13
|
Compute the HLL numerical flux. More...
#include <Hll.hpp>
Classes | |
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."} |
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.