Cholla 3.0.1-dev
Cholla - Massively parallel hydro on GPUs
Loading...
Searching...
No Matches
Functions | Variables
ppmc_cuda.h File Reference

Declarations of the cuda ppm kernels, characteristic reconstruction version. More...

#include "../global/global.h"
Include dependency graph for ppmc_cuda.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<int dir>
__global__ void PPMC_CTU (Real *dev_conserved, Real *dev_bounds_L, Real *dev_bounds_R, int nx, int ny, int nz, Real dx, Real dt, Real gamma)
 Computes the left and right interface states using PPM with limiting in the characteristic variables and characteristic tracing. Used for the CTU and SIMPLE integrators. This uses the PPM method described in Stone et al. 2008 "Athena: A New Code for Astrophysical MHD". Fundementally this method relies on a Van Leer limiter in the characteristic variables to monotonize the slopes followed by limiting the interface states using the limiter from Colella & Woodward 1984.
 
template<int dir>
__global__ __launch_bounds__ (TPB) void PPMC_VL(Real *dev_conserved
 Computes the left and right interface states using PPM with limiting in the characteristic variables. Used for the VL (Van Leer) integrators. This uses the PPM method described in Felker & Stone 2018 "A fourth-order accurate finite volume method for ideal MHD via upwind constrained transport". This method computes the 3rd order interface then applies a mixture of monoticity constraints from from Colella & Sekora 2008, McCorquodale & Colella 2011, and Colella et al. 2011; for details see the reconstruction::PPM_Single_Variable function. We found that this newer method and limiters was more stable, less oscillatory, and faster than the method described in Stone et al. 2008 which is used in PPMC_CTU. The difference is most pronounced in the Brio & Wu shock tube where the PPM oscillations are much smaller using this method.
 

Variables

__global__ Real * dev_bounds_L
 
__global__ Real Real * dev_bounds_R
 
__global__ Real Real int nx
 
__global__ Real Real int int ny
 
__global__ Real Real int int int nz
 
__global__ Real Real int int int Real gamma
 

Detailed Description

Declarations of the cuda ppm kernels, characteristic reconstruction version.

Function Documentation

◆ __launch_bounds__()

template<int dir>
__global__ __launch_bounds__ ( TPB  )

Computes the left and right interface states using PPM with limiting in the characteristic variables. Used for the VL (Van Leer) integrators. This uses the PPM method described in Felker & Stone 2018 "A fourth-order accurate finite volume method for ideal MHD via upwind constrained transport". This method computes the 3rd order interface then applies a mixture of monoticity constraints from from Colella & Sekora 2008, McCorquodale & Colella 2011, and Colella et al. 2011; for details see the reconstruction::PPM_Single_Variable function. We found that this newer method and limiters was more stable, less oscillatory, and faster than the method described in Stone et al. 2008 which is used in PPMC_CTU. The difference is most pronounced in the Brio & Wu shock tube where the PPM oscillations are much smaller using this method.

Template Parameters
dirThe direction to reconstruct. 0=X, 1=Y, 2=Z
Parameters
[in]dev_conservedThe conserved variable array
[out]dev_bounds_LThe array of left interfaces
[out]dev_bounds_RThe array of right interfaces
[in]nxThe number of cells in the X-direction
[in]nyThe number of cells in the Y-direction
[in]nzThe number of cells in the Z-direction
[in]gammaThe adiabatic index

◆ PPMC_CTU()

template<int dir>
__global__ void PPMC_CTU ( Real *  dev_conserved,
Real *  dev_bounds_L,
Real *  dev_bounds_R,
int  nx,
int  ny,
int  nz,
Real  dx,
Real  dt,
Real  gamma 
)

Computes the left and right interface states using PPM with limiting in the characteristic variables and characteristic tracing. Used for the CTU and SIMPLE integrators. This uses the PPM method described in Stone et al. 2008 "Athena: A New Code for Astrophysical MHD". Fundementally this method relies on a Van Leer limiter in the characteristic variables to monotonize the slopes followed by limiting the interface states using the limiter from Colella & Woodward 1984.

Template Parameters
dirThe direction to reconstruct. 0=X, 1=Y, 2=Z
Parameters
[in]dev_conservedThe conserved variable array
[out]dev_bounds_LThe array of left interfaces
[out]dev_bounds_RThe array of right interfaces
[in]nxThe number of cells in the X-direction
[in]nyThe number of cells in the Y-direction
[in]nzThe number of cells in the Z-direction
[in]dxThe length of the cells in the dir direction
[in]dtThe time step
[in]gammaThe adiabatic index

Computes the left and right interface states using PPM with limiting in the characteristic variables and characteristic tracing. Used for the CTU and SIMPLE integrators. This uses the PPM method described in Stone et al. 2008 "Athena: A New Code for Astrophysical MHD". Fundementally this method relies on a Van Leer limiter in the characteristic variables to monotonize the slopes followed by limiting the interface states using the limiter from Colella & Woodward 1984.