-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetstate.cl
More file actions
28 lines (26 loc) · 745 Bytes
/
setstate.cl
File metadata and controls
28 lines (26 loc) · 745 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// update particle state
__kernel void setstate( __global int* incell, __global int* incell2, __global float* x, __global float* x2, __global float* y, __global float* y2, __global float* tini, __global float* tlag, __global int* stat, __global int* mark, float mtime)
{
unsigned int i = get_global_id(0);
//particle left domain, reset
if(incell[i]==-1){
x[i] = x2[i];
y[i] = y2[i];
incell[i] = incell2[i];
}
//particle still in domain, update last vals
else{
x2[i] = x[i];
y2[i] = y[i];
incell2[i] = incell[i];
}
//if particle is in domain of interest, update time
if(mark[incell[i]]==1){
tlag[i] = mtime;
}
//set status of particel
stat[i] = 1;
if(mark[incell[i]]==-1 | mtime < tini[i]){
stat[i] = 0;
}
}