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 This can probably be done in a better way... 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 thorw 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. If l1,l2 are not the same or if one is not 0 this might lead to a race.

Definition at line 48 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 126 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 148 of file schwarz_kernel.h.