15#include "../global/global.h"
16#include "../reconstruction/reconstruction.h"
17#include "../utils/hydro_utilities.h"
45template <
int reconstruction, u
int direction>
46__global__
void Calculate_HLLD_Fluxes_CUDA(Real
const *dev_conserved, Real
const *dev_bounds_L,
47 Real
const *dev_bounds_R, Real
const *dev_magnetic_face, Real *dev_flux,
48 int const nx,
int const ny,
int const nz,
int const n_cells,
49 Real
const gamma,
int const n_fields);
62Real
static const _hlldSmallNumber = 1.0e-8;
73 Real density, velocityY, velocityZ, energy, magneticY, magneticZ;
82struct DoubleStarState {
87 Real velocityY, velocityZ, magneticY, magneticZ;
89 Real energyL = 0.0, energyR = 0.0;
97 Real density, momentumX, momentumY, momentumZ, energy, magneticY, magneticZ;
105 Real L, LStar, M, RStar, R;
122 Real
const &gamma,
int const &threadId,
int const &n_cells,
123 int const &o1,
int const &o2,
int const &o3);
131 Real
const &magneticX, Real
const &gamma);
138 mhd::internal::Speeds
const &speed);
144__device__ __host__ Real approximateStarWaveSpeed(mhd::internal::StarState
const &starState,
145 mhd::internal::Speeds
const &speed, Real
const &magneticX,
157 Real
const &magneticX);
172__device__ __host__
void returnFluxes(
int const &threadId,
int const &o1,
int const &o2,
int const &o3,
173 int const &n_cells, Real *dev_flux, mhd::internal::Flux
const &flux,
186 mhd::internal::Speeds
const &speed);
198 mhd::internal::Speeds
const &speed, Real
const &speedSide,
199 Real
const &magneticX, Real
const &totalPressureStar);
211__device__ __host__ mhd::internal::Flux starFluxes(mhd::internal::StarState
const &starState,
213 mhd::internal::Flux
const &flux, mhd::internal::Speeds
const &speed,
214 Real
const &speedSide);
226__device__ __host__ mhd::internal::DoubleStarState computeDoubleStarState(mhd::internal::StarState
const &starStateL,
227 mhd::internal::StarState
const &starStateR,
228 Real
const &magneticX,
229 Real
const &totalPressureStar,
230 mhd::internal::Speeds
const &speed);
244__device__ __host__ mhd::internal::Flux computeDoubleStarFluxes(mhd::internal::DoubleStarState
const &doubleStarState,
245 Real
const &doubleStarStateEnergy,
246 mhd::internal::StarState
const &starState,
248 mhd::internal::Flux
const &flux,
249 mhd::internal::Speeds
const &speed,
250 Real
const &speedSide, Real
const &speedSideStar);
261 Real
const &magneticX, Real
const &gamma)
263 return hydro_utilities::Calc_Pressure_Primitive(state.energy, state.density, state.velocity.
x(), state.velocity.y(),
264 state.velocity.z(), gamma, magneticX, state.magnetic.y(),
Namespace for MHD code.
Definition magnetic_divergence.h:26
__device__ __host__ T & x() noexcept
Directly access the x, y, and z elements. Const version is needed if the object instance is declared ...
Definition basic_structs.h:68
Definition basic_structs.h:165