LinkList OpenCL methods. (See Aqua::CalcServer::LinkList for details)
More...
|
__kernel void | iHoc (__global unsigned int *ihoc, unsigned int N, uivec4 n_cells) |
|
__kernel void | iCell (__global unsigned int *icell, __global vec *r, unsigned int N, unsigned int n_radix, vec r_min, float support, float h, uivec4 n_cells) |
|
__kernel void | linkList (__global unsigned int *icell, __global unsigned int *ihoc, unsigned int N) |
|
LinkList OpenCL methods. (See Aqua::CalcServer::LinkList for details)
- Note
- The header CalcServer/LinkList.hcl.in is automatically appended.
◆ iCell()
__kernel void iCell |
( |
__global unsigned int * |
icell, |
|
|
__global vec * |
r, |
|
|
unsigned int |
N, |
|
|
unsigned int |
n_radix, |
|
|
vec |
r_min, |
|
|
float |
support, |
|
|
float |
h, |
|
|
uivec4 |
n_cells |
|
) |
| |
Compute the cell where each particle is allocated.
- Parameters
-
icell | Cell where each particle is allocated. |
r | Position \( \mathbf{r} \). |
N | Number of particles. |
n_radix | N if it is a power of 2, the next power of 2 otherwise. |
r_min | Minimum of r. |
support | Kernel support as a factor of h. |
h | Kernel characteristic length. |
n_cells | Number of cells at each direction, and the total number of allocated cells. |
◆ iHoc()
__kernel void iHoc |
( |
__global unsigned int * |
ihoc, |
|
|
unsigned int |
N, |
|
|
uivec4 |
n_cells |
|
) |
| |
Set all the cells as empty (i.e. the head of chain of the cell is a particle that does not exist).
- Parameters
-
ihoc | Head of chain of each cell. |
N | Number of particles. |
n_cells | Number of cells at each direction, and the total number of allocated cells. |
◆ linkList()
__kernel void linkList |
( |
__global unsigned int * |
icell, |
|
|
__global unsigned int * |
ihoc, |
|
|
unsigned int |
N |
|
) |
| |
Compute the linklist after the sort of the icell array.
- Parameters
-
icell | Cell where each particle is allocated. |
ihoc | Head of chain of each cell. |
N | Number of particles. |