|
Neko 1.99.6
A portable framework for high-order spectral element flow simulations
|
CPU implementation for LPT wall-collision handling.
Functions/Subroutines | |
| subroutine, public | lpt_handle_elastic_wall_collisions_cpu (msh, dm_xh, coef, wall_facet_mask, el_list, x_old, y_old, z_old, x, y, z, d, u, v, w, u_lag, v_lag, w_lag, u_laglag, v_laglag, w_laglag, acc_xlag, acc_ylag, acc_zlag, acc_xlaglag, acc_ylaglag, acc_zlaglag, u_old, v_old, w_old, acc_x, acc_y, acc_z, lag_len, n) |
| Reflect inertial particles that hit configured wall facets on the CPU. | |
| logical function | wall_facet_is_hit (wall_facet_mask, dm_x, dm_y, dm_z, lx, ly, lz, coef, x_old, y_old, z_old, x, y, z, radius, el, facet, gdim) |
| Return true if the particle surface reaches a given wall facet. | |
| subroutine | wall_facet_normal (coef, lx, ly, lz, el, facet, normal) |
| Use the face-center SEM normal as the reflection normal. | |
| subroutine | wall_facet_center (dm_x, dm_y, dm_z, lx, ly, lz, el, facet, wall_point) |
| Return the facet-center position that matches the reflection normal. | |
| subroutine | reflect_position (x, y, z, wall_point, normal, radius) |
| Reflect the particle center across the contact plane located one radius inward from the wall plane. | |
| pure real(kind=rp) function | signed_plane_distance (x, y, z, wall_point, normal) |
| Return signed distance from a point to a wall plane. | |
| pure subroutine | reflect_vector (vec, normal) |
| Reflect a vector across a plane with the supplied normal. | |
| pure subroutine | reflect_vector_components (x, y, z, normal) |
| Reflect vector components across a plane with the supplied normal. | |
| subroutine, public lpt_wall_collision_cpu::lpt_handle_elastic_wall_collisions_cpu | ( | type(mesh_t), intent(in) | msh, |
| type(dofmap_t), intent(in), target | dm_xh, | ||
| type(coef_t), intent(in) | coef, | ||
| logical, dimension(:, :), intent(in) | wall_facet_mask, | ||
| integer, dimension(:), intent(in) | el_list, | ||
| type(vector_t), intent(in) | x_old, | ||
| type(vector_t), intent(in) | y_old, | ||
| type(vector_t), intent(in) | z_old, | ||
| type(vector_t), intent(inout) | x, | ||
| type(vector_t), intent(inout) | y, | ||
| type(vector_t), intent(inout) | z, | ||
| type(vector_t), intent(in) | d, | ||
| type(vector_t), intent(inout) | u, | ||
| type(vector_t), intent(inout) | v, | ||
| type(vector_t), intent(inout) | w, | ||
| type(vector_t), intent(inout) | u_lag, | ||
| type(vector_t), intent(inout) | v_lag, | ||
| type(vector_t), intent(inout) | w_lag, | ||
| type(vector_t), intent(inout) | u_laglag, | ||
| type(vector_t), intent(inout) | v_laglag, | ||
| type(vector_t), intent(inout) | w_laglag, | ||
| type(vector_t), intent(inout) | acc_xlag, | ||
| type(vector_t), intent(inout) | acc_ylag, | ||
| type(vector_t), intent(inout) | acc_zlag, | ||
| type(vector_t), intent(inout) | acc_xlaglag, | ||
| type(vector_t), intent(inout) | acc_ylaglag, | ||
| type(vector_t), intent(inout) | acc_zlaglag, | ||
| type(vector_t), intent(inout) | u_old, | ||
| type(vector_t), intent(inout) | v_old, | ||
| type(vector_t), intent(inout) | w_old, | ||
| type(vector_t), intent(inout) | acc_x, | ||
| type(vector_t), intent(inout) | acc_y, | ||
| type(vector_t), intent(inout) | acc_z, | ||
| integer, intent(in) | lag_len, | ||
| integer, intent(in) | n | ||
| ) |
| msh | Mesh containing wall facets. |
| dm_Xh | Coordinate dofmap used for facet locations. |
| coef | Coefficients used for facet normals. |
| wall_facet_mask | Mask of facets that behave as elastic walls. |
| el_list | Local owner element for each particle. |
| n | Number of local particles. |
Definition at line 54 of file lpt_wall_collision_cpu.f90.

|
private |
| x | Particle x coordinate updated in place. |
| y | Particle y coordinate updated in place. |
| z | Particle z coordinate updated in place. |
| wall_point | Point on the wall plane. |
| normal | Wall normal. |
| radius | Particle radius. |
Definition at line 279 of file lpt_wall_collision_cpu.f90.

|
private |
| vec | Vector updated in place. |
| normal | Plane normal. |
Definition at line 323 of file lpt_wall_collision_cpu.f90.

|
private |
| x | X component updated in place. |
| y | Y component updated in place. |
| z | Z component updated in place. |
| normal | Plane normal. |
Definition at line 343 of file lpt_wall_collision_cpu.f90.


|
private |
| wall_point | Point on the wall plane. |
| normal | Wall normal. |
Definition at line 304 of file lpt_wall_collision_cpu.f90.


|
private |
| wall_point | Output point on the wall plane. |
Definition at line 229 of file lpt_wall_collision_cpu.f90.

|
private |
Definition at line 151 of file lpt_wall_collision_cpu.f90.


|
private |
| normal | Output normal vector. |
Definition at line 199 of file lpt_wall_collision_cpu.f90.
