Particles interactions computation.
__kernel void entry |
( |
const __global int * |
imove, |
|
|
const __global int * |
imirrored, |
|
|
const __global vec * |
r, |
|
|
const __global vec * |
rmirrored, |
|
|
const __global float * |
rho, |
|
|
const __global float * |
m, |
|
|
__global matrix * |
mls, |
|
|
__global uint * |
icell, |
|
|
__global uint * |
ihoc, |
|
|
uint |
N, |
|
|
uivec4 |
n_cells |
|
) |
| |
Compute the MLS transformation matrix inverse, \( L_i^{-1} \), due to the particles at the other side of the symmetry plane.
Such transformation matrix can be multiplied by the kernel gradient to produce a new kernel gradient, \( \nabla W^{L}_{ij} = L_i \cdot \nabla W_{ij} \), such that the lienar fields differential operators are consistently computed.
- Parameters
-
imove | Moving flags.
- imove > 0 for regular fluid particles.
- imove = 0 for sensors.
- imove < 0 for boundary elements/particles.
|
imirrored | 0 if the particle has not been mirrored, 1 otherwise. |
r | Position \( \mathbf{r} \). |
rmirrored | Mirrored position of the particle, r if imirrored is false (0). |
rho | Density \( \rho \). |
m | Mass \( m \). |
mls | Kernel MLS transformation matrix \( L \). |
icell | Cell where each particle is located. |
ihoc | Head of chain for each cell (first particle found). |
N | Number of particles. |
n_cells | Number of cells in each direction |
- Note
- The MLS kernel transformation will be computed just for the particles with the moving flag mls_imove, and using just the information of the particles with the moving flag mls_imove