Neko 1.99.7
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
opgrad_kernel.h File Reference
#include "elem_block.h"
Include dependency graph for opgrad_kernel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename T , const int LX, const int CHUNKS>
__global__ void opgrad_kernel_1d (T *__restrict__ ux, T *__restrict__ uy, T *__restrict__ uz, const T *__restrict__ u, const T *__restrict__ dx, const T *__restrict__ dy, const T *__restrict__ dz, const T *__restrict__ drdx, const T *__restrict__ dsdx, const T *__restrict__ dtdx, const T *__restrict__ drdy, const T *__restrict__ dsdy, const T *__restrict__ dtdy, const T *__restrict__ drdz, const T *__restrict__ dsdz, const T *__restrict__ dtdz, const T *__restrict__ w3)
 
template<typename T , const int LX, const int EB>
__global__ void __launch_bounds__ ((LX *LX *EB), 3) opgrad_kernel_kstep(T *__restrict__ ux
 
 if (eb==0)
 
 for (int k=0;k< LX;++k)
 
 __syncthreads ()
 

Variables

__global__ void T *__restrict__ uy
 
__global__ void T *__restrict__ T *__restrict__ uz
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ u
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ dx
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dy
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dz
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ drdx
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dsdx
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dtdx
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ drdy
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dsdy
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dtdy
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ drdz
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dsdz
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dtdz
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ w3
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const int nelv
 
__shared__ T shdx [LX *LX]
 
__shared__ T shdy [LX *LX]
 
__shared__ T shdz [LX *LX]
 
const int eb = (EB == 1) ? 0 : threadIdx.z
 
const int e_blk = blockIdx.x * EB + eb
 
const bool active = (EB == 1) ? true : (e_blk < nelv)
 
const int e = active ? e_blk : (nelv - 1)
 
const int j = threadIdx.y
 
const int i = threadIdx.x
 
const int ij = i + j * LX
 
const int sh = eb * LX * LX
 
const int ele = e*LX*LX*LX
 
T ru [LX]
 

Function Documentation

◆ __launch_bounds__()

template<typename T , const int LX, const int EB>
__global__ void __launch_bounds__ ( (LX *LX *EB ,
 
)

◆ __syncthreads()

__syncthreads ( )

◆ for()

for ( )

Definition at line 181 of file opgrad_kernel.h.

Here is the call graph for this function:

◆ if()

if ( eb  = = 0)

Definition at line 172 of file opgrad_kernel.h.

◆ opgrad_kernel_1d()

template<typename T , const int LX, const int CHUNKS>
__global__ void opgrad_kernel_1d ( T *__restrict__  ux,
T *__restrict__  uy,
T *__restrict__  uz,
const T *__restrict__  u,
const T *__restrict__  dx,
const T *__restrict__  dy,
const T *__restrict__  dz,
const T *__restrict__  drdx,
const T *__restrict__  dsdx,
const T *__restrict__  dtdx,
const T *__restrict__  drdy,
const T *__restrict__  dsdy,
const T *__restrict__  dtdy,
const T *__restrict__  drdz,
const T *__restrict__  dsdz,
const T *__restrict__  dtdz,
const T *__restrict__  w3 
)

Device kernel for convective terms

Definition at line 45 of file opgrad_kernel.h.

Here is the call graph for this function:

Variable Documentation

◆ active

const bool active = (EB == 1) ? true : (e_blk < nelv)

Definition at line 164 of file opgrad_kernel.h.

◆ drdx

◆ drdy

◆ drdz

◆ dsdx

◆ dsdy

◆ dsdz

◆ dtdx

◆ dtdy

◆ dtdz

◆ dx

◆ dy

◆ dz

◆ e

const int e = active ? e_blk : (nelv - 1)

Definition at line 165 of file opgrad_kernel.h.

◆ e_blk

const int e_blk = blockIdx.x * EB + eb

Definition at line 163 of file opgrad_kernel.h.

◆ eb

const int eb = (EB == 1) ? 0 : threadIdx.z

Definition at line 162 of file opgrad_kernel.h.

◆ ele

const int ele = e*LX*LX*LX

Definition at line 170 of file opgrad_kernel.h.

◆ i

Definition at line 167 of file opgrad_kernel.h.

◆ ij

const int ij = i + j * LX

Definition at line 168 of file opgrad_kernel.h.

◆ j

const int j = threadIdx.y

Definition at line 166 of file opgrad_kernel.h.

◆ nelv

Initial value:
{
__global__ void ale_add_kinematics_kernel(const int n, T *__restrict__ wx, T *__restrict__ wy, T *__restrict__ wz, const T *__restrict__ x_ref, const T *__restrict__ y_ref, const T *__restrict__ z_ref, const T *__restrict__ phi, const T *__restrict__ x, const T *__restrict__ y, const T *__restrict__ z, const kinematics_params_t kin_params)
__shared__ T shu[LX *LX]

Definition at line 145 of file opgrad_kernel.h.

◆ ru

T ru[LX]

Definition at line 178 of file opgrad_kernel.h.

◆ sh

const int sh = eb * LX * LX

Definition at line 169 of file opgrad_kernel.h.

◆ shdx

__shared__ T shdx[LX *LX]

Definition at line 151 of file opgrad_kernel.h.

◆ shdy

__shared__ T shdy[LX *LX]

Definition at line 152 of file opgrad_kernel.h.

◆ shdz

__shared__ T shdz[LX *LX]

Definition at line 153 of file opgrad_kernel.h.

◆ u

◆ uy

Definition at line 129 of file opgrad_kernel.h.

◆ uz

Definition at line 130 of file opgrad_kernel.h.

◆ w3