The firstOrderMusclUpdater computes an first order upwind discretization of the spatial component of a non-linear hyperbolic system, possibly with source terms:
where \(\mathbf{q}\) is a vector of conserved variables (e.g. density, momentum, total energy), \(\mathcal{F}\left( \mathbf{w} \right)\) is a non-linear flux tensor computed from a vector of primitive variables, (e.g. density, velocity, pressure), \(\mathbf{w} = \mathbf{w}(\mathbf{q})\) and \(\mathcal{S} \left( \mathbf{w} \right)\) is some source term.
The firstOrderMuscl updater accepts the parameters below, in addition to those required by Updater.
in (string vector, required)out (string vector, required)waveSpeeds (string vector, optional)equations (string vector, required)numericalFlux (string, required)cfl (float, optional)checkCfl (bool, optional)sources (string vector, optional)Equation (block, required)Source (block)The following block demonstrates the firstOrderMuscl updater used in combination with the mhdDednerEqn to compute \(\nabla \cdot \mathcal{F}\left(\mathbf{w} \right)\) with an externally supplied magnetic field:
<Updater hyper>
  kind=firstOrderMuscl1d
  onGrid=domain
  # input nodal component arrays
  in=[q   backgroundB]
  # output nodal component array
  out=[qnew]
  # input dynVector containing fastest wave speed
  waveSpeeds=[waveSpeed]
  # the numerical flux to use
  numericalFlux= hlldFlux
  # CFL number to use
  cfl=0.3
  # list of equations to solve
  equations=[mhd]
  <Equation mhd>
    kind=mhdDednerEqn
    gasGamma=1.4
    externalBfield="backgroundB"
  </Equation>
</Updater>