Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
shear_stress::shear_stress_t Type Referenceabstract

A shear stress boundary condition. More...

Inheritance diagram for shear_stress::shear_stress_t:
Collaboration diagram for shear_stress::shear_stress_t:

Public Member Functions

procedure, pass(thisapply_scalar (this, x, n, time, strong)
 Apply shear stress for a scalar field x.
 
procedure, pass(thisapply_vector (this, x, y, z, n, time, strong)
 Boundary condition apply for a generic shear_stress condition to vectors x, y and z.
 
procedure, pass(thisapply_scalar_dev (this, x_d, time, strong, strm)
 Boundary condition apply for a generic shear_stress condition to a vector x (device version)
 
procedure, pass(thisapply_vector_dev (this, x_d, y_d, z_d, time, strong, strm)
 Boundary condition apply for a generic shear_stress condition to vectors x, y and z (device version)
 
procedure, pass(thisinit (this, coef, json)
 Constructor.
 
procedure, pass(thisinit_from_components (this, coef, value)
 Constructor from components.
 
procedure, pass(thisset_stress_scalar (this, tau_x, tau_y, tau_z)
 Set the value of the shear stress vector using 3 scalars.
 
procedure, pass(thisset_stress_array (this, tau_x, tau_y, tau_z)
 Set the shear stress components.
 
generic set_stress (this, tau_x, tau_y, tau_z)
 Set the shear stress to apply.
 
generic set_stress (this, tau_x, tau_y, tau_z)
 Set the shear stress to apply.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thisfinalize (this)
 Finalize the construction.
 
procedure, pass(thisfree_mixed (this)
 Destructor for mixed-bc-specific resolved state.
 
procedure, pass(thisdebug_output (this, field_name)
 Write debug fields for the resolved support and normals.
 
procedure, pass(thisinit_base (this, coef)
 Constructor.
 
procedure, pass(thisfree_base (this)
 Destructor.
 
procedure, pass(thismark_facet (this, facet, el)
 Mark a facet on an element as part of the boundary condition.
 
procedure, pass(thismark_facets (this, facet_list)
 Mark all facets from a (facet, element) tuple list.
 
procedure, pass(thismark_zone (this, bc_zone)
 Mark all facets from a zone.
 
procedure, pass(thismark_labeled_zone (this, zone_index)
 Mark all facets from a labeled zone.
 
procedure, pass(thismark_labeled_zones (this, zone_indices)
 Mark all facets from a list of labeled zones.
 
procedure, pass(thisfinalize_base (this)
 Finalize the construction of the bc by populating the msk and facet arrays.
 
procedure, pass(thisapply_scalar_generic (this, x, time, strong, strm)
 Apply the boundary condition to a scalar field. Dispatches to the CPU or the device version.
 
procedure, pass(thisapply_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.
 
procedure, pass(thisdebug_mask_ (this, file_name)
 Write a field showing the mask of the bcs.
 
procedure(bc_apply_scalar), deferred, pass apply_scalar (this, x, n, time, strong)
 Apply the boundary condition to a scalar field on the CPU.
 
procedure(bc_apply_vector), deferred, pass apply_vector (this, x, y, z, n, time, strong)
 Apply the boundary condition to a vector field on the CPU.
 
procedure(bc_apply_scalar_dev), deferred, pass apply_scalar_dev (this, x_d, time, strong, strm)
 Device version of apply_scalar on the device.
 
procedure(bc_apply_vector_dev), deferred, pass apply_vector_dev (this, x_d, y_d, z_d, time, strong, strm)
 Device version of apply_vector on the device.
 
procedure(bc_destructor), deferred, pass free (this)
 Deferred destructor.
 
procedure(bc_constructor), deferred, pass init (this, coef, json)
 Deferred constructor.
 
procedure(bc_finalize), deferred, pass finalize (this)
 Deferred finalizer.
 

Public Attributes

type(neumann_tneumann_x
 Neumann condition for the x direction.
 
type(neumann_tneumann_y
 Neumann condition for the y direction.
 
type(neumann_tneumann_z
 Neumann condition for the z direction.
 
type(mask_t) resolved_msk
 Resolved subset of local dofs where this mixed bc remains active after global boundary-condition resolution. Populated by a coupled_vector_bc_projector_t. Note that the resolved mask is only used for contraining vector components. For the Neumann contributions of the bc, facet_node_msk is used.
 
type(matrix_t) n
 Local basis vectors on resolved_msk.
 
type(matrix_t) t1
 
type(matrix_t) t2
 
integer, dimension(:), allocatable msk
 The linear index of each constrained local degree of freedom.
 
integer, dimension(:), allocatable facet_node_msk
 The linear index of each node on the marked boundary facets.
 
integer, dimension(:), allocatable facet
 A list of facet ids (1 to 6), one for each entry in facet_node_msk.
 
type(dofmap_t), pointer dof => null()
 Map of degrees of freedom.
 
type(coef_t), pointer coef => null()
 SEM coefficients.
 
type(mesh_t), pointer msh => null()
 The mesh.
 
type(space_t), pointer xh => null()
 The function space.
 
type(stack_i4t2_t) marked_facet
 Index tuples (facet, element) marked as part of the boundary condition.
 
type(c_ptr) msk_d = C_NULL_PTR
 Device pointer for msk.
 
type(c_ptr) facet_node_msk_d = C_NULL_PTR
 Device pointer for facet_node_msk.
 
type(c_ptr) facet_d = C_NULL_PTR
 Device pointer for facet.
 
integer bc_type = -1
 Type of the boundary condition, from the BC_* constants.
 
logical updated = .false.
 Indicates wether the bc has been updated, for those BCs that need additional computations.
 
character(len=:), allocatable name
 
integer, dimension(:), allocatable zone_indices
 

Detailed Description

Definition at line 52 of file shear_stress.f90.

Member Function/Subroutine Documentation

◆ apply_scalar() [1/2]

procedure(bc_apply_scalar), deferred, pass bc::bc_t::apply_scalar ( class(bc_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 
)
pure virtualinherited

Definition at line 132 of file bc.f90.

◆ apply_scalar() [2/2]

procedure, pass(this) shear_stress::shear_stress_t::apply_scalar ( class(shear_stress_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 
)

Definition at line 60 of file shear_stress.f90.

◆ apply_scalar_dev() [1/2]

procedure(bc_apply_scalar_dev), deferred, pass bc::bc_t::apply_scalar_dev ( class(bc_t), intent(inout), target  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 strm 
)
pure virtualinherited

Definition at line 136 of file bc.f90.

◆ apply_scalar_dev() [2/2]

procedure, pass(this) shear_stress::shear_stress_t::apply_scalar_dev ( class(shear_stress_t), intent(inout), target  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 strm 
)

Definition at line 62 of file shear_stress.f90.

◆ apply_scalar_generic()

procedure, pass(this) bc::bc_t::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 
)
inherited
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 125 of file bc.f90.

◆ apply_vector() [1/2]

procedure(bc_apply_vector), deferred, pass bc::bc_t::apply_vector ( class(bc_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 
)
pure virtualinherited

Definition at line 134 of file bc.f90.

◆ apply_vector() [2/2]

procedure, pass(this) shear_stress::shear_stress_t::apply_vector ( class(shear_stress_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 
)

Definition at line 61 of file shear_stress.f90.

◆ apply_vector_dev() [1/2]

procedure(bc_apply_vector_dev), deferred, pass bc::bc_t::apply_vector_dev ( class(bc_t), intent(inout), target  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 strm 
)
pure virtualinherited

Definition at line 138 of file bc.f90.

◆ apply_vector_dev() [2/2]

procedure, pass(this) shear_stress::shear_stress_t::apply_vector_dev ( class(shear_stress_t), intent(inout), target  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 strm 
)

Definition at line 63 of file shear_stress.f90.

◆ apply_vector_generic()

procedure, pass(this) bc::bc_t::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 
)
inherited
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 128 of file bc.f90.

◆ debug_mask_()

procedure, pass(this) bc::bc_t::debug_mask_ ( class(bc_t), intent(inout this,
character(len=*), intent(in file_name 
)
inherited

The mask will be marked with 1.

Parameters
file_nameThe name of the fld file.

Definition at line 130 of file bc.f90.

◆ debug_output()

procedure, pass(this) mixed_bc::mixed_bc_t::debug_output ( class(mixed_bc_t), intent(inout this,
character(len=*), intent(in), optional  field_name 
)
inherited

Writes one field list with the resolved mask marked by 1 and the three components of the resolved normals.

Parameters
[in]field_nameBase name for the output files.

Definition at line 66 of file mixed_bc.f90.

◆ finalize() [1/2]

procedure(bc_finalize), deferred, pass bc::bc_t::finalize ( class(bc_t), intent(inout), target  this)
pure virtualinherited

Definition at line 144 of file bc.f90.

◆ finalize() [2/2]

procedure, pass(this) shear_stress::shear_stress_t::finalize ( class(shear_stress_t), intent(inout), target  this)

Definition at line 78 of file shear_stress.f90.

◆ finalize_base()

procedure, pass(this) bc::bc_t::finalize_base ( class(bc_t), intent(inout), target  this)
inherited

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

Definition at line 121 of file bc.f90.

◆ free() [1/2]

procedure(bc_destructor), deferred, pass bc::bc_t::free ( class(bc_t), intent(inout), target  this)
pure virtualinherited

Definition at line 140 of file bc.f90.

◆ free() [2/2]

procedure, pass(this) shear_stress::shear_stress_t::free ( class(shear_stress_t), intent(inout), target  this)

Definition at line 76 of file shear_stress.f90.

◆ free_base()

procedure, pass(this) bc::bc_t::free_base ( class(bc_t), intent(inout this)
inherited

Definition at line 108 of file bc.f90.

◆ free_mixed()

procedure, pass(this) mixed_bc::mixed_bc_t::free_mixed ( class(mixed_bc_t), intent(inout this)
inherited

Definition at line 64 of file mixed_bc.f90.

◆ init() [1/2]

procedure(bc_constructor), deferred, pass bc::bc_t::init ( class(bc_t), intent(inout), target  this,
type(coef_t), intent(in), target  coef,
type(json_file), intent(inout json 
)
pure virtualinherited

Definition at line 142 of file bc.f90.

◆ init() [2/2]

procedure, pass(this) shear_stress::shear_stress_t::init ( class(shear_stress_t), intent(inout), target  this,
type(coef_t), intent(in), target  coef,
type(json_file), intent(inout json 
)
Parameters
[in]coefThe SEM coefficients.
[in,out]jsonThe JSON object configuring the boundary condition.

Definition at line 65 of file shear_stress.f90.

◆ init_base()

procedure, pass(this) bc::bc_t::init_base ( class(bc_t), intent(inout this,
type(coef_t), intent(in), target  coef 
)
inherited
Parameters
dofMap of degrees of freedom.

Definition at line 106 of file bc.f90.

◆ init_from_components()

procedure, pass(this) shear_stress::shear_stress_t::init_from_components ( class(shear_stress_t), intent(inout), target  this,
type(coef_t), intent(in coef,
real(kind=rp), dimension(3), intent(in value 
)
Parameters
[in]coefThe SEM coefficients.
[in]valueThe value of the shear stress to apply.

Definition at line 67 of file shear_stress.f90.

◆ mark_facet()

procedure, pass(this) bc::bc_t::mark_facet ( class(bc_t), intent(inout this,
integer, intent(in facet,
integer, intent(in el 
)
inherited
Parameters
facetThe index of the facet.
elThe index of the element.

Definition at line 110 of file bc.f90.

◆ mark_facets()

procedure, pass(this) bc::bc_t::mark_facets ( class(bc_t), intent(inout this,
type(stack_i4t2_t), intent(inout facet_list 
)
inherited
Parameters
facet_listThe list of tuples.

Definition at line 112 of file bc.f90.

◆ mark_labeled_zone()

procedure, pass(this) bc::bc_t::mark_labeled_zone ( class(bc_t), intent(inout this,
integer, intent(in zone_index 
)
inherited
Parameters
zone_indexThe index of the labeled zone to be marked.

Definition at line 116 of file bc.f90.

◆ mark_labeled_zones()

procedure, pass(this) bc::bc_t::mark_labeled_zones ( class(bc_t), intent(inout this,
integer, dimension(:), intent(in zone_indices 
)
inherited
Parameters
zone_indicesThe indices of the labeled zones to be marked.

Definition at line 118 of file bc.f90.

◆ mark_zone()

procedure, pass(this) bc::bc_t::mark_zone ( class(bc_t), intent(inout this,
class(facet_zone_t), intent(in bc_zone 
)
inherited
Parameters
bc_zoneBoundary zone to be marked.

Definition at line 114 of file bc.f90.

◆ set_stress() [1/2]

generic shear_stress::shear_stress_t::set_stress ( class(shear_stress_t), intent(inout this,
type(vector_t), intent(in tau_x,
type(vector_t), intent(in tau_y,
type(vector_t), intent(in tau_z 
)
Parameters
tau_xThe x component of the stress.
tau_yThe y component of the stress.
tau_zThe z component of the stress.

Definition at line 74 of file shear_stress.f90.

◆ set_stress() [2/2]

generic shear_stress::shear_stress_t::set_stress ( class(shear_stress_t), intent(inout this,
real(kind=rp), intent(in tau_x,
real(kind=rp), intent(in tau_y,
real(kind=rp), intent(in tau_z 
)

Definition at line 74 of file shear_stress.f90.

◆ set_stress_array()

procedure, pass(this) shear_stress::shear_stress_t::set_stress_array ( class(shear_stress_t), intent(inout this,
type(vector_t), intent(in tau_x,
type(vector_t), intent(in tau_y,
type(vector_t), intent(in tau_z 
)
Parameters
tau_xThe x component of the stress.
tau_yThe y component of the stress.
tau_zThe z component of the stress.

Definition at line 71 of file shear_stress.f90.

◆ set_stress_scalar()

procedure, pass(this) shear_stress::shear_stress_t::set_stress_scalar ( class(shear_stress_t), intent(inout this,
real(kind=rp), intent(in tau_x,
real(kind=rp), intent(in tau_y,
real(kind=rp), intent(in tau_z 
)

Definition at line 69 of file shear_stress.f90.

Member Data Documentation

◆ bc_type

integer bc::bc_t::bc_type = -1
inherited

Definition at line 96 of file bc.f90.

◆ coef

type(coef_t), pointer bc::bc_t::coef => null()
inherited

Definition at line 82 of file bc.f90.

◆ dof

type(dofmap_t), pointer bc::bc_t::dof => null()
inherited

Definition at line 80 of file bc.f90.

◆ facet

integer, dimension(:), allocatable bc::bc_t::facet
inherited

Definition at line 78 of file bc.f90.

◆ facet_d

type(c_ptr) bc::bc_t::facet_d = C_NULL_PTR
inherited

Definition at line 94 of file bc.f90.

◆ facet_node_msk

integer, dimension(:), allocatable bc::bc_t::facet_node_msk
inherited

Definition at line 76 of file bc.f90.

◆ facet_node_msk_d

type(c_ptr) bc::bc_t::facet_node_msk_d = C_NULL_PTR
inherited

Definition at line 92 of file bc.f90.

◆ marked_facet

type(stack_i4t2_t) bc::bc_t::marked_facet
inherited

Definition at line 88 of file bc.f90.

◆ msh

type(mesh_t), pointer bc::bc_t::msh => null()
inherited

Definition at line 84 of file bc.f90.

◆ msk

integer, dimension(:), allocatable bc::bc_t::msk
inherited

Definition at line 74 of file bc.f90.

◆ msk_d

type(c_ptr) bc::bc_t::msk_d = C_NULL_PTR
inherited

Definition at line 90 of file bc.f90.

◆ n

type(matrix_t) mixed_bc::mixed_bc_t::n
inherited

Definition at line 59 of file mixed_bc.f90.

◆ name

character(len=:), allocatable bc::bc_t::name
inherited

Definition at line 101 of file bc.f90.

◆ neumann_x

type(neumann_t) shear_stress::shear_stress_t::neumann_x

Definition at line 54 of file shear_stress.f90.

◆ neumann_y

type(neumann_t) shear_stress::shear_stress_t::neumann_y

Definition at line 56 of file shear_stress.f90.

◆ neumann_z

type(neumann_t) shear_stress::shear_stress_t::neumann_z

Definition at line 58 of file shear_stress.f90.

◆ resolved_msk

type(mask_t) mixed_bc::mixed_bc_t::resolved_msk
inherited

Definition at line 57 of file mixed_bc.f90.

◆ t1

type(matrix_t) mixed_bc::mixed_bc_t::t1
inherited

Definition at line 60 of file mixed_bc.f90.

◆ t2

type(matrix_t) mixed_bc::mixed_bc_t::t2
inherited

Definition at line 61 of file mixed_bc.f90.

◆ updated

logical bc::bc_t::updated = .false.
inherited

Definition at line 99 of file bc.f90.

◆ xh

type(space_t), pointer bc::bc_t::xh => null()
inherited

Definition at line 86 of file bc.f90.

◆ zone_indices

integer, dimension(:), allocatable bc::bc_t::zone_indices
inherited

Definition at line 103 of file bc.f90.


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