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

Dirichlet condition in facet normal direction. More...

Inheritance diagram for facet_normal::facet_normal_t:
Collaboration diagram for facet_normal::facet_normal_t:

Public Member Functions

procedure, pass(thisapply_scalar (this, x, n, time, strong)
 No-op scalar apply.
 
procedure, pass(thisapply_scalar_dev (this, x_d, time, strong, strm)
 No-op scalar apply on device.
 
procedure, pass(thisapply_vector (this, x, y, z, n, time, strong)
 No-op vector apply.
 
procedure, pass(thisapply_vector_dev (this, x_d, y_d, z_d, time, strong, strm)
 No-op vector apply on device.
 
procedure, pass(thisapply_surfvec (this, x, y, z, u, v, w, n, time)
 Apply in facet normal direction (vector valued)
 
procedure, pass(thisapply_surfvec_dev (this, x_d, y_d, z_d, u_d, v_d, w_d, time, strm)
 Apply in facet normal direction (vector valued, device version)
 
procedure, pass(thisrecompute_normals (this)
 Recompute area-weighted normals from the current mesh.
 
procedure, pass(thisinit (this, coef, json)
 Constructor.
 
procedure, pass(thisinit_from_components (this, coef)
 Constructor from components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thisfinalize (this)
 Finalize.
 
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

integer, dimension(:), allocatable unique_mask
 
integer, dimension(:), allocatable msk_to_unique
 
type(c_ptr) unique_mask_d = c_null_ptr
 
type(vector_tnx
 
type(vector_tny
 
type(vector_tnz
 
type(vector_twork
 
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 54 of file facet_normal.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) facet_normal::facet_normal_t::apply_scalar ( class(facet_normal_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 facet_normal.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) facet_normal::facet_normal_t::apply_scalar_dev ( class(facet_normal_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 61 of file facet_normal.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_surfvec()

procedure, pass(this) facet_normal::facet_normal_t::apply_surfvec ( class(facet_normal_t), intent(in 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,
real(kind=rp), dimension(n), intent(inout u,
real(kind=rp), dimension(n), intent(inout v,
real(kind=rp), dimension(n), intent(inout w,
integer, intent(in n,
type(time_state_t), intent(in), optional  time 
)

Definition at line 64 of file facet_normal.f90.

◆ apply_surfvec_dev()

procedure, pass(this) facet_normal::facet_normal_t::apply_surfvec_dev ( class(facet_normal_t), intent(in), target  this,
type(c_ptr)  x_d,
type(c_ptr)  y_d,
type(c_ptr)  z_d,
type(c_ptr)  u_d,
type(c_ptr)  v_d,
type(c_ptr)  w_d,
type(time_state_t), intent(in), optional  time,
type(c_ptr), optional  strm 
)

Definition at line 65 of file facet_normal.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) facet_normal::facet_normal_t::apply_vector ( class(facet_normal_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 62 of file facet_normal.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) facet_normal::facet_normal_t::apply_vector_dev ( class(facet_normal_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 facet_normal.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.

◆ 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) facet_normal::facet_normal_t::finalize ( class(facet_normal_t), intent(inout), target  this)

Definition at line 77 of file facet_normal.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) facet_normal::facet_normal_t::free ( class(facet_normal_t), intent(inout), target  this)

Definition at line 75 of file facet_normal.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.

◆ 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) facet_normal::facet_normal_t::init ( class(facet_normal_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 70 of file facet_normal.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) facet_normal::facet_normal_t::init_from_components ( class(facet_normal_t), intent(inout), target  this,
type(coef_t), intent(in), target  coef 
)
Parameters
[in]coefThe SEM coefficients.

Definition at line 72 of file facet_normal.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.

◆ recompute_normals()

procedure, pass(this) facet_normal::facet_normal_t::recompute_normals ( class(facet_normal_t), intent(inout), target  this)

Definition at line 68 of file facet_normal.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.

◆ msk_to_unique

integer, dimension(:), allocatable facet_normal::facet_normal_t::msk_to_unique

Definition at line 56 of file facet_normal.f90.

◆ name

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

Definition at line 101 of file bc.f90.

◆ nx

type(vector_t) facet_normal::facet_normal_t::nx

Definition at line 58 of file facet_normal.f90.

◆ ny

type(vector_t) facet_normal::facet_normal_t::ny

Definition at line 58 of file facet_normal.f90.

◆ nz

type(vector_t) facet_normal::facet_normal_t::nz

Definition at line 58 of file facet_normal.f90.

◆ unique_mask

integer, dimension(:), allocatable facet_normal::facet_normal_t::unique_mask

Definition at line 55 of file facet_normal.f90.

◆ unique_mask_d

type(c_ptr) facet_normal::facet_normal_t::unique_mask_d = c_null_ptr

Definition at line 57 of file facet_normal.f90.

◆ updated

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

Definition at line 99 of file bc.f90.

◆ work

type(vector_t) facet_normal::facet_normal_t::work

Definition at line 58 of file facet_normal.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: