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

Template for a user-defined scalar Pn/Pn boundary condition.

Data Types

type  scalar_pnpn_bc_template_t
 A user-defined scalar Pn/Pn boundary condition. More...
 

Functions/Subroutines

subroutine scalar_pnpn_bc_template_init (this, coef, json)
 Constructor from JSON.
 
subroutine scalar_pnpn_bc_template_apply_scalar (this, x, n, time, strong)
 Apply the boundary condition to a scalar field on the CPU.
 
subroutine scalar_pnpn_bc_template_apply_vector (this, x, y, z, n, time, strong)
 Apply the boundary condition to a vector field on the CPU.
 
subroutine scalar_pnpn_bc_template_apply_scalar_dev (this, x_d, time, strong, strm)
 Apply the boundary condition to a scalar field on the device.
 
subroutine scalar_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 scalar_pnpn_bc_template_free (this)
 Destructor.
 
subroutine scalar_pnpn_bc_template_finalize (this)
 Finalize the boundary condition.
 
subroutine, public scalar_pnpn_bc_template_register_types ()
 Register the custom boundary condition type with scalar Pn/Pn.
 
subroutine scalar_pnpn_bc_template_allocate (obj)
 Allocate the custom boundary condition.
 

Function/Subroutine Documentation

◆ scalar_pnpn_bc_template_allocate()

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

Definition at line 185 of file scalar_pnpn_bc_template.f90.

Here is the caller graph for this function:

◆ scalar_pnpn_bc_template_apply_scalar()

subroutine scalar_pnpn_bc_template::scalar_pnpn_bc_template_apply_scalar ( class(scalar_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 93 of file scalar_pnpn_bc_template.f90.

◆ scalar_pnpn_bc_template_apply_scalar_dev()

subroutine scalar_pnpn_bc_template::scalar_pnpn_bc_template_apply_scalar_dev ( class(scalar_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 128 of file scalar_pnpn_bc_template.f90.

◆ scalar_pnpn_bc_template_apply_vector()

subroutine scalar_pnpn_bc_template::scalar_pnpn_bc_template_apply_vector ( class(scalar_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 111 of file scalar_pnpn_bc_template.f90.

◆ scalar_pnpn_bc_template_apply_vector_dev()

subroutine scalar_pnpn_bc_template::scalar_pnpn_bc_template_apply_vector_dev ( class(scalar_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 148 of file scalar_pnpn_bc_template.f90.

◆ scalar_pnpn_bc_template_finalize()

subroutine scalar_pnpn_bc_template::scalar_pnpn_bc_template_finalize ( class(scalar_pnpn_bc_template_t), intent(inout), target  this)
private

Definition at line 169 of file scalar_pnpn_bc_template.f90.

◆ scalar_pnpn_bc_template_free()

subroutine scalar_pnpn_bc_template::scalar_pnpn_bc_template_free ( class(scalar_pnpn_bc_template_t), intent(inout), target  this)
private

Definition at line 162 of file scalar_pnpn_bc_template.f90.

◆ scalar_pnpn_bc_template_init()

subroutine scalar_pnpn_bc_template::scalar_pnpn_bc_template_init ( class(scalar_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 75 of file scalar_pnpn_bc_template.f90.

◆ scalar_pnpn_bc_template_register_types()

subroutine, public scalar_pnpn_bc_template::scalar_pnpn_bc_template_register_types

Definition at line 176 of file scalar_pnpn_bc_template.f90.

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