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

Defines a list of bc_t.

Data Types

type  bc_list_t
 A list of allocatable `bc_t`. Follows the standard interface of lists. More...
 

Functions/Subroutines

subroutine bc_list_init (this, capacity)
 Constructor.
 
subroutine bc_list_free (this)
 Destructor.
 
subroutine bc_list_append (this, bc)
 Append a condition to the end of the list.
 
class(bc_t) function, pointer bc_list_get (this, i)
 Get the item at the given index.
 
subroutine bc_list_apply_scalar_array (this, x, n, time, strong, strm)
 Apply a list of boundary conditions to a scalar field.
 
subroutine bc_list_apply_vector_array (this, x, y, z, n, time, strong, strm)
 Apply a list of boundary conditions to a vector field.
 
subroutine bc_list_apply_scalar_device (this, x_d, time, strong, strm)
 Apply a list of boundary conditions to a scalar field on the device.
 
subroutine bc_list_apply_vector_device (this, x_d, y_d, z_d, time, strong, strm)
 Apply a list of boundary conditions to a vector field on the device.
 
subroutine bc_list_apply_scalar_field (this, x, time, strong, strm)
 Apply a list of boundary conditions to a scalar field.
 
subroutine bc_list_apply_vector_field (this, x, y, z, time, strong, strm)
 Apply a list of boundary conditions to a vector field.
 
pure logical function bc_list_strong (this, i)
 Return whether the bc is strong or not.
 
logical function bc_list_is_empty (this)
 Return whether the list is empty.
 
pure integer function bc_list_size (this)
 Return the number of items in the list.
 

Function/Subroutine Documentation

◆ bc_list_append()

subroutine bc_list::bc_list_append ( class(bc_list_t), intent(inout this,
class(bc_t), intent(inout), target  bc 
)
private
Parameters
bcThe boundary condition to add.

Will add the object to the list, even if the mask has zero size.

Definition at line 135 of file bc_list.f90.

◆ bc_list_apply_scalar_array()

subroutine bc_list::bc_list_apply_scalar_array ( class(bc_list_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,
type(c_ptr), intent(inout), optional  strm 
)
private
Parameters
xThe field to apply the boundary conditions to.
nThe size of x.
timeCurrent time state.
strongFilter for strong or weak boundary conditions. Default is to apply the whole list.
strmDevice strm

Definition at line 175 of file bc_list.f90.

◆ bc_list_apply_scalar_device()

subroutine bc_list::bc_list_apply_scalar_device ( class(bc_list_t), intent(inout 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), optional  strm 
)
private
Parameters
x_dThe field to apply the boundary conditions to.
timeCurrent time state.
strongFilter for strong or weak boundary conditions. Default is to apply the whole list.
strmDevice strm

Definition at line 245 of file bc_list.f90.

◆ bc_list_apply_scalar_field()

subroutine bc_list::bc_list_apply_scalar_field ( class(bc_list_t), intent(inout this,
type(field_t), intent(inout x,
type(time_state_t), intent(in), optional  time,
logical, intent(in), optional  strong,
type(c_ptr), intent(inout), optional  strm 
)
private
Parameters
xThe field to apply the boundary conditions to.
timeCurrent time state.
strongFilter for strong or weak boundary conditions. Default is to apply the whole list.
strmDevice stream

Definition at line 306 of file bc_list.f90.

◆ bc_list_apply_vector_array()

subroutine bc_list::bc_list_apply_vector_array ( class(bc_list_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,
type(c_ptr), intent(inout), optional  strm 
)
private
Parameters
xThe x comp of the field for which to apply the bcs.
yThe y comp of the field for which to apply the bcs.
zThe z comp of the field for which to apply the bcs.
nThe size of x, y, z.
tCurrent time state.
strongFilter for strong or weak boundary conditions. Default is to apply the whole list.
strmDevice stream

Definition at line 208 of file bc_list.f90.

◆ bc_list_apply_vector_device()

subroutine bc_list::bc_list_apply_vector_device ( class(bc_list_t), intent(inout 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), optional  strm 
)
private
Parameters
x_dThe x comp of the field for which to apply the bcs.
y_dThe y comp of the field for which to apply the bcs.
z_dThe z comp of the field for which to apply the bcs.
tCurrent time state.
strongFilter for strong or weak boundary conditions. Default is to apply the whole list.
strmDevice stream

Definition at line 275 of file bc_list.f90.

◆ bc_list_apply_vector_field()

subroutine bc_list::bc_list_apply_vector_field ( class(bc_list_t), intent(inout this,
type(field_t), intent(inout x,
type(field_t), intent(inout y,
type(field_t), intent(inout z,
type(time_state_t), intent(in), optional  time,
logical, intent(in), optional  strong,
type(c_ptr), intent(inout), optional  strm 
)
private
Parameters
xThe x comp of the field for which to apply the bcs.
yThe y comp of the field for which to apply the bcs.
zThe z comp of the field for which to apply the bcs.
timeCurrent time state.
strongFilter for strong or weak boundary conditions. Default is to apply the whole list.
strmDevice stream

Definition at line 329 of file bc_list.f90.

◆ bc_list_free()

subroutine bc_list::bc_list_free ( class(bc_list_t), intent(inout this)
private
Note
This will only nullify all pointers, not deallocate any conditions pointed to by the list

Definition at line 116 of file bc_list.f90.

◆ bc_list_get()

class(bc_t) function, pointer bc_list::bc_list_get ( class(bc_list_t), intent(in this,
integer, intent(in i 
)
private
Parameters
iThe index of the item to get.
Returns
The item at the given index.

Definition at line 155 of file bc_list.f90.

◆ bc_list_init()

subroutine bc_list::bc_list_init ( class(bc_list_t), intent(inout), target  this,
integer, optional  capacity 
)
Parameters
sizeThe size of the list to allocate.

Definition at line 96 of file bc_list.f90.

◆ bc_list_is_empty()

logical function bc_list::bc_list_is_empty ( class(bc_list_t), intent(in), target  this)
private

Definition at line 356 of file bc_list.f90.

◆ bc_list_size()

pure integer function bc_list::bc_list_size ( class(bc_list_t), intent(in), target  this)
private

Definition at line 374 of file bc_list.f90.

◆ bc_list_strong()

pure logical function bc_list::bc_list_strong ( class(bc_list_t), intent(in), target  this,
integer, intent(in i 
)
private

Definition at line 347 of file bc_list.f90.