13 #ifdef CUDA_VAR_ORDERDING_AOS
21 const double * __restrict__ u,
22 double * __restrict__ f
25 int p = blockDim.x * blockIdx.x + threadIdx.x;
27 if (p < npoints_grid) {
28 double rho, vx, vy, vz, e, P;
45 double *__restrict__ f,
46 double *__restrict__ u,
57 gpuNavierStokes3DFlux_kernel<<<nblocks, GPU_THREADS_PER_BLOCK>>>(
60 cudaDeviceSynchronize();
73 const double * __restrict__ u,
74 double * __restrict__ f
77 int p = blockDim.x * blockIdx.x + threadIdx.x;
79 if (p < npoints_grid) {
80 double rho, vx, vy, vz, e, P;
97 double *__restrict__ f,
98 double *__restrict__ u,
100 void *__restrict__ s,
109 gpuNavierStokes3DFlux_kernel<<<nblocks, GPU_THREADS_PER_BLOCK>>>(
112 cudaDeviceSynchronize();
#define _NavierStokes3DGetFlowVar_(u, stride, rho, vx, vy, vz, e, P, gamma)
int npoints_local_wghosts
3D Navier Stokes equations (compressible flows)
#define _NavierStokes3DSetFlux_(f, stride, rho, vx, vy, vz, e, P, dir)
#define GPU_THREADS_PER_BLOCK
int gpuNavierStokes3DFlux(double *__restrict__ f, double *__restrict__ u, int dir, void *__restrict__ s, double t)
Contains function definitions for common mathematical functions.
Contains function definitions for common array operations on GPU.
Contains structure definition for hypar.
__global__ void gpuNavierStokes3DFlux_kernel(int npoints_grid, int dir, double gamma, const double *__restrict__ u, double *__restrict__ f)
Structure containing variables and parameters specific to the 3D Navier Stokes equations. This structure contains the physical parameters, variables, and function pointers specific to the 3D Navier-Stokes equations.
Structure containing all solver-specific variables and functions.
Contains macros and function definitions for common matrix multiplication.
static const int _NavierStokes3D_stride_