Neko  0.8.99
A portable framework for high-order spectral element flow simulations
bc Module Reference

Defines a boundary condition.

Data Types

type  bc_t
 Base type for a boundary condition. More...
 
type  bcp_t
 Pointer to boundary condtiion. More...
 
type  bc_list_t
 A list of boundary conditions. More...
 
interface  bc_apply_scalar
 Apply the boundary condition to a scalar field. More...
 
interface  bc_apply_vector
 Apply the boundary condition to a vector field. More...
 
interface  bc_destructor
 Destructor. More...
 
interface  bc_apply_scalar_dev
 Apply the boundary condition to a scalar field on the device. More...
 
interface  bc_apply_vector_dev
 Apply the boundary condition to a vector field on the device. More...
 
interface  bc_list_apply
 

Functions/Subroutines

subroutine bc_init_base (this, coef)
 Constructor. More...
 
subroutine bc_free_base (this)
 Destructor for the base type, bc_t. More...
 
subroutine bc_mark_facet (this, facet, el)
 Mark facet on element el as part of the boundary condition. More...
 
subroutine bc_mark_facets (this, facet_list)
 Mark all facets from a (facet, el) tuple list. More...
 
subroutine bc_mark_zone (this, bc_zone)
 Mark all facets from a zone. More...
 
subroutine bc_mark_zones_from_list (this, bc_zones, bc_key, bc_labels)
 Mark all facets from a list of zones, also marks type of bc in the mesh. The facet_type in mesh is because of the fdm from Nek5000... That is a hack that should be removed at some point... More...
 
subroutine bc_finalize (this)
 Finalize the construction of the bc by populting the msk and facet arrays. More...
 
subroutine, public bc_list_init (bclst, size)
 Constructor for a list of boundary conditions. More...
 
subroutine, public bc_list_free (bclst)
 Destructor for a list of boundary conditions. More...
 
subroutine, public bc_list_add (bclst, bc)
 Add a condition to a list of boundary conditions. More...
 
subroutine, public bc_list_apply_scalar (bclst, x, n, t, tstep)
 Apply a list of boundary conditions to a scalar field. More...
 
subroutine, public bc_list_apply_vector (bclst, x, y, z, n, t, tstep)
 Apply a list of boundary conditions to a vector field. More...
 

Function/Subroutine Documentation

◆ bc_finalize()

subroutine bc::bc_finalize ( class(bc_t), intent(inout), target  this)
private

This will linearize the marked facet's indicies in the msk array.

Todo:
add 2D case

Definition at line 359 of file bc.f90.

Here is the call graph for this function:

◆ bc_free_base()

subroutine bc::bc_free_base ( class(bc_t), intent(inout)  this)
private

Definition at line 217 of file bc.f90.

Here is the call graph for this function:

◆ bc_init_base()

subroutine bc::bc_init_base ( class(bc_t), intent(inout)  this,
type(coef_t), intent(in), target  coef 
)
private
Parameters
dofMap of degrees of freedom.

Definition at line 201 of file bc.f90.

◆ bc_list_add()

subroutine, public bc::bc_list_add ( type(bc_list_t), intent(inout)  bclst,
class(bc_t), intent(inout), target  bc 
)
Parameters
bcThe boundary condition to add.

Do not add if bc is empty

Definition at line 500 of file bc.f90.

Here is the caller graph for this function:

◆ bc_list_apply_scalar()

subroutine, public bc::bc_list_apply_scalar ( type(bc_list_t), intent(inout)  bclst,
real(kind=rp), dimension(n), intent(inout)  x,
integer, intent(in)  n,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)
Parameters
xThe field to apply the boundary conditions to.
nThe size of x.
tCurrent time.
tstepCurrent time-step.

Definition at line 525 of file bc.f90.

Here is the caller graph for this function:

◆ bc_list_apply_vector()

subroutine, public bc::bc_list_apply_vector ( type(bc_list_t), intent(inout)  bclst,
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,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)
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.
tstepCurrent time-step.

Definition at line 582 of file bc.f90.

Here is the caller graph for this function:

◆ bc_list_free()

subroutine, public bc::bc_list_free ( type(bc_list_t), intent(inout)  bclst)
Note
This will only nullify all pointers, not deallocate any conditions pointed to by the list

Definition at line 486 of file bc.f90.

Here is the caller graph for this function:

◆ bc_list_init()

subroutine, public bc::bc_list_init ( type(bc_list_t), intent(inout), target  bclst,
integer, optional  size 
)
Parameters
sizeThe size of the list to allocate.

Definition at line 459 of file bc.f90.

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

◆ bc_mark_facet()

subroutine bc::bc_mark_facet ( class(bc_t), intent(inout)  this,
integer, intent(in)  facet,
integer, intent(in)  el 
)
private
Parameters
facetThe index of the facet.
elThe index of the element.

Definition at line 250 of file bc.f90.

◆ bc_mark_facets()

subroutine bc::bc_mark_facets ( class(bc_t), intent(inout)  this,
type(stack_i4t2_t), intent(inout)  facet_list 
)
private
Parameters
facet_listThe list of tuples.

Definition at line 263 of file bc.f90.

◆ bc_mark_zone()

subroutine bc::bc_mark_zone ( class(bc_t), intent(inout)  this,
class(facet_zone_t), intent(inout)  bc_zone 
)
private
Parameters
bc_zoneBoundary zone to be marked.

Definition at line 278 of file bc.f90.

Here is the caller graph for this function:

◆ bc_mark_zones_from_list()

subroutine bc::bc_mark_zones_from_list ( class(bc_t), intent(inout)  this,
class(facet_zone_t), dimension(:), intent(inout)  bc_zones,
character(len=*)  bc_key,
character(len=neko_msh_max_zlbl_len), dimension(neko_msh_max_zlbls)  bc_labels 
)
private
Parameters
bc_zoneArray of boundary zones.
bc_keyBoundary condition label, e.g. 'w' for wall.
bc_labelList of boundary condition labels.

Definition at line 293 of file bc.f90.

Here is the call graph for this function: