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

Periodic and cyclic boundary-condition support for LPT.

Data Types

type  lpt_periodic_bc_t
 

Functions/Subroutines

subroutine lpt_periodic_bc_free (this)
 Free periodic-boundary wrapping metadata.
 
subroutine lpt_periodic_bc_init (this, msh, dm_xh, coef)
 Initialise rotational or translational periodic wrapping from the mesh.
 
subroutine lpt_periodic_bc_wrap (this, x, y, z, n, 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 particle positions and optional vector histories across boundaries.
 
subroutine lpt_periodic_bc_sync_from_device (x, y, z, 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)
 Copy wrapped particle coordinates and optional histories back to host.
 
subroutine lpt_periodic_bc_reset (this)
 Reset all periodic wrapping flags, directions, and extents.
 
subroutine lpt_periodic_bc_init_rotational (this, msh, dm_xh, coef)
 Detect and initialise rotational periodic wrapping.
 
subroutine lpt_periodic_bc_init_translational (this, msh)
 Detect unique translational periodic directions from facet pairs.
 
subroutine lpt_get_facet_points (msh, el, facet, pts)
 Gather the corner points of a mesh facet.
 
subroutine lpt_get_periodic_center (msh, i_periodic, pt)
 Compute the geometric center of a periodic source facet.
 
subroutine lpt_normalize (v)
 Normalise a 3-vector when its norm is above LPT periodic tolerance.
 
subroutine lpt_periodic_bc_clear_translational (this)
 Clear translational periodic direction, extent, and shift storage.
 
pure real(kind=rp) function, dimension(3) lpt_periodic_bc_get_dir (this, idx)
 
subroutine lpt_periodic_bc_set_translational (this, idx, dir, periodic_min, periodic_max, shift, periodic_len)
 Store one translational periodic wrapping direction.
 

Variables

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

Function/Subroutine Documentation

◆ lpt_get_facet_points()

subroutine lpt_periodic_bc::lpt_get_facet_points ( type(mesh_t), intent(in msh,
integer, intent(in el,
integer, intent(in facet,
real(kind=rp), dimension(3, 4), intent(out pts 
)
private
Parameters
mshMesh containing the element.
elLocal element index.
facetFacet index on the element.
ptsOutput corner coordinates.

Definition at line 437 of file lpt_periodic_bc.f90.

Here is the caller graph for this function:

◆ lpt_get_periodic_center()

subroutine lpt_periodic_bc::lpt_get_periodic_center ( type(mesh_t), intent(in msh,
integer, intent(in i_periodic,
real(kind=rp), dimension(3), intent(out pt 
)
private
Parameters
mshMesh containing periodic metadata.
i_periodicPeriodic-facet entry index.
ptOutput facet-center coordinate.

Definition at line 472 of file lpt_periodic_bc.f90.

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

◆ lpt_normalize()

subroutine lpt_periodic_bc::lpt_normalize ( real(kind=rp), dimension(3), intent(inout v)
private
Parameters
vVector to normalise in place.

Definition at line 487 of file lpt_periodic_bc.f90.

Here is the caller graph for this function:

◆ lpt_periodic_bc_clear_translational()

subroutine lpt_periodic_bc::lpt_periodic_bc_clear_translational ( class(lpt_periodic_bc_t), intent(inout this)
private

Definition at line 496 of file lpt_periodic_bc.f90.

Here is the caller graph for this function:

◆ lpt_periodic_bc_free()

subroutine lpt_periodic_bc::lpt_periodic_bc_free ( class(lpt_periodic_bc_t), intent(inout this)

Definition at line 102 of file lpt_periodic_bc.f90.

◆ lpt_periodic_bc_get_dir()

pure real(kind=rp) function, dimension(3) lpt_periodic_bc::lpt_periodic_bc_get_dir ( class(lpt_periodic_bc_t), intent(in this,
integer, intent(in idx 
)
private

Definition at line 528 of file lpt_periodic_bc.f90.

Here is the caller graph for this function:

◆ lpt_periodic_bc_init()

subroutine lpt_periodic_bc::lpt_periodic_bc_init ( class(lpt_periodic_bc_t), intent(inout this,
type(mesh_t), intent(in), target  msh,
type(dofmap_t), intent(in dm_xh,
type(coef_t), intent(in coef 
)
private
Parameters
mshMesh containing periodic facet pairing.
dm_XhCoordinate dofmap used for rotational extents.
coefCoefficients used to identify cyclic geometry.

Definition at line 112 of file lpt_periodic_bc.f90.

◆ lpt_periodic_bc_init_rotational()

subroutine lpt_periodic_bc::lpt_periodic_bc_init_rotational ( class(lpt_periodic_bc_t), intent(inout this,
type(mesh_t), intent(in msh,
type(dofmap_t), intent(in dm_xh,
type(coef_t), intent(in coef 
)
private
Parameters
mshMesh used to determine dimensionality.
dm_XhCoordinate dofmap used to compute angular extents.
coefCoefficients carrying cyclic-geometry metadata.

Definition at line 260 of file lpt_periodic_bc.f90.

◆ lpt_periodic_bc_init_translational()

subroutine lpt_periodic_bc::lpt_periodic_bc_init_translational ( class(lpt_periodic_bc_t), intent(inout this,
type(mesh_t), intent(in msh 
)
private
Parameters
mshMesh containing periodic facet-pair metadata.

Definition at line 296 of file lpt_periodic_bc.f90.

Here is the call graph for this function:

◆ lpt_periodic_bc_reset()

subroutine lpt_periodic_bc::lpt_periodic_bc_reset ( class(lpt_periodic_bc_t), intent(inout this)
private

Definition at line 244 of file lpt_periodic_bc.f90.

Here is the call graph for this function:

◆ lpt_periodic_bc_set_translational()

subroutine lpt_periodic_bc::lpt_periodic_bc_set_translational ( class(lpt_periodic_bc_t), intent(inout this,
integer, intent(in idx,
real(kind=rp), dimension(3), intent(in dir,
real(kind=rp), intent(in periodic_min,
real(kind=rp), intent(in periodic_max,
real(kind=rp), dimension(3), intent(in shift,
real(kind=rp), intent(in periodic_len 
)
private
Parameters
idxDirection slot in the fixed three-direction storage.
dirUnit direction of periodic wrapping.
periodic_minMinimum coordinate projected on dir.
periodic_maxMaximum coordinate projected on dir.
shiftTranslation vector between paired facets.
periodic_lenPeriodic length along dir.

Definition at line 555 of file lpt_periodic_bc.f90.

Here is the caller graph for this function:

◆ lpt_periodic_bc_sync_from_device()

subroutine lpt_periodic_bc::lpt_periodic_bc_sync_from_device ( type(vector_t), intent(inout x,
type(vector_t), intent(inout y,
type(vector_t), intent(inout z,
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 
)
private

Definition at line 204 of file lpt_periodic_bc.f90.

Here is the caller graph for this function:

◆ lpt_periodic_bc_wrap()

subroutine lpt_periodic_bc::lpt_periodic_bc_wrap ( class(lpt_periodic_bc_t), intent(inout this,
type(vector_t), intent(inout x,
type(vector_t), intent(inout y,
type(vector_t), intent(inout z,
integer, intent(in n,
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 
)
private
Parameters
xParticle x coordinates.
yParticle y coordinates.
zParticle z coordinates.
nNumber of local particles.

Definition at line 133 of file lpt_periodic_bc.f90.

Here is the call graph for this function:

Variable Documentation

◆ lpt_periodic_tol

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

Definition at line 52 of file lpt_periodic_bc.f90.