Neko  0.9.0
A portable framework for high-order spectral element flow simulations
schwarz_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 NX>
__global__ void schwarz_extrude_kernel (T *a1, const int l1, const T f1, T *a2, const int l2, const T f2)
 
template<typename T >
__global__ void schwarz_toext3d_kernel (T *__restrict__ a, T *__restrict__ b, const int nx)
 
template<typename T >
__global__ void schwarz_toreg3d_kernel (T *__restrict__ b, T *__restrict__ a, const int nx)
 

Function Documentation

◆ schwarz_extrude_kernel()

template<typename T , const int NX>
__global__ void schwarz_extrude_kernel ( T *  a1,
const int  l1,
const T  f1,
T *  a2,
const int  l2,
const T  f2 
)

Device kernel for schwarz extrude We sum the "shell" of a1 that is l1 steps in scaled with f1 with the shell of a2 that is l2 steps in and scale with f3. Right now we just throw away all arrays that are not on the first face of dimension (nx-2)(nx-2) It should be noted that a1, a2 are often the same array.

Definition at line 46 of file schwarz_kernel.h.

Here is the call graph for this function:

◆ schwarz_toext3d_kernel()

template<typename T >
__global__ void schwarz_toext3d_kernel ( T *__restrict__  a,
T *__restrict__  b,
const int  nx 
)

Device kernel for schwarz extrude

Definition at line 93 of file schwarz_kernel.h.

Here is the call graph for this function:

◆ schwarz_toreg3d_kernel()

template<typename T >
__global__ void schwarz_toreg3d_kernel ( T *__restrict__  b,
T *__restrict__  a,
const int  nx 
)

Definition at line 115 of file schwarz_kernel.h.