Neko
0.9.99
A portable framework for high-order spectral element flow simulations
|
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) |
__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.
__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.
__global__ void schwarz_toreg3d_kernel | ( | T *__restrict__ | b, |
T *__restrict__ | a, | ||
const int | nx | ||
) |
Definition at line 148 of file schwarz_kernel.h.