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

Go to the source code of this file.

Macros

#define NEKO_AX_HELM_VECTOR_EB_C   0
 

Functions

template<typename T , const int LX, const int CHUNKS>
__global__ void ax_helm_kernel_1d (T *__restrict__ w, const T *__restrict__ u, const T *__restrict__ dx, const T *__restrict__ dy, const T *__restrict__ dz, const T *__restrict__ dxt, const T *__restrict__ dyt, const T *__restrict__ dzt, const T *__restrict__ h1, const T *__restrict__ g11, const T *__restrict__ g22, const T *__restrict__ g33, const T *__restrict__ g12, const T *__restrict__ g13, const T *__restrict__ g23)
 
template<typename T , const int LX, const int EB>
__global__ void __launch_bounds__ ((LX *LX *EB)) ax_helm_kernel_kstep(T *__restrict__ w
 
 if (eb==0)
 
 for (int k=0;k< LX;++k)
 
 __syncthreads ()
 
 if (active)
 
template<typename T >
__global__ void ax_helm_kernel_vector_part2 (T *__restrict__ au, T *__restrict__ av, T *__restrict__ aw, const T *__restrict__ u, const T *__restrict__ v, const T *__restrict__ w, const T *__restrict__ h2, const T *__restrict__ B, const int n)
 

Variables

__global__ void const T *__restrict__ u
 
__global__ void const T *__restrict__ const T *__restrict__ dx
 
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ dy
 
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dz
 
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ h1
 
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g11
 
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g22
 
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g33
 
__global__ void 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__ g12
 
__global__ void 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__ g13
 
__global__ void 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__ g23
 
__global__ void 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 shdy [LX *LX]
 
__shared__ T shdz [LX *LX]
 
__shared__ T shu [EB *LX *LX]
 
__shared__ T shur [EB *LX *LX]
 
__shared__ T shus [EB *LX *LX]
 
T ru [LX]
 
T rw [LX]
 
T rut
 
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
 
const int ij_p = i + j*(LX+1)
 
const int sh_p = eb*LX*(LX+1)
 
__global__ void T *__restrict__ av
 
__global__ void T *__restrict__ T *__restrict__ aw
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ v
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ w
 
__shared__ T shv [EB *LX *LX]
 
__shared__ T shvr [EB *LX *LX]
 
__shared__ T shvs [EB *LX *LX]
 
__shared__ T shw [EB *LX *LX]
 
__shared__ T shwr [EB *LX *LX]
 
__shared__ T shws [EB *LX *LX]
 
T rv [LX]
 
T ruw [LX]
 
T rvw [LX]
 
T rww [LX]
 
T rvt
 
T rwt
 

Macro Definition Documentation

◆ NEKO_AX_HELM_VECTOR_EB_C

#define NEKO_AX_HELM_VECTOR_EB_C   0

Definition at line 49 of file ax_helm_kernel.h.

Function Documentation

◆ __launch_bounds__()

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

Device kernel for axhelm with padding in shared memory to remove bank conflicts when LX is a power of 2

◆ __syncthreads()

__syncthreads ( )
Here is the caller graph for this function:

◆ ax_helm_kernel_1d()

template<typename T , const int LX, const int CHUNKS>
__global__ void ax_helm_kernel_1d ( T *__restrict__  w,
const T *__restrict__  u,
const T *__restrict__  dx,
const T *__restrict__  dy,
const T *__restrict__  dz,
const T *__restrict__  dxt,
const T *__restrict__  dyt,
const T *__restrict__  dzt,
const T *__restrict__  h1,
const T *__restrict__  g11,
const T *__restrict__  g22,
const T *__restrict__  g33,
const T *__restrict__  g12,
const T *__restrict__  g13,
const T *__restrict__  g23 
)

Device kernel for axhelm

Definition at line 57 of file ax_helm_kernel.h.

Here is the call graph for this function:

◆ ax_helm_kernel_vector_part2()

template<typename T >
__global__ void ax_helm_kernel_vector_part2 ( T *__restrict__  au,
T *__restrict__  av,
T *__restrict__  aw,
const T *__restrict__  u,
const T *__restrict__  v,
const T *__restrict__  w,
const T *__restrict__  h2,
const T *__restrict__  B,
const int  n 
)

Definition at line 850 of file ax_helm_kernel.h.

Here is the call graph for this function:

◆ for()

for ( )

Definition at line 224 of file ax_helm_kernel.h.

Here is the call graph for this function:

◆ if() [1/2]

if ( active  )

Definition at line 280 of file ax_helm_kernel.h.

Here is the call graph for this function:

◆ if() [2/2]

if ( eb  = = 0)

Definition at line 217 of file ax_helm_kernel.h.

Variable Documentation

◆ active

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

Definition at line 209 of file ax_helm_kernel.h.

◆ av

Definition at line 424 of file ax_helm_kernel.h.

◆ aw

Definition at line 425 of file ax_helm_kernel.h.

◆ dx

◆ dy

◆ dz

◆ e

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

Definition at line 210 of file ax_helm_kernel.h.

◆ e_blk

const int e_blk = blockIdx.x * EB + eb

Definition at line 208 of file ax_helm_kernel.h.

◆ eb

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

Definition at line 207 of file ax_helm_kernel.h.

◆ ele

const int ele = e*LX*LX*LX

Definition at line 215 of file ax_helm_kernel.h.

◆ g11

◆ g12

◆ g13

◆ g22

◆ g23

◆ g33

◆ h1

◆ i

Definition at line 212 of file ax_helm_kernel.h.

◆ ij

const int ij = i + j*LX

Definition at line 213 of file ax_helm_kernel.h.

◆ ij_p

const int ij_p = i + j*(LX+1)

Definition at line 341 of file ax_helm_kernel.h.

◆ j

const int j = threadIdx.y

Definition at line 211 of file ax_helm_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)
shdx[ij]

Definition at line 177 of file ax_helm_kernel.h.

◆ ru

T ru[LX]

Definition at line 198 of file ax_helm_kernel.h.

◆ rut

T rut

Definition at line 200 of file ax_helm_kernel.h.

◆ ruw

T ruw[LX]

Definition at line 478 of file ax_helm_kernel.h.

◆ rv

T rv[LX]

Definition at line 475 of file ax_helm_kernel.h.

◆ rvt

T rvt

Definition at line 483 of file ax_helm_kernel.h.

◆ rvw

T rvw[LX]

Definition at line 479 of file ax_helm_kernel.h.

◆ rw

T rw[LX]

Definition at line 199 of file ax_helm_kernel.h.

◆ rwt

T rwt

Definition at line 484 of file ax_helm_kernel.h.

◆ rww

T rww[LX]

Definition at line 480 of file ax_helm_kernel.h.

◆ sh

const int sh = eb*LX*LX

Definition at line 214 of file ax_helm_kernel.h.

◆ sh_p

const int sh_p = eb*LX*(LX+1)

Definition at line 343 of file ax_helm_kernel.h.

◆ shdy

__shared__ T shdy[LX *(LX+1)]

Definition at line 181 of file ax_helm_kernel.h.

◆ shdz

__shared__ T shdz[LX *(LX+1)]

Definition at line 182 of file ax_helm_kernel.h.

◆ shu

__shared__ T shu[EB *LX *(LX+1)]

Definition at line 185 of file ax_helm_kernel.h.

◆ shur

__shared__ T shur[EB *LX *LX]

Definition at line 186 of file ax_helm_kernel.h.

◆ shus

__shared__ T shus[EB *LX *(LX+1)]

Definition at line 187 of file ax_helm_kernel.h.

◆ shv

__shared__ T shv[EB *LX *(LX+1)]

Definition at line 451 of file ax_helm_kernel.h.

◆ shvr

__shared__ T shvr[EB *LX *LX]

Definition at line 452 of file ax_helm_kernel.h.

◆ shvs

__shared__ T shvs[EB *LX *(LX+1)]

Definition at line 453 of file ax_helm_kernel.h.

◆ shw

__shared__ T shw[EB *LX *(LX+1)]

Definition at line 455 of file ax_helm_kernel.h.

◆ shwr

__shared__ T shwr[EB *LX *LX]

Definition at line 456 of file ax_helm_kernel.h.

◆ shws

__shared__ T shws[EB *LX *(LX+1)]

Definition at line 457 of file ax_helm_kernel.h.

◆ u

◆ v

◆ w