Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
ax_helm_svv_one_sided_full_kernel.h File Reference
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>
__device__ __forceinline__ T ax_helm_svv_one_sided_full_derivative (const T *__restrict__ field, const int component, const int i, const int j, const int k, const int elem, const T *__restrict__ dx, const T *__restrict__ dy, const T *__restrict__ dz, const T *__restrict__ drdx, const T *__restrict__ drdy, const T *__restrict__ drdz, const T *__restrict__ dsdx, const T *__restrict__ dsdy, const T *__restrict__ dsdz, const T *__restrict__ dtdx, const T *__restrict__ dtdy, const T *__restrict__ dtdz, const T *__restrict__ jacinv)
 
template<typename T , const int LX>
__global__ void ax_helm_svv_one_sided_full_kernel (T *__restrict__ au, T *__restrict__ av, T *__restrict__ aw, const T *__restrict__ u, const T *__restrict__ v, const T *__restrict__ w, const T *__restrict__ dx, const T *__restrict__ dy, const T *__restrict__ dz, const T *__restrict__ h1, const T *__restrict__ drdx, const T *__restrict__ drdy, const T *__restrict__ drdz, const T *__restrict__ dsdx, const T *__restrict__ dsdy, const T *__restrict__ dsdz, const T *__restrict__ dtdx, const T *__restrict__ dtdy, const T *__restrict__ dtdz, const T *__restrict__ jacinv, const T *__restrict__ w3, const T *__restrict__ h1_svv, const T *__restrict__ filter_r, const T *__restrict__ filter_s, const T *__restrict__ filter_t)
 

Function Documentation

◆ ax_helm_svv_one_sided_full_derivative()

template<typename T , const int LX>
__device__ __forceinline__ T ax_helm_svv_one_sided_full_derivative ( const T *__restrict__  field,
const int  component,
const int  i,
const int  j,
const int  k,
const int  elem,
const T *__restrict__  dx,
const T *__restrict__  dy,
const T *__restrict__  dz,
const T *__restrict__  drdx,
const T *__restrict__  drdy,
const T *__restrict__  drdz,
const T *__restrict__  dsdx,
const T *__restrict__  dsdy,
const T *__restrict__  dsdz,
const T *__restrict__  dtdx,
const T *__restrict__  dtdy,
const T *__restrict__  dtdz,
const T *__restrict__  jacinv 
)

Evaluate one physical derivative of a field at a nodal point.

Definition at line 41 of file ax_helm_svv_one_sided_full_kernel.h.

Here is the call graph for this function:

◆ ax_helm_svv_one_sided_full_kernel()

template<typename T , const int LX>
__global__ void ax_helm_svv_one_sided_full_kernel ( T *__restrict__  au,
T *__restrict__  av,
T *__restrict__  aw,
const T *__restrict__  u,
const T *__restrict__  v,
const T *__restrict__  w,
const T *__restrict__  dx,
const T *__restrict__  dy,
const T *__restrict__  dz,
const T *__restrict__  h1,
const T *__restrict__  drdx,
const T *__restrict__  drdy,
const T *__restrict__  drdz,
const T *__restrict__  dsdx,
const T *__restrict__  dsdy,
const T *__restrict__  dsdz,
const T *__restrict__  dtdx,
const T *__restrict__  dtdy,
const T *__restrict__  dtdz,
const T *__restrict__  jacinv,
const T *__restrict__  w3,
const T *__restrict__  h1_svv,
const T *__restrict__  filter_r,
const T *__restrict__  filter_s,
const T *__restrict__  filter_t 
)

Fused device kernel for the one-sided full-stress SVV Helmholtz operator.

Each physical strain component is formed, filtered and consumed entirely within the kernel. Only two element-sized shared arrays are required.

Definition at line 96 of file ax_helm_svv_one_sided_full_kernel.h.

Here is the call graph for this function: