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

Template for a user-defined fluid Pn/Pn velocity boundary condition. A pressure condition is registered the same way, with register_fluid_pnpn_pressure_bc instead of register_fluid_pnpn_velocity_bc.

Data Types

type  fluid_pnpn_bc_template_t
 A user-defined fluid Pn/Pn velocity boundary condition. More...
 

Functions/Subroutines

subroutine fluid_pnpn_bc_template_init (this, coef, json)
 Constructor from JSON.
 
subroutine fluid_pnpn_bc_template_apply_scalar (this, x, n, time, strong)
 Apply the boundary condition to a scalar field on the CPU.
 
subroutine fluid_pnpn_bc_template_apply_vector (this, x, y, z, n, time, strong)
 Apply the boundary condition to a vector field on the CPU.
 
subroutine fluid_pnpn_bc_template_apply_scalar_dev (this, x_d, time, strong, strm)
 Apply the boundary condition to a scalar field on the device.
 
subroutine fluid_pnpn_bc_template_apply_vector_dev (this, x_d, y_d, z_d, time, strong, strm)
 Apply the boundary condition to a vector field on the device.
 
subroutine fluid_pnpn_bc_template_free (this)
 Destructor.
 
subroutine fluid_pnpn_bc_template_finalize (this)
 Finalize the boundary condition.
 
subroutine, public fluid_pnpn_bc_template_register_types ()
 Register the custom velocity boundary condition type with fluid Pn/Pn.
 
subroutine fluid_pnpn_bc_template_allocate (obj)
 Allocate the custom boundary condition.
 

Function/Subroutine Documentation

◆ fluid_pnpn_bc_template_allocate()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_allocate ( class(bc_t), intent(inout), pointer  obj)
private
Parameters
[in,out]objThe polymorphic boundary condition to allocate.

Definition at line 192 of file fluid_pnpn_bc_template.f90.

Here is the caller graph for this function:

◆ fluid_pnpn_bc_template_apply_scalar()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_apply_scalar ( class(fluid_pnpn_bc_template_t), intent(inout)  this,
real(kind=rp), dimension(n), intent(inout)  x,
integer, intent(in)  n,
type(time_state_t), intent(in), optional  time,
logical, intent(in), optional  strong 
)
private
Parameters
[in,out]xThe scalar field values.
[in]nThe number of field values.
[in]timeThe current time state.
[in]strongWhether strong or weak conditions are being applied.

Definition at line 100 of file fluid_pnpn_bc_template.f90.

◆ fluid_pnpn_bc_template_apply_scalar_dev()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_apply_scalar_dev ( class(fluid_pnpn_bc_template_t), intent(inout), target  this,
type(c_ptr), intent(inout)  x_d,
type(time_state_t), intent(in), optional  time,
logical, intent(in), optional  strong,
type(c_ptr), intent(inout)  strm 
)
private
Parameters
[in,out]x_dDevice pointer to the scalar field values.
[in]timeThe current time state.
[in]strongWhether strong or weak conditions are being applied.
[in,out]strmThe device stream.

Definition at line 135 of file fluid_pnpn_bc_template.f90.

◆ fluid_pnpn_bc_template_apply_vector()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_apply_vector ( class(fluid_pnpn_bc_template_t), intent(inout)  this,
real(kind=rp), dimension(n), intent(inout)  x,
real(kind=rp), dimension(n), intent(inout)  y,
real(kind=rp), dimension(n), intent(inout)  z,
integer, intent(in)  n,
type(time_state_t), intent(in), optional  time,
logical, intent(in), optional  strong 
)
private
Parameters
[in,out]xThe first vector component.
[in,out]yThe second vector component.
[in,out]zThe third vector component.
[in]nThe number of values in each component.
[in]timeThe current time state.
[in]strongWhether strong or weak conditions are being applied.

Definition at line 118 of file fluid_pnpn_bc_template.f90.

◆ fluid_pnpn_bc_template_apply_vector_dev()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_apply_vector_dev ( class(fluid_pnpn_bc_template_t), intent(inout), target  this,
type(c_ptr), intent(inout)  x_d,
type(c_ptr), intent(inout)  y_d,
type(c_ptr), intent(inout)  z_d,
type(time_state_t), intent(in), optional  time,
logical, intent(in), optional  strong,
type(c_ptr), intent(inout)  strm 
)
private
Parameters
[in,out]x_dDevice pointer to the first vector component.
[in,out]y_dDevice pointer to the second vector component.
[in,out]z_dDevice pointer to the third vector component.
[in]timeThe current time state.
[in]strongWhether strong or weak conditions are being applied.
[in,out]strmThe device stream.

Definition at line 155 of file fluid_pnpn_bc_template.f90.

◆ fluid_pnpn_bc_template_finalize()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_finalize ( class(fluid_pnpn_bc_template_t), intent(inout), target  this)
private

Definition at line 176 of file fluid_pnpn_bc_template.f90.

◆ fluid_pnpn_bc_template_free()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_free ( class(fluid_pnpn_bc_template_t), intent(inout), target  this)
private

Definition at line 169 of file fluid_pnpn_bc_template.f90.

◆ fluid_pnpn_bc_template_init()

subroutine fluid_pnpn_bc_template::fluid_pnpn_bc_template_init ( class(fluid_pnpn_bc_template_t), intent(inout), target  this,
type(coef_t), intent(in), target  coef,
type(json_file), intent(inout)  json 
)
Parameters
[in]coefThe SEM coefficients.
[in,out]jsonThe JSON object configuring the boundary condition.

Definition at line 78 of file fluid_pnpn_bc_template.f90.

◆ fluid_pnpn_bc_template_register_types()

subroutine, public fluid_pnpn_bc_template::fluid_pnpn_bc_template_register_types

Definition at line 183 of file fluid_pnpn_bc_template.f90.

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