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

Device wrappers for basis-aware mixed boundary-condition constraint kernels. These routines operate on a resolved mixed-node mask together with a local orthonormal basis stored as nodewise normal and tangent vectors. They are used to impose homogeneous or prescribed constraints on vector fields in the local (n, t1, t2) basis on device backends.

Data Types

interface  hip_constrain_mixed_bc_set
 
interface  hip_constrain_mixed_bc_set_const
 
interface  hip_constrain_mixed_bc_zero
 

Functions/Subroutines

subroutine, public device_constrain_mixed_bc_zero (mixed_msk, x, y, z, constraint_n, constraint_t1, constraint_t2, n, t1, t2, m, strm)
 Constrain mixed-boundary projections by zeroing the selected local components on the device.
 
subroutine, public device_constrain_mixed_bc_set (mixed_msk, x, y, z, constraint_n, constraint_t1, constraint_t2, n, t1, t2, values_n, values_t1, values_t2, m, strm)
 Constrain mixed-boundary projections by assigning prescribed local components derived from nodewise target vectors on the device.
 
subroutine, public device_constrain_mixed_bc_set_const (mixed_msk, x, y, z, constraint_n, constraint_t1, constraint_t2, n, t1, t2, value_n, value_t1, value_t2, m, strm)
 Constrain mixed-boundary projections by assigning prescribed local components derived from a constant target vector on the device.
 

Function/Subroutine Documentation

◆ device_constrain_mixed_bc_set()

subroutine, public device_constrain_mixed_bc::device_constrain_mixed_bc_set ( type(c_ptr), intent(in mixed_msk,
type(c_ptr), intent(in x,
type(c_ptr), intent(in y,
type(c_ptr), intent(in z,
integer, intent(in constraint_n,
integer, intent(in constraint_t1,
integer, intent(in constraint_t2,
type(c_ptr), intent(in n,
type(c_ptr), intent(in t1,
type(c_ptr), intent(in t2,
type(c_ptr), intent(in values_n,
type(c_ptr), intent(in values_t1,
type(c_ptr), intent(in values_t2,
integer, intent(in m,
type(c_ptr), intent(in), optional  strm 
)
Parameters
[in]mixed_mskDevice pointer to the resolved mixed-node mask.
[in,out]xDevice pointer to the x-component field.
[in,out]yDevice pointer to the y-component field.
[in,out]zDevice pointer to the z-component field.
[in]constraint_nNonzero if the normal component is constrained.
[in]constraint_t1Nonzero if the first tangent component is constrained.
[in]constraint_t2Nonzero if the second tangent component is constrained.
[in]nDevice pointer to the nodewise normal vectors.
[in]t1Device pointer to the nodewise first tangent vectors.
[in]t2Device pointer to the nodewise second tangent vectors.
[in]values_nDevice pointer to the x-components of the target vectors.
[in]values_t1Device pointer to the y-components of the target vectors.
[in]values_t2Device pointer to the z-components of the target vectors.
[in]mNumber of resolved mixed nodes.
[in]strmOptional backend stream/queue to launch on.

Definition at line 235 of file device_constrain_mixed_bc.F90.

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

◆ device_constrain_mixed_bc_set_const()

subroutine, public device_constrain_mixed_bc::device_constrain_mixed_bc_set_const ( type(c_ptr), intent(in mixed_msk,
type(c_ptr), intent(in x,
type(c_ptr), intent(in y,
type(c_ptr), intent(in z,
integer, intent(in constraint_n,
integer, intent(in constraint_t1,
integer, intent(in constraint_t2,
type(c_ptr), intent(in n,
type(c_ptr), intent(in t1,
type(c_ptr), intent(in t2,
real(kind=rp), intent(in value_n,
real(kind=rp), intent(in value_t1,
real(kind=rp), intent(in value_t2,
integer, intent(in m,
type(c_ptr), intent(in), optional  strm 
)
Parameters
[in]mixed_mskDevice pointer to the resolved mixed-node mask.
[in,out]xDevice pointer to the x-component field.
[in,out]yDevice pointer to the y-component field.
[in,out]zDevice pointer to the z-component field.
[in]constraint_nNonzero if the normal component is constrained.
[in]constraint_t1Nonzero if the first tangent component is constrained.
[in]constraint_t2Nonzero if the second tangent component is constrained.
[in]nDevice pointer to the nodewise normal vectors.
[in]t1Device pointer to the nodewise first tangent vectors.
[in]t2Device pointer to the nodewise second tangent vectors.
[in]value_nx-component of the constant target vector.
[in]value_t1y-component of the constant target vector.
[in]value_t2z-component of the constant target vector.
[in]mNumber of resolved mixed nodes.
[in]strmOptional backend stream/queue to launch on.

Definition at line 291 of file device_constrain_mixed_bc.F90.

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

◆ device_constrain_mixed_bc_zero()

subroutine, public device_constrain_mixed_bc::device_constrain_mixed_bc_zero ( type(c_ptr), intent(in mixed_msk,
type(c_ptr), intent(in x,
type(c_ptr), intent(in y,
type(c_ptr), intent(in z,
integer, intent(in constraint_n,
integer, intent(in constraint_t1,
integer, intent(in constraint_t2,
type(c_ptr), intent(in n,
type(c_ptr), intent(in t1,
type(c_ptr), intent(in t2,
integer, intent(in m,
type(c_ptr), intent(in), optional  strm 
)
Parameters
[in]mixed_mskDevice pointer to the resolved mixed-node mask.
[in,out]xDevice pointer to the x-component field.
[in,out]yDevice pointer to the y-component field.
[in,out]zDevice pointer to the z-component field.
[in]constraint_nNonzero if the normal component is constrained.
[in]constraint_t1Nonzero if the first tangent component is constrained.
[in]constraint_t2Nonzero if the second tangent component is constrained.
[in]nDevice pointer to the nodewise normal vectors.
[in]t1Device pointer to the nodewise first tangent vectors.
[in]t2Device pointer to the nodewise second tangent vectors.
[in]mNumber of resolved mixed nodes.
[in]strmOptional backend stream/queue to launch on.

Definition at line 181 of file device_constrain_mixed_bc.F90.

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