File riemann_solvers.H

Functions

AMREX_GPU_HOST_DEVICE AMREX_INLINE void compute_flux_q (const int i, const int j, const int k, const int idir, const GeometryData &geomdata, const RiemannState &qint, Array4< Real > const &F, Array4< Real > const &rF, Array4< Real > const &qgdnv, const bool store_full_state)
AMREX_GPU_HOST_DEVICE AMREX_INLINE void riemanncg (const RiemannState &ql, const RiemannState &qr, const RiemannAux &raux, RiemannState &qint)

The Colella-Glaz Riemann solver for pure hydrodynamics. This is a two shock approximate state Riemann solver.

Parameters:
  • bx – the box to operate over

  • ql – the left interface state

  • qr – the right interface state

  • qaux_arr – the auxiliary state

  • qint – the full Godunov state on the interface

  • idir – coordinate direction for the solve (0 = x, 1 = y, 2 = z)

AMREX_GPU_HOST_DEVICE AMREX_INLINE void riemannus (const RiemannState &ql, const RiemannState &qr, const RiemannAux &raux, RiemannState &qint)

The Colella-Glaz-Ferguson Riemann solver for hydrodynamics and radiation hydrodynamics. This is a two shock approximate state Riemann solver.

Parameters:
  • bx – the box to operate over

  • ql – the left interface state

  • qr – the right interface state

  • qaux_arr – the auxiliary state

  • qint – the full Godunov state on the interface

  • lambda_int – the radiation flux limiter on the interface

AMREX_GPU_HOST_DEVICE AMREX_INLINE void HLL (const Real *ql, const Real *qr, const Real cl, const Real cr, const int idir, const int coord, Real *flux_hll)

A simple HLL Riemann solver for pure hydrodynamics. This takes just a single interface’s data and returns the HLL flux

Parameters:
  • ql – the left interface state

  • qr – the right interface state

  • cl – sound speed on the left interface

  • cr – sound speed on the right interface

  • idir – coordinate direction for the solve (0 = x, 1 = y, 2 = z)

  • coord – geometry type (0 = Cartesian, 1 = axisymmetric, 2 = spherical)

  • f – the HLL fluxes

AMREX_GPU_HOST_DEVICE AMREX_INLINE void HLLC (const int i, const int j, const int k, const int idir, Array4< Real const > const &ql, Array4< Real const > const &qr, Array4< Real const > const &qaux_arr, Array4< Real > const &uflx, Array4< Real > const &qgdnv, const bool store_full_state, const GeometryData &geom, const bool special_bnd_lo, const bool special_bnd_hi, GpuArray< int, 3 > const &domlo, GpuArray< int, 3 > const &domhi)

A HLLC Riemann solver for pure hydrodynamics

Parameters:
  • ql – the left interface state

  • qr – the right interface state

  • qaux_arr – the auxiliary state

  • uflx – the flux through the interface

  • qint – an approximate Godunov state on the interface

  • idir – coordinate direction for the solve (0 = x, 1 = y, 2 = z)

AMREX_GPU_HOST_DEVICE AMREX_INLINE void riemann_state (const int i, const int j, const int k, const int idir, Array4< Real > const &qm, Array4< Real > const &qp, Array4< Real const > const &qaux_arr, RiemannState &qint, const bool special_bnd_lo, const bool special_bnd_hi, GpuArray< int, 3 > const &domlo, GpuArray< int, 3 > const &domhi)