AQUAgpusph 5.0.4
Loading...
Searching...
No Matches
Rates.cl File Reference

Pressure gradient and velocity divergence updating with the boundary integrals. More...

Include dependency graph for Rates.cl:

Functions

__kernel void entry (const __global int *imove, const __global float *rho, const __global float *p, const __global vec *u, const __global vec *grad_w_bi, const __global float *div_u_bi, __global vec *grad_p, __global float *div_u, usize N)
 Pressure gradient and velocity divergence updating with the boundary integrals.
__kernel void filter_press (const __global uint *iset, const __global int *imove, __global float *p, unsigned int forces_iset, usize N)
 Filter out other boundaries from the pressure.
__kernel void force_press (const __global int *imove, const __global vec *r, const __global vec *normal, const __global float *m, const __global float *p, __global vec *force_p, __global vec4 *moment_p, vec forces_r, usize N)
 Compute the force and torque at the boundary.

Detailed Description

Pressure gradient and velocity divergence updating with the boundary integrals.

Function Documentation

◆ entry()

__kernel void entry ( const __global int * imove,
const __global float * rho,
const __global float * p,
const __global vec * u,
const __global vec * grad_w_bi,
const __global float * div_u_bi,
__global vec * grad_p,
__global float * div_u,
usize N )

Pressure gradient and velocity divergence updating with the boundary integrals.

Parameters
imoveMoving flags.
  • imove > 0 for regular fluid particles.
  • imove = 0 for sensors.
  • imove < 0 for boundary elements/particles.
rhoDensity \( \rho_{n+1} \).
pPressure \( p \).
uVelocity \( \mathbf{u} \).
grad_w_biGradient of constant fields due to the boundary integral \( \langle \nabla 1 \rangle^{\partial \Omega} \).
div_uVelocity divergence \( \nabla \cdot \mathbf{u} \). Actually this is just the part that has to do with the boundary element velocity
grad_pPressure gradient \( \frac{\nabla p}{rho} \).
div_uVelocity divergence \( \rho \nabla \cdot \mathbf{u} \).
NNumber of particles.

◆ filter_press()

__kernel void filter_press ( const __global uint * iset,
const __global int * imove,
__global float * p,
unsigned int forces_iset,
usize N )

Filter out other boundaries from the pressure.

This is used to compute the force on an specific iset

Parameters
isetParticle set
imoveMoving flags.
  • imove > 0 for regular fluid particles.
  • imove = 0 for sensors.
  • imove < 0 for boundary elements/particles.
pPressure of the boundary element \( p \).
forces_isetParticles set of interest.
NNumber of particles.

◆ force_press()

__kernel void force_press ( const __global int * imove,
const __global vec * r,
const __global vec * normal,
const __global float * m,
const __global float * p,
__global vec * force_p,
__global vec4 * moment_p,
vec forces_r,
usize N )

Compute the force and torque at the boundary.

Parameters
imoveMoving flags.
  • imove > 0 for regular fluid particles.
  • imove = 0 for sensors.
  • imove < 0 for boundary elements/particles.
rPosition \( \mathbf{r} \).
normalNormal \( \mathbf{n} \).
mArea of the boundary element \( s \).
pPressure of the boundary element \( p \).
force_pPressure force on the boundary element
moment_pPressure moment on the boundary element
forces_rPoint with respect the moments are computed \( \mathbf{r}_0 \).
NNumber of particles.