Neko 1.99.6
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
lpt_periodic_bc_cpu Module Reference

CPU kernels for LPT periodic boundary-condition wrapping.

Functions/Subroutines

subroutine, public lpt_periodic_bc_wrap_rotational_cpu (x, y, z, n, theta_min, theta_max, theta_len, 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)
 Wrap particles through a rotational periodic sector on the CPU.
 
subroutine, public lpt_periodic_bc_wrap_translational_cpu (x, y, z, n, periodic_enabled, n_periodic_dirs, periodic_dir_x1, periodic_dir_y1, periodic_dir_z1, periodic_dir_x2, periodic_dir_y2, periodic_dir_z2, periodic_dir_x3, periodic_dir_y3, periodic_dir_z3, periodic_min1, periodic_min2, periodic_min3, periodic_max1, periodic_max2, periodic_max3, periodic_shift_x1, periodic_shift_y1, periodic_shift_z1, periodic_shift_x2, periodic_shift_y2, periodic_shift_z2, periodic_shift_x3, periodic_shift_y3, periodic_shift_z3, periodic_len1, periodic_len2, periodic_len3)
 Wrap particle coordinates through translational periodic directions.
 
subroutine lpt_rotate_xy (x, y, theta)
 Rotate a two-component vector in the x-y plane.
 
pure subroutine lpt_periodic_bc_get_translational_slot (idx, periodic_dir_x1, periodic_dir_y1, periodic_dir_z1, periodic_dir_x2, periodic_dir_y2, periodic_dir_z2, periodic_dir_x3, periodic_dir_y3, periodic_dir_z3, periodic_min1, periodic_min2, periodic_min3, periodic_max1, periodic_max2, periodic_max3, periodic_shift_x1, periodic_shift_y1, periodic_shift_z1, periodic_shift_x2, periodic_shift_y2, periodic_shift_z2, periodic_shift_x3, periodic_shift_y3, periodic_shift_z3, periodic_len1, periodic_len2, periodic_len3, dir, periodic_min, periodic_max, shift, periodic_len)
 Extract one translational periodic slot from scalar storage.
 

Variables

real(kind=rp), parameter lpt_periodic_tol = 1.0e-8_rp
 

Function/Subroutine Documentation

◆ lpt_periodic_bc_get_translational_slot()

pure subroutine lpt_periodic_bc_cpu::lpt_periodic_bc_get_translational_slot ( integer, intent(in idx,
real(kind=rp), intent(in periodic_dir_x1,
real(kind=rp), intent(in periodic_dir_y1,
real(kind=rp), intent(in periodic_dir_z1,
real(kind=rp), intent(in periodic_dir_x2,
real(kind=rp), intent(in periodic_dir_y2,
real(kind=rp), intent(in periodic_dir_z2,
real(kind=rp), intent(in periodic_dir_x3,
real(kind=rp), intent(in periodic_dir_y3,
real(kind=rp), intent(in periodic_dir_z3,
real(kind=rp), intent(in periodic_min1,
real(kind=rp), intent(in periodic_min2,
real(kind=rp), intent(in periodic_min3,
real(kind=rp), intent(in periodic_max1,
real(kind=rp), intent(in periodic_max2,
real(kind=rp), intent(in periodic_max3,
real(kind=rp), intent(in periodic_shift_x1,
real(kind=rp), intent(in periodic_shift_y1,
real(kind=rp), intent(in periodic_shift_z1,
real(kind=rp), intent(in periodic_shift_x2,
real(kind=rp), intent(in periodic_shift_y2,
real(kind=rp), intent(in periodic_shift_z2,
real(kind=rp), intent(in periodic_shift_x3,
real(kind=rp), intent(in periodic_shift_y3,
real(kind=rp), intent(in periodic_shift_z3,
real(kind=rp), intent(in periodic_len1,
real(kind=rp), intent(in periodic_len2,
real(kind=rp), intent(in periodic_len3,
real(kind=rp), dimension(3), intent(out dir,
real(kind=rp), intent(out periodic_min,
real(kind=rp), intent(out periodic_max,
real(kind=rp), dimension(3), intent(out shift,
real(kind=rp), intent(out periodic_len 
)
private
Parameters
idxDirection slot to extract.
dirPeriodic direction.
periodic_minMinimum projected coordinate.
periodic_maxMaximum projected coordinate.
shiftPeriodic translation vector.
periodic_lenPeriodic length along dir.

Definition at line 216 of file lpt_periodic_bc_cpu.f90.

Here is the caller graph for this function:

◆ lpt_periodic_bc_wrap_rotational_cpu()

subroutine, public lpt_periodic_bc_cpu::lpt_periodic_bc_wrap_rotational_cpu ( type(vector_t), intent(inout x,
type(vector_t), intent(inout y,
type(vector_t), intent(inout z,
integer, intent(in n,
real(kind=rp), intent(in theta_min,
real(kind=rp), intent(in theta_max,
real(kind=rp), intent(in theta_len,
type(vector_t), intent(inout), optional  u,
type(vector_t), intent(inout), optional  v,
type(vector_t), intent(inout), optional  w,
type(vector_t), intent(inout), optional  u_lag,
type(vector_t), intent(inout), optional  v_lag,
type(vector_t), intent(inout), optional  w_lag,
type(vector_t), intent(inout), optional  u_laglag,
type(vector_t), intent(inout), optional  v_laglag,
type(vector_t), intent(inout), optional  w_laglag,
type(vector_t), intent(inout), optional  acc_xlag,
type(vector_t), intent(inout), optional  acc_ylag,
type(vector_t), intent(inout), optional  acc_zlag,
type(vector_t), intent(inout), optional  acc_xlaglag,
type(vector_t), intent(inout), optional  acc_ylaglag,
type(vector_t), intent(inout), optional  acc_zlaglag 
)
Parameters
xParticle x coordinates.
yParticle y coordinates.
zParticle z coordinates.
nNumber of local particles.
theta_minMinimum sector angle.
theta_maxMaximum sector angle.
theta_lenAngular sector length.

Definition at line 55 of file lpt_periodic_bc_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lpt_periodic_bc_wrap_translational_cpu()

subroutine, public lpt_periodic_bc_cpu::lpt_periodic_bc_wrap_translational_cpu ( type(vector_t), intent(inout x,
type(vector_t), intent(inout y,
type(vector_t), intent(inout z,
integer, intent(in n,
logical, intent(in periodic_enabled,
integer, intent(in n_periodic_dirs,
real(kind=rp), intent(in periodic_dir_x1,
real(kind=rp), intent(in periodic_dir_y1,
real(kind=rp), intent(in periodic_dir_z1,
real(kind=rp), intent(in periodic_dir_x2,
real(kind=rp), intent(in periodic_dir_y2,
real(kind=rp), intent(in periodic_dir_z2,
real(kind=rp), intent(in periodic_dir_x3,
real(kind=rp), intent(in periodic_dir_y3,
real(kind=rp), intent(in periodic_dir_z3,
real(kind=rp), intent(in periodic_min1,
real(kind=rp), intent(in periodic_min2,
real(kind=rp), intent(in periodic_min3,
real(kind=rp), intent(in periodic_max1,
real(kind=rp), intent(in periodic_max2,
real(kind=rp), intent(in periodic_max3,
real(kind=rp), intent(in periodic_shift_x1,
real(kind=rp), intent(in periodic_shift_y1,
real(kind=rp), intent(in periodic_shift_z1,
real(kind=rp), intent(in periodic_shift_x2,
real(kind=rp), intent(in periodic_shift_y2,
real(kind=rp), intent(in periodic_shift_z2,
real(kind=rp), intent(in periodic_shift_x3,
real(kind=rp), intent(in periodic_shift_y3,
real(kind=rp), intent(in periodic_shift_z3,
real(kind=rp), intent(in periodic_len1,
real(kind=rp), intent(in periodic_len2,
real(kind=rp), intent(in periodic_len3 
)
Parameters
xParticle x coordinates.
yParticle y coordinates.
zParticle z coordinates.
nNumber of local particles.

Definition at line 116 of file lpt_periodic_bc_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lpt_rotate_xy()

subroutine lpt_periodic_bc_cpu::lpt_rotate_xy ( real(kind=rp), intent(inout x,
real(kind=rp), intent(inout y,
real(kind=rp), intent(in theta 
)
private
Parameters
xX component updated in place.
yY component updated in place.
thetaRotation angle.

Definition at line 191 of file lpt_periodic_bc_cpu.f90.

Here is the caller graph for this function:

Variable Documentation

◆ lpt_periodic_tol

real(kind=rp), parameter lpt_periodic_bc_cpu::lpt_periodic_tol = 1.0e-8_rp
private

Definition at line 40 of file lpt_periodic_bc_cpu.f90.