Neko 1.99.3
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(thisget_by_name (this, name)
 Get the item with the given name.
 
procedure, pass(thisget_by_zone_index (this, zone_index)
 Get the item that applies to the given zone_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_ = 0
 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 49 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 64 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 80 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 80 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 80 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 80 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 80 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 80 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 84 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 88 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 92 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 86 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 90 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 94 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 61 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 66 of file bc_list.f90.

◆ get_by_name()

procedure, pass(this) bc_list::bc_list_t::get_by_name ( class(bc_list_t), intent(in this,
character(len=*), intent(in name 
)
Parameters
nameThe name of the item to get.
Returns
The item with the given name.

Definition at line 68 of file bc_list.f90.

◆ get_by_zone_index()

procedure, pass(this) bc_list::bc_list_t::get_by_zone_index ( class(bc_list_t), intent(in this,
integer, intent(in zone_index 
)
Parameters
zone_indexwhere the bc applies.
Returns
The item at the given zone_index.

Definition at line 70 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 59 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 73 of file bc_list.f90.

◆ size()

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

Definition at line 77 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 75 of file bc_list.f90.

Member Data Documentation

◆ capacity

integer, private bc_list::bc_list_t::capacity
private

Definition at line 56 of file bc_list.f90.

◆ items

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

Definition at line 51 of file bc_list.f90.

◆ size_

integer, private bc_list::bc_list_t::size_ = 0
private

Definition at line 53 of file bc_list.f90.


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