Cholla 3.0.1-dev
Cholla - Massively parallel hydro on GPUs
Loading...
Searching...
No Matches
Functions
exact_cuda.cu File Reference

Function definitions for the cuda exact Riemann solver. More...

#include <math.h>
#include <stdio.h>
#include "../global/global.h"
#include "../global/global_cuda.h"
#include "../reconstruction/reconstruction.h"
#include "../riemann_solvers/exact_cuda.h"
#include "../utils/gpu.hpp"
#include "../utils/hydro_utilities.h"
Include dependency graph for exact_cuda.cu:

Functions

template<int reconstruction, uint direction>
__global__ void Calculate_Exact_Fluxes_CUDA (Real const *dev_conserved, Real const *dev_bounds_L, Real const *dev_bounds_R, Real *dev_flux, int const nx, int const ny, int const nz, int const n_cells, Real const gamma, int const n_fields)
 Exact Riemann solver based on the Fortran code given in Sec. 4.9 of Toro (1999).
 
__device__ Real guessp_CUDA (Real dl, Real vxl, Real pl, Real cl, Real dr, Real vxr, Real pr, Real cr, Real gamma)
 
__device__ void prefun_CUDA (Real *f, Real *fd, Real p, Real dk, Real pk, Real ck, Real gamma)
 
__device__ void starpv_CUDA (Real *p, Real *v, Real dl, Real vxl, Real pl, Real cl, Real dr, Real vxr, Real pr, Real cr, Real gamma)
 
__device__ void sample_CUDA (const Real pm, const Real vm, Real *d, Real *v, Real *p, Real dl, Real vxl, Real pl, Real cl, Real dr, Real vxr, Real pr, Real cr, Real gamma)
 
template __global__ void Calculate_Exact_Fluxes_CUDA< reconstruction::Kind::pcm, 0 > (Real const *dev_conserved, Real const *dev_bounds_L, Real const *dev_bounds_R, Real *dev_flux, int const nx, int const ny, int const nz, int const n_cells, Real const gamma, int const n_fields)
 
template __global__ void Calculate_Exact_Fluxes_CUDA< reconstruction::Kind::pcm, 1 > (Real const *dev_conserved, Real const *dev_bounds_L, Real const *dev_bounds_R, Real *dev_flux, int const nx, int const ny, int const nz, int const n_cells, Real const gamma, int const n_fields)
 
template __global__ void Calculate_Exact_Fluxes_CUDA< reconstruction::Kind::pcm, 2 > (Real const *dev_conserved, Real const *dev_bounds_L, Real const *dev_bounds_R, Real *dev_flux, int const nx, int const ny, int const nz, int const n_cells, Real const gamma, int const n_fields)
 
template __global__ void Calculate_Exact_Fluxes_CUDA< reconstruction::Kind::chosen, 0 > (Real const *dev_conserved, Real const *dev_bounds_L, Real const *dev_bounds_R, Real *dev_flux, int const nx, int const ny, int const nz, int const n_cells, Real const gamma, int const n_fields)
 
template __global__ void Calculate_Exact_Fluxes_CUDA< reconstruction::Kind::chosen, 1 > (Real const *dev_conserved, Real const *dev_bounds_L, Real const *dev_bounds_R, Real *dev_flux, int const nx, int const ny, int const nz, int const n_cells, Real const gamma, int const n_fields)
 
template __global__ void Calculate_Exact_Fluxes_CUDA< reconstruction::Kind::chosen, 2 > (Real const *dev_conserved, Real const *dev_bounds_L, Real const *dev_bounds_R, Real *dev_flux, int const nx, int const ny, int const nz, int const n_cells, Real const gamma, int const n_fields)
 

Detailed Description

Function definitions for the cuda exact Riemann solver.

Function Documentation

◆ Calculate_Exact_Fluxes_CUDA()

template<int reconstruction, uint direction>
__global__ void Calculate_Exact_Fluxes_CUDA ( Real const *  dev_conserved,
Real const *  dev_bounds_L,
Real const *  dev_bounds_R,
Real *  dev_flux,
int const  nx,
int const  ny,
int const  nz,
int const  n_cells,
Real const  gamma,
int const  n_fields 
)

Exact Riemann solver based on the Fortran code given in Sec. 4.9 of Toro (1999).

Template Parameters
reconstructionWhat kind of reconstruction to use, PCM, PLMC, etc. This argument should always be a member of the reconstruction::Kind enum, behaviour is undefined otherwise.
directionThe direction that the solve is taking place in. 0=X, 1=Y, 2=Z
Parameters
[in]dev_bounds_LThe interface states on the left side of the interface
[in]dev_bounds_RThe interface states on the right side of the interface
[out]dev_fluxThe output flux
[in]n_cellsTotal number of cells
[in]n_ghostNumber of ghost cells on each side
[in]n_fieldsThe total number of fields