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

Defines a boundary condition.

Data Types

type  bc_alloc_t
 
interface  bc_apply_scalar
 Apply the boundary condition to a scalar field. More...
 
interface  bc_apply_scalar_dev
 Apply the boundary condition to a scalar field on the device. More...
 
interface  bc_apply_vector
 Apply the boundary condition to a vector field. More...
 
interface  bc_apply_vector_dev
 Apply the boundary condition to a vector field on the device. More...
 
interface  bc_constructor
 Constructor. More...
 
interface  bc_destructor
 Destructor. More...
 
interface  bc_finalize
 Finalize by building the mask and facet arrays. More...
 
type  bc_ptr_t
 Pointer to a `bc_t`. More...
 
type  bc_t
 Base type for a boundary condition. More...
 

Functions/Subroutines

subroutine bc_init_base (this, coef)
 Constructor.
 
subroutine bc_free_base (this)
 Destructor for the base type, bc_t.
 
subroutine bc_apply_vector_generic (this, x, y, z, time, strong, strm)
 Apply the boundary condition to a vector field. Dispatches to the CPU or the device version.
 
subroutine bc_apply_scalar_generic (this, x, time, strong, strm)
 Apply the boundary condition to a scalar field. Dispatches to the CPU or the device version.
 
subroutine bc_mark_facet (this, facet, el)
 Mark facet on element el as part of the boundary condition.
 
subroutine bc_mark_facets (this, facet_list)
 Mark all facets from a (facet, el) tuple list.
 
subroutine bc_mark_zone (this, bc_zone)
 Mark all facets from a zone.
 
subroutine bc_mark_labeled_zone (this, zone_index)
 Mark all facets from a labeled zone.
 
subroutine bc_mark_labeled_zones (this, zone_indices)
 Mark all facets from labeled zones.
 
subroutine bc_finalize_base (this)
 Finalize the construction of the bc by populting the msk and facet arrays.
 
subroutine bc_debug_mask (this, file_name)
 Write a field showing the mask of the bc.
 

Variables

integer, parameter, public bc_dirichlet = 0
 Supported boundary condition types. The values are set in order of precedence for global resolution. Lower values take precedence.
 
integer, parameter, public bc_mixed_constrains_normal = 2
 
integer, parameter, public bc_mixed_constrains_tangent = 3
 
integer, parameter, public bc_neumann = 5
 

Function/Subroutine Documentation

◆ bc_apply_scalar_generic()

subroutine bc::bc_apply_scalar_generic ( class(bc_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 x comp of the field for which to apply the bc.
timeCurrent time state.
strongWhether we are setting a strong or a weak bc.
strmDevice stream

Definition at line 380 of file bc.f90.

◆ bc_apply_vector_generic()

subroutine bc::bc_apply_vector_generic ( class(bc_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 bc.
yThe y comp of the field for which to apply the bc.
zThe z comp of the field for which to apply the bc.
timeCurrent time state.
strongWhether we are setting a strong or a weak bc.
Devicestream

Definition at line 336 of file bc.f90.

◆ bc_debug_mask()

subroutine bc::bc_debug_mask ( class(bc_t), intent(inout this,
character(len=*), intent(in file_name 
)
private

The mask will be marked with 1.

Parameters
file_nameThe name of the fld file.

Definition at line 664 of file bc.f90.

◆ bc_finalize_base()

subroutine bc::bc_finalize_base ( 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 495 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 282 of file bc.f90.

◆ 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 266 of file bc.f90.

◆ 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 411 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 424 of file bc.f90.

◆ bc_mark_labeled_zone()

subroutine bc::bc_mark_labeled_zone ( class(bc_t), intent(inout this,
integer, intent(in zone_index 
)
private
Parameters
zone_indexThe index of the labeled zone to be marked.

Definition at line 450 of file bc.f90.

Here is the call graph for this function:

◆ bc_mark_labeled_zones()

subroutine bc::bc_mark_labeled_zones ( class(bc_t), intent(inout this,
integer, dimension(:), intent(in zone_indices 
)
private
Parameters
zone_indicesThe indices of the labeled zones to be marked.

Definition at line 481 of file bc.f90.

◆ bc_mark_zone()

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

Definition at line 439 of file bc.f90.

Variable Documentation

◆ bc_dirichlet

integer, parameter, public bc::bc_dirichlet = 0

Definition at line 66 of file bc.f90.

◆ bc_mixed_constrains_normal

integer, parameter, public bc::bc_mixed_constrains_normal = 2

Definition at line 67 of file bc.f90.

◆ bc_mixed_constrains_tangent

integer, parameter, public bc::bc_mixed_constrains_tangent = 3

Definition at line 68 of file bc.f90.

◆ bc_neumann

integer, parameter, public bc::bc_neumann = 5

Definition at line 69 of file bc.f90.