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

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

Public Member Functions

procedure, pass(thisinit (this, capacity)
 Constructor.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thisappend (this, bc)
 Append an item to the end of the list.
 
procedure, pass(thisget (this, i)
 Get the item at the given index.
 
procedure, pass(thisis_empty (this)
 Check whether the list is empty.
 
procedure, pass(thisstrong (this, i)
 Return wether a given item is a strong bc.
 
procedure size (this)
 Return the number of items in the list.
 
generic apply (this, x, n, time, strong, strm)
 Apply all boundary conditions in the list.
 
generic apply (this, x, y, z, n, time, strong, strm)
 Apply all boundary conditions in the list.
 
generic apply (this, x_d, time, strong, strm)
 Apply all boundary conditions in the list.
 
generic apply (this, x_d, y_d, z_d, time, strong, strm)
 Apply all boundary conditions in the list.
 
generic apply (this, x, time, strong, strm)
 Apply all boundary conditions in the list.
 
generic apply (this, x, y, z, time, strong, strm)
 Apply all boundary conditions in the list.
 
procedure, pass(thisapply_scalar (this, x, n, time, strong, strm)
 Apply the boundary conditions to a scalar array.
 
procedure, pass(thisapply_vector (this, x, y, z, n, time, strong, strm)
 Apply the boundary conditions to a vector array.
 
procedure, pass(thisapply_scalar_device (this, x_d, time, strong, strm)
 Apply the boundary conditions to a scalar device array.
 
procedure, pass(thisapply_vector_device (this, x_d, y_d, z_d, time, strong, strm)
 Apply the boundary conditions to a vector device array.
 
procedure, pass(thisapply_scalar_field (this, x, time, strong, strm)
 Apply the boundary conditions to a scalar field.
 
procedure, pass(thisapply_vector_field (this, x, y, z, time, strong, strm)
 Apply the boundary conditions to a vector field.
 

Private Attributes

class(bc_ptr_t), dimension(:), allocatable, private items
 
integer, private size_
 Number of items in the list that are themselves allocated.
 
integer, private capacity
 Capacity, i.e. the size of the items list. Some items may themselves be unallocated.
 

Detailed Description

Definition at line 48 of file bc_list.f90.

Member Function/Subroutine Documentation

◆ append()

procedure, pass(this) bc_list::bc_list_t::append ( class(bc_list_t), intent(inout this,
class(bc_t), intent(inout), target  bc 
)
Parameters
bcThe boundary condition to add.

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

Definition at line 63 of file bc_list.f90.

◆ apply() [1/6]

generic bc_list::bc_list_t::apply ( 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 
)
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 75 of file bc_list.f90.

◆ apply() [2/6]

generic bc_list::bc_list_t::apply ( 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 
)
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 75 of file bc_list.f90.

◆ apply() [3/6]

generic bc_list::bc_list_t::apply ( 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 
)
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 75 of file bc_list.f90.

◆ apply() [4/6]

generic bc_list::bc_list_t::apply ( 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 
)
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 75 of file bc_list.f90.

◆ apply() [5/6]

generic bc_list::bc_list_t::apply ( 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 
)
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 75 of file bc_list.f90.

◆ apply() [6/6]

generic bc_list::bc_list_t::apply ( 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 
)
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 75 of file bc_list.f90.

◆ apply_scalar()

procedure, pass(this) bc_list::bc_list_t::apply_scalar ( 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 
)
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 79 of file bc_list.f90.

◆ apply_scalar_device()

procedure, pass(this) bc_list::bc_list_t::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 
)
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 83 of file bc_list.f90.

◆ apply_scalar_field()

procedure, pass(this) bc_list::bc_list_t::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 
)
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 87 of file bc_list.f90.

◆ apply_vector()

procedure, pass(this) bc_list::bc_list_t::apply_vector ( 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 
)
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 81 of file bc_list.f90.

◆ apply_vector_device()

procedure, pass(this) bc_list::bc_list_t::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 
)
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 85 of file bc_list.f90.

◆ apply_vector_field()

procedure, pass(this) bc_list::bc_list_t::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 
)
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 89 of file bc_list.f90.

◆ free()

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

Definition at line 60 of file bc_list.f90.

◆ get()

procedure, pass(this) bc_list::bc_list_t::get ( class(bc_list_t), intent(in this,
integer, intent(in i 
)
Parameters
iThe index of the item to get.
Returns
The item at the given index.

Definition at line 65 of file bc_list.f90.

◆ init()

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

Definition at line 58 of file bc_list.f90.

◆ is_empty()

procedure, pass(this) bc_list::bc_list_t::is_empty ( class(bc_list_t), intent(in), target  this)

Definition at line 68 of file bc_list.f90.

◆ size()

procedure bc_list::bc_list_t::size ( class(bc_list_t), intent(in), target  this)

Definition at line 72 of file bc_list.f90.

◆ strong()

procedure, pass(this) bc_list::bc_list_t::strong ( class(bc_list_t), intent(in), target  this,
integer, intent(in i 
)

Definition at line 70 of file bc_list.f90.

Member Data Documentation

◆ capacity

integer, private bc_list::bc_list_t::capacity
private

Definition at line 55 of file bc_list.f90.

◆ items

class(bc_ptr_t), dimension(:), allocatable, private bc_list::bc_list_t::items
private

Definition at line 50 of file bc_list.f90.

◆ size_

integer, private bc_list::bc_list_t::size_
private

Definition at line 52 of file bc_list.f90.


The documentation for this type was generated from the following file: