AQUAgpusph 4.1.2
|
Files | |
file | DivSigma.cl |
Solid particles interaction with the boundary. | |
file | DivSigmaShepard.cl |
Renormalization of the deformation gradient. | |
file | EOS.cl |
Inverse EOS equation application. | |
file | GradU.cl |
Velocity gradient resulting from the interaction with the boundary. | |
file | GradUShepard.cl |
Renormalization of the deformation gradient. | |
file | InitP.cl |
Boundary pressure initialization. | |
file | Motion.cl |
Fixed boundary elements methods. | |
file | Stress.cl |
Fixed boundary elements methods. | |
file | ElasticBounce.cl |
The simplest boundary technique to assert the non-tresspasable boundary condition. | |
file | Corrector.cl |
Improved Euler time integration scheme corrector stage. | |
file | deltaSPH.cl |
delta-SPH for the linear elasticity module. | |
file | DivSigma.cl |
Solid particles interactions computation. | |
file | DivU.cl |
Velocity divergence computation. | |
file | GradU.cl |
Solid particles deformation gradient computation. | |
file | Rates.cl |
Velocity and density variation rates computation. | |
file | Shepard.cl |
Shepard renormalization factor for the Linear elasticity module. | |
file | Sigma.cl |
Stress tensor computation. | |
file | Sort.cl |
Sort all the particle variables by the cell indexes. | |
file | xSPH.cl |
delta-SPH methods, including the correction terms. | |
Macros | |
#define | __DR_FACTOR__ 1.5f |
The boundary elements effect is restricted to a quadrangular area of \( R \times R \), where \( R = DR_FACTOR \cdot \Delta r \). | |
#define | __MIN_BOUND_DIST__ 0.3f |
The elastic bounce is not tolerating that a particle becomes closer than this distance (multiplied by \( \Delta r \)). | |
#define | __ELASTIC_FACTOR__ 0.0f |
The amount of kinetic energy conserved in the interaction. | |
#define | EXCLUDED_PARTICLE(index) imove[index] != 2 |
Restrict the aplication to the solid particles (imove=2) | |
#define | EXCLUDED_PARTICLE(index) imove[index] != 2 |
Restrict the aplication to the solid particles (imove=2) | |
Functions | |
__kernel void | entry (const __global int *imove, const __global vec *r, const __global vec *normal, const __global float *rho, const __global float *m, const __global matrix *sigma, __global vec *div_sigma, const __global uint *icell, const __global uint *ihoc, uint N, uivec4 n_cells) |
Solid particles interaction with the boundary. | |
__kernel void | entry (const __global int *imove, const __global float *shepard, __global vec *div_sigma, __global float *div_u, uint N) |
Renormalization of the deformation gradient. | |
__kernel void | entry (const __global uint *iset, const __global int *imove, const __global float *p, __global float *rho, __constant float *refd, uint N, float cs, float p0) |
Inverse EOS to get the density from the pressure value. | |
__kernel void | entry (const __global int *imove, const __global vec *r, const __global vec *u, const __global vec *normal, const __global float *m, __global matrix *grad_u, const __global uint *icell, const __global uint *ihoc, uint N, uivec4 n_cells) |
Velocity gradient resulting from the interaction with the boundary. | |
__kernel void | entry (const __global int *imove, const __global float *shepard, __global matrix *grad_u, uint N) |
Renormalization of the deformation gradient. | |
__kernel void | entry (const __global int *imove, __global float *p, uint N, float p0) |
Pressure initialization. | |
__kernel void | interpolation (const __global uint *iset, const __global int *imove, const __global vec *r, const __global float *m, const __global float *rho, __global vec *u, const __global uint *icell, const __global uint *ihoc, uint N, uivec4 n_cells, uint BImotion_iset) |
Velocity interpolation at the boundary elements. | |
__kernel void | shepard (const __global uint *iset, const __global int *imove, const __global float *shepard, __global vec *u, uint N, uint BImotion_iset) |
Velocity renormalization. | |
__kernel void | euler (const __global uint *iset, const __global int *imove, __global vec *r, const __global vec *u, unsigned int N, float dt, uint BImotion_iset) |
Simple Euler time integration of the velocity. | |
__kernel void | interpolation (const __global uint *iset, const __global int *imove, const __global vec *r, const __global float *m, const __global float *rho, __global float *p, __global matrix *S, const __global uint *icell, const __global uint *ihoc, __constant float *refd, uint N, uivec4 n_cells, vec g, uint BIstress_iset) |
Pressure and stress deviation interpolation at the boundary elements. | |
__kernel void | shepard (const __global uint *iset, const __global int *imove, const __global float *shepard, __global float *p, __global matrix *S, uint N, uint BIstress_iset) |
Pressure and stress deviation renormalization. | |
__kernel void | entry (const __global int *imove, const __global vec *r, const __global vec *normal, __global vec *u, __global vec *dudt, __global uint *icell, __global uint *ihoc, uint N, uivec4 n_cells, float dr, float dt) |
Performs the boundary effect on the fluid particles. | |
__kernel void | entry (__global int *imove, __global matrix *S, __global matrix *dSdt, __global matrix *S_in, __global matrix *dSdt_in, unsigned int N, float dt) |
Improved Euler time integration scheme corrector stage. | |
__kernel void | entry (const __global int *imove, const __global vec *r, const __global float *rho, const __global float *m, const __global matrix *sigma, __global vec *div_sigma, const __global uint *icell, const __global uint *ihoc, uint N, uivec4 n_cells) |
Solid particles interactions computation. | |
__kernel void | entry (const __global int *imove, const __global float *rho, const __global matrix *grad_u, __global float *div_u, unsigned int N) |
Velocity divergence computation. | |
__kernel void | entry (const __global int *imove, const __global vec *r, const __global vec *u, const __global float *rho, const __global float *m, __global matrix *grad_u, const __global uint *icell, const __global uint *ihoc, uint N, uivec4 n_cells) |
Solid particles deformation gradient computation. | |
__kernel void | entry (const __global unsigned int *iset, const __global int *imove, const __global vec *div_sigma, const __global float *div_u, const __global matrix *grad_u, const __global matrix *S, __global vec *dudt, __global float *drhodt, __global matrix *dSdt, __constant float *shear_mod, unsigned int N, vec g) |
Velocity and density variation rates computation. | |
__kernel void | entry (const __global float *p, const __global matrix *S, __global matrix *sigma, unsigned int N) |
Stress tensor computation. | |
__kernel void | entry (const __global float *p_in, __global float *p, const __global matrix *S_in, __global matrix *S, const __global matrix *dSdt_in, __global matrix *dSdt, const __global unit *id_sorted, unsigned int N) |
Sort all the particle variables by the cell indexes. | |
__kernel void | interpolation (const __global int *imove, const __global vec *r, const __global vec *u, const __global float *rho, const __global float *m, __global vec *xSPH_u, const __global uint *icell, const __global uint *ihoc, uint N, uivec4 n_cells) |
Velocity interpolation. | |
__kernel void | xSPH (const __global int *imove, const __global vec *xSPH_u, const __global float *shepard, __global vec *u, unsigned int N, float xSPH_factor) |
xSPH velocity replacement. | |
#define __DR_FACTOR__ 1.5f |
The boundary elements effect is restricted to a quadrangular area of \( R \times R \), where \( R = DR_FACTOR \cdot \Delta r \).
#define __ELASTIC_FACTOR__ 0.0f |
The amount of kinetic energy conserved in the interaction.
A factor of 1 imply that the velocity of the particle will be preserved (except for the direction), while a factor of 0 imply that the particle will loss all its normal to the boundary velocity.
The tangential velocity is not affected.
#define __MIN_BOUND_DIST__ 0.3f |
The elastic bounce is not tolerating that a particle becomes closer than this distance (multiplied by \( \Delta r \)).
#define EXCLUDED_PARTICLE | ( | index | ) | imove[index] != 2 |
Restrict the aplication to the solid particles (imove=2)
#define EXCLUDED_PARTICLE | ( | index | ) | imove[index] != 2 |
Restrict the aplication to the solid particles (imove=2)
__kernel void entry | ( | __global int * | imove, |
__global matrix * | S, | ||
__global matrix * | dSdt, | ||
__global matrix * | S_in, | ||
__global matrix * | dSdt_in, | ||
unsigned int | N, | ||
float | dt | ||
) |
Improved Euler time integration scheme corrector stage.
Time integration is based in the following quasi-second order Predictor-Corrector integration scheme:
\( \S_{n+1} = \S_{n} + \Delta t \left. \frac{\mathrm{d}S}{\mathrm{d}t} \right\vert_{n+1/2} + \frac{\Delta t}{2} \left( \left. \frac{\mathrm{d}S}{\mathrm{d}t} \right\vert_{n + 1/2} - \left. \frac{\mathrm{d}S}{\mathrm{d}t} \right\vert_{n - 1/2} \right) \)
imove | Moving flags.
|
iset | Set of particles index. |
S | Deviatory stress \( S_{n+1} \). |
dSdt | Deviatory stress rate of change \( \left. \frac{d S}{d t} \right\vert_{n+1} \). |
S_in | Deviatory stress \( S_{n+1/2} \). |
dSdt_in | Deviatory stress rate of change \( \left. \frac{d S}{d t} \right\vert_{n+1/2} \). |
N | Number of particles. |
dt | Time step \( \Delta t \). |
__kernel void entry | ( | const __global float * | p, |
const __global matrix * | S, | ||
__global matrix * | sigma, | ||
unsigned int | N | ||
) |
Stress tensor computation.
\[ \sigma = p \mathcal{I} + S \]
p | Pressure \( p \). |
S | Deviatory stress \( S \). |
sigma | Stress tensor \( \sigma \). |
N | Number of particles. |
__kernel void entry | ( | const __global float * | p_in, |
__global float * | p, | ||
const __global matrix * | S_in, | ||
__global matrix * | S, | ||
const __global matrix * | dSdt_in, | ||
__global matrix * | dSdt, | ||
const __global unit * | id_sorted, | ||
unsigned int | N | ||
) |
Sort all the particle variables by the cell indexes.
p_in | Unsorted pressure \( p \). |
p | Sorted pressure \( p \). |
S_in | Unsorted Deviatory stress \( S \). |
S | Sorted Deviatory stress \( S \). |
dSdt_in | Unsorted Deviatory stress rate of change \( \frac{d S}{d t} \). |
dSdt | Sorted Deviatory stress rate of change \( \frac{d S}{d t} \). \( \left. \frac{d S}{d t} \right\vert_{n+1} \). |
id_sorted | Permutations list from the unsorted space to the sorted one. |
N | Number of particles. |
__kernel void entry | ( | const __global int * | imove, |
__global float * | p, | ||
uint | N, | ||
float | p0 | ||
) |
Pressure initialization.
Since the pressure field is resulting from the density field (applying the EOS), letting free the pressure at the boundary may be dangerous due to the value must be unassigned. Therefore the pressure field will be initialized as the background pressure, letting the user to don't sdpecifically assign a pressure value without crashing the simulation.
imove | Moving flags.
|
p | Pressure \( p \). |
p0 | Background pressure \( p_0 \). |
N | Total number of particles and boundary elements. |
BImotion_iset | Set of particles affected |
__kernel void entry | ( | const __global int * | imove, |
const __global float * | rho, | ||
const __global matrix * | grad_u, | ||
__global float * | div_u, | ||
unsigned int | N | ||
) |
Velocity divergence computation.
Since we already computed the gradient of the velocity, we can get the divergence as the sum of the diagonal components:
\[ \nabla \cdot \mathbf{u} = \sum_i^d \left(\nabla \mathbf{u}\right)_ii \]
imove | Moving flags.
|
rho | Density \( \rho \). |
grad_u | Gradient of the deformation \( \nabla \mathbf{r}^{*} \). |
div_u | Velocity divergence \( \rho \nabla \cdot \mathbf{u} \). |
N | Number of particles. |
__kernel void entry | ( | const __global int * | imove, |
const __global float * | shepard, | ||
__global matrix * | grad_u, | ||
uint | N | ||
) |
Renormalization of the deformation gradient.
The main drawback of the boundary integrals formulation is the requirement of the renormalization of the computed differentiqal operators, which is destroying several conservation properties.
imove | Moving flags.
|
shepard | Shepard term \( \gamma(\mathbf{x}) = \int_{\Omega} W(\mathbf{y} - \mathbf{x}) \mathrm{d}\mathbf{x} \). |
grad_u | Gradient of the velocity \( \nabla \mathbf{u} \). |
N | Total number of particles and boundary elements. |
__kernel void entry | ( | const __global int * | imove, |
const __global float * | shepard, | ||
__global vec * | div_sigma, | ||
__global float * | div_u, | ||
uint | N | ||
) |
Renormalization of the deformation gradient.
The main drawback of the boundary integrals formulation is the requirement of the renormalization of the computed differentiqal operators, which is destroying several conservation properties.
imove | Moving flags.
|
shepard | Shepard term \( \gamma(\mathbf{x}) = \int_{\Omega} W(\mathbf{y} - \mathbf{x}) \mathrm{d}\mathbf{x} \). |
div_sigma | Divergence of the stress tensor \( \frac{\nabla \cdot \sigma}{rho} \). |
div_u | Velocity divergence \( \rho \nabla \cdot \mathbf{u} \). |
N | Total number of particles and boundary elements. |
__kernel void entry | ( | const __global int * | imove, |
const __global vec * | r, | ||
const __global float * | rho, | ||
const __global float * | m, | ||
const __global matrix * | sigma, | ||
__global vec * | div_sigma, | ||
const __global uint * | icell, | ||
const __global uint * | ihoc, | ||
uint | N, | ||
uivec4 | n_cells | ||
) |
Solid particles interactions computation.
Compute the differential operators involved in the numerical scheme, taking into account just the solid-solid interactions.
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
rho | Density \( \rho \). |
m | Mass \( m \). |
sigma | Stress tensor \( \sigma \). |
div_sigma | Divergence of the stress tensor \( \frac{\nabla \cdot \sigma}{rho} \). |
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. |
__kernel void entry | ( | const __global int * | imove, |
const __global vec * | r, | ||
const __global vec * | normal, | ||
__global vec * | u, | ||
__global vec * | dudt, | ||
__global uint * | icell, | ||
__global uint * | ihoc, | ||
uint | N, | ||
uivec4 | n_cells, | ||
float | dr, | ||
float | dt | ||
) |
Performs the boundary effect on the fluid particles.
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
normal | Normal \( \mathbf{n} \). |
u | Velocity \( \mathbf{u} \). |
dudt | Velocity rate of change \( \left. \frac{d \mathbf{u}}{d t} \right\vert_{n+1} \). |
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 |
dr | Distance between particle \( \Delta r \). |
dt | Time step \( \Delta t \). |
__kernel void entry | ( | const __global int * | imove, |
const __global vec * | r, | ||
const __global vec * | normal, | ||
const __global float * | rho, | ||
const __global float * | m, | ||
const __global matrix * | sigma, | ||
__global vec * | div_sigma, | ||
const __global uint * | icell, | ||
const __global uint * | ihoc, | ||
uint | N, | ||
uivec4 | n_cells | ||
) |
Solid particles interaction with the boundary.
Compute the differential operators involved in the numerical scheme, taking into account just the solid-solid interactions.
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
normal | Normal \( \mathbf{n} \). |
rho | Density \( \rho \). |
m | Area of the boundary element \( s \). |
sigma | Stress tensor \( \sigma \). |
div_sigma | Divergence of the stress tensor \( \frac{\nabla \cdot \sigma}{rho} \). |
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. |
__kernel void entry | ( | const __global int * | imove, |
const __global vec * | r, | ||
const __global vec * | u, | ||
const __global float * | rho, | ||
const __global float * | m, | ||
__global matrix * | grad_u, | ||
const __global uint * | icell, | ||
const __global uint * | ihoc, | ||
uint | N, | ||
uivec4 | n_cells | ||
) |
Solid particles deformation gradient computation.
Compute the gradient of the deformation vector:
\[ \nabla \mathbf{r}^{*} = \mathbf{r}^{*} \otimes \nabla \]
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
u | Velocity \( \mathbf{u} \). |
rho | Density \( \rho \). |
m | Mass \( m \). |
grad_u | Gradient of the velocity \( \nabla \mathbf{u} \). |
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 |
__kernel void entry | ( | const __global int * | imove, |
const __global vec * | r, | ||
const __global vec * | u, | ||
const __global vec * | normal, | ||
const __global float * | m, | ||
__global matrix * | grad_u, | ||
const __global uint * | icell, | ||
const __global uint * | ihoc, | ||
uint | N, | ||
uivec4 | n_cells | ||
) |
Velocity gradient resulting from the interaction with the boundary.
Compute the gradient of the velocity:
\[ \nabla \mathbf{u} = \mathbf{u} \otimes \nabla \]
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
u | Velocity \( \mathbf{u} \). |
normal | Normal \( \mathbf{n} \). |
m | Area of the boundary element \( s \). |
grad_u | Gradient of the velocity \( \nabla \mathbf{u} \). |
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 |
__kernel void entry | ( | const __global uint * | iset, |
const __global int * | imove, | ||
const __global float * | p, | ||
__global float * | rho, | ||
__constant float * | refd, | ||
uint | N, | ||
float | cs, | ||
float | p0 | ||
) |
Inverse EOS to get the density from the pressure value.
iset | Set of particles index. |
imove | Moving flags.
|
p | Pressure \( p \). |
rho | Density \( \rho \). |
refd | Density of reference of the fluid \( \rho_0 \). |
N | Total number of particles and boundary elements. |
cs | Speed of sound \( c_s \). |
p0 | Background pressure \( p_0 \). |
__kernel void entry | ( | const __global unsigned int * | iset, |
const __global int * | imove, | ||
const __global vec * | div_sigma, | ||
const __global float * | div_u, | ||
const __global matrix * | grad_u, | ||
const __global matrix * | S, | ||
__global vec * | dudt, | ||
__global float * | drhodt, | ||
__global matrix * | dSdt, | ||
__constant float * | shear_mod, | ||
unsigned int | N, | ||
vec | g | ||
) |
Velocity and density variation rates computation.
The mass conservation and momentum equations are applied from the already computed differential operators:
iset | Set of particles index. |
imove | Moving flags.
|
div_sigma | Divergence of the stress tensor \( \frac{\nabla \cdot \sigma}{rho} \). |
div_u | Velocity divergence \( \rho \nabla \cdot \mathbf{u} \). |
grad_u | Velocity gradient \( \nabla \mathbf{u} \). |
S | Deviatory stress \( S \). |
dudt | Velocity rate of change \( \frac{d \mathbf{u}}{d t} \). |
drhodt | Density rate of change \( \frac{d \rho}{d t} \). |
dSdt | Deviatory stress rate of change \( \frac{d S}{d t} \). |
shear_mod | Shear modulus \( \mu \). |
N | Number of particles. |
g | Gravity acceleration \( \mathbf{g} \). |
__kernel void euler | ( | const __global uint * | iset, |
const __global int * | imove, | ||
__global vec * | r, | ||
const __global vec * | u, | ||
unsigned int | N, | ||
float | dt, | ||
uint | BImotion_iset | ||
) |
Simple Euler time integration of the velocity.
Since the velocity is resulting from the interpolation of the solid particle, it does not make any sense to integrate it with an improved Euler scheme.
\( \mathbf{u}_{n+1} = \mathbf{u}_{n} + \Delta t \left. \frac{\mathrm{d} \mathbf{u}}{\mathrm{d}t} \right\vert_{n+1/2} \right) \)
iset | Set of particles index. |
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
u | Velocity \( \mathbf{u} \). |
N | Number of particles. |
dt | Time step \( \Delta t \). |
BImotion_iset | Set of particles affected |
__kernel void interpolation | ( | const __global int * | imove, |
const __global vec * | r, | ||
const __global vec * | u, | ||
const __global float * | rho, | ||
const __global float * | m, | ||
__global vec * | xSPH_u, | ||
const __global uint * | icell, | ||
const __global uint * | ihoc, | ||
uint | N, | ||
uivec4 | n_cells | ||
) |
Velocity interpolation.
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
u | Velocity \( \mathbf{u} \). |
rho | Density \( \rho \). |
m | Mass \( m \). |
xSPH_u | Interpolated velocity (Shepard renormalization is not applied yet). |
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 |
__kernel void interpolation | ( | const __global uint * | iset, |
const __global int * | imove, | ||
const __global vec * | r, | ||
const __global float * | m, | ||
const __global float * | rho, | ||
__global float * | p, | ||
__global matrix * | S, | ||
const __global uint * | icell, | ||
const __global uint * | ihoc, | ||
__constant float * | refd, | ||
uint | N, | ||
uivec4 | n_cells, | ||
vec | g, | ||
uint | BIstress_iset | ||
) |
Pressure and stress deviation interpolation at the boundary elements.
The values are computed using just the fluid information. The resulting interpolated values are not renormalized yet.
Just the elements with the flag imove = -3 are considered boundary elements.
iset | Set of particles index. |
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
m | Mass \( m \). |
rho | Density \( \rho \). |
p | Pressure \( p \). |
S | Deviatory stress \( S \). |
icell | Cell where each particle is located. |
ihoc | Head of chain for each cell (first particle found). |
refd | Density of reference of the fluid \( \rho_0 \). |
N | Number of particles. |
n_cells | Number of cells in each direction |
g | Gravity acceleration \( \mathbf{g} \). |
BIstress_iset | Set of particles affected |
__kernel void interpolation | ( | const __global uint * | iset, |
const __global int * | imove, | ||
const __global vec * | r, | ||
const __global float * | m, | ||
const __global float * | rho, | ||
__global vec * | u, | ||
const __global uint * | icell, | ||
const __global uint * | ihoc, | ||
uint | N, | ||
uivec4 | n_cells, | ||
uint | BImotion_iset | ||
) |
Velocity interpolation at the boundary elements.
The values are computed using just the solid information. The resulting interpolated values are not renormalized yet.
Just the elements with the flag imove = -3 are considered boundary elements.
iset | Set of particles index. |
imove | Moving flags.
|
r | Position \( \mathbf{r} \). |
m | Mass \( m \). |
rho | Density \( \rho \). |
u | Velocity \( \mathbf{u} \). |
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 |
BImotion_iset | Set of particles affected |
__kernel void shepard | ( | const __global uint * | iset, |
const __global int * | imove, | ||
const __global float * | shepard, | ||
__global float * | p, | ||
__global matrix * | S, | ||
uint | N, | ||
uint | BIstress_iset | ||
) |
Pressure and stress deviation renormalization.
iset | Set of particles index. |
imove | Moving flags.
|
shepard | Shepard term \( \gamma(\mathbf{x}) = \int_{\Omega} W(\mathbf{y} - \mathbf{x}) \mathrm{d}\mathbf{x} \). |
p | Pressure \( p \). |
S | Deviatory stress \( S \). |
N | Total number of particles and boundary elements. |
BIstress_iset | Set of particles affected |
__kernel void shepard | ( | const __global uint * | iset, |
const __global int * | imove, | ||
const __global float * | shepard, | ||
__global vec * | u, | ||
uint | N, | ||
uint | BImotion_iset | ||
) |
Velocity renormalization.
iset | Set of particles index. |
imove | Moving flags.
|
shepard | Shepard term \( \gamma(\mathbf{x}) = \int_{\Omega} W(\mathbf{y} - \mathbf{x}) \mathrm{d}\mathbf{x} \). |
u | Velocity \( \mathbf{u} \). |
N | Total number of particles and boundary elements. |
BImotion_iset | Set of particles affected |
__kernel void xSPH | ( | const __global int * | imove, |
const __global vec * | xSPH_u, | ||
const __global float * | shepard, | ||
__global vec * | u, | ||
unsigned int | N, | ||
float | xSPH_factor | ||
) |
xSPH velocity replacement.
imove | Moving flags.
|
xSPH_u | Interpolated velocity (Shepard renormalization is not applied yet). |
shepard | Shepard term \( \gamma(\mathbf{x}) = \int_{\Omega} W(\mathbf{y} - \mathbf{x}) \mathrm{d}\mathbf{x} \). |
u | Velocity \( \mathbf{u} \). |
N | Number of particles. |
xSPH_factor | Ratio between the instantaneous velocity, and the interpolated one. |