Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
overset_interface_vector::overset_interface_vector_t Type Referenceabstract

Extension of the user defined dirichlet condition overset_interface More...

Inheritance diagram for overset_interface_vector::overset_interface_vector_t:
Collaboration diagram for overset_interface_vector::overset_interface_vector_t:

Public Member Functions

procedure, pass(thisinit (this, coef, json)
 Constructor.
 
procedure, pass(thisinit_from_components (this, coef, tol, pad)
 Constructor from components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thisfinalize (this, only_facets)
 Finalize.
 
procedure, pass(thisapply_scalar (this, x, n, time, strong)
 Apply scalar by performing a masked copy.
 
procedure, pass(thisapply_vector (this, x, y, z, n, time, strong)
 (No-op) Apply vector.
 
procedure, pass(thisapply_vector_dev (this, x_d, y_d, z_d, time, strong, strm)
 (No-op) Apply vector (device).
 
procedure, pass(thisapply_scalar_dev (this, x_d, time, strong, strm)
 Apply scalar (device).
 
procedure, pass(thisupdate (this, time)
 Update the values at the interfaces.
 
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(thisfinalize_base (this, only_facets)
 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, only_facets)
 Deferred finalizer.
 

Public Attributes

type(field_dirichlet_tbc_u
 
type(field_dirichlet_tbc_v
 
type(field_dirichlet_tbc_w
 
type(field_list_tfield_list
 A field list to store the bcs for passing to various subroutines.
 
type(global_interpolation_tinterface_interpolator
 Interpolator.
 
type(mask_tinterface_dof_mask
 Mask for the overset interface points.
 
type(mask_tdomain_element_mask
 
type(vector_tx_dof
 Vectors holding the dof coordinates for cases where mesh moves.
 
type(vector_ty_dof
 
type(vector_tz_dof
 
type(vector_tx_interface_dof
 
type(vector_ty_interface_dof
 
type(vector_tz_interface_dof
 
type(vector_tu_interface
 
type(vector_tv_interface
 
type(vector_tw_interface
 
type(vector_list_tinterface_dof
 
type(vector_list_tinterface_field
 
type(global_interpolation_settings_tinterpolation_settings
 Interpolation settings.
 
logical find_interface = .false.
 
logical setup = .false.
 
integer, dimension(:), allocatable msk
 The linear index of each node in each boundary facet.
 
integer, dimension(:), allocatable facet
 A list of facet ids (1 to 6), one for each element in 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_d = C_NULL_PTR
 Device pointer for facet.
 
logical strong = .true.
 Wether the bc is strongly enforced. Essentially valid for all Dirichlet types of bcs. These need to be masked out for solvers etc, so that values are not affected. Mixed bcs are, by convention, weak.
 
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
 

Static Public Attributes

procedure(morph_overset_interface), pointer, nopass morph_interface => null()
 Function pointer to the user routine performing the update of the values of the boundary fields.
 

Private Member Functions

procedure, pass, private build_masks_ (this)
 Build the masks for the overset interface.
 
procedure, pass, private gather_interface_dofs_ (this)
 Gather the dofs at the interface.
 
procedure, pass, private setup_interpolator_ (this)
 Set up the interpolator.
 

Detailed Description

Definition at line 73 of file overset_interface_vector.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 117 of file bc.f90.

◆ apply_scalar() [2/2]

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_scalar ( class(overset_interface_vector_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 
)
Parameters
xField onto which to copy the values (e.g. u,v,w,p or s).
nSize of the array x.
tCurrent time state.

Definition at line 112 of file overset_interface_vector.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 121 of file bc.f90.

◆ apply_scalar_dev() [2/2]

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_scalar_dev ( class(overset_interface_vector_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 
)
Parameters
x_dDevice pointer to the field onto which to copy the values.
timeThe current time state.

Definition at line 121 of file overset_interface_vector.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 110 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 119 of file bc.f90.

◆ apply_vector() [2/2]

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_vector ( class(overset_interface_vector_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 
)
Parameters
xx-component of the field onto which to apply the values.
yy-component of the field onto which to apply the values.
zz-component of the field onto which to apply the values.
nSize of the x, y and z arrays.
timeThe current time state.

Definition at line 115 of file overset_interface_vector.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 123 of file bc.f90.

◆ apply_vector_dev() [2/2]

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_vector_dev ( class(overset_interface_vector_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 
)
Parameters
xx-component of the field onto which to apply the values.
yy-component of the field onto which to apply the values.
zz-component of the field onto which to apply the values.
timeThe current time state.
strmDevice stream

Definition at line 118 of file overset_interface_vector.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 113 of file bc.f90.

◆ build_masks_()

procedure, pass, private overset_interface_vector::overset_interface_vector_t::build_masks_ ( class(overset_interface_vector_t), intent(inout this)
private

Definition at line 126 of file overset_interface_vector.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 115 of file bc.f90.

◆ finalize() [1/2]

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

Definition at line 129 of file bc.f90.

◆ finalize() [2/2]

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::finalize ( class(overset_interface_vector_t), intent(inout), target  this,
logical, intent(in), optional  only_facets 
)

Definition at line 110 of file overset_interface_vector.f90.

◆ finalize_base()

procedure, pass(this) bc::bc_t::finalize_base ( class(bc_t), intent(inout), target  this,
logical, intent(in), optional  only_facets 
)
inherited
Parameters
only_facets,ifthe bc is only to be applied on facets. Relevant for bcs where the normal direction is important and where and shared dofs should not be included.

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

Definition at line 106 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 125 of file bc.f90.

◆ free() [2/2]

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::free ( class(overset_interface_vector_t), intent(inout), target  this)

Definition at line 108 of file overset_interface_vector.f90.

◆ free_base()

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

Definition at line 97 of file bc.f90.

◆ gather_interface_dofs_()

procedure, pass, private overset_interface_vector::overset_interface_vector_t::gather_interface_dofs_ ( class(overset_interface_vector_t), intent(inout this)
private

Definition at line 128 of file overset_interface_vector.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 127 of file bc.f90.

◆ init() [2/2]

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::init ( class(overset_interface_vector_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 103 of file overset_interface_vector.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 95 of file bc.f90.

◆ init_from_components()

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::init_from_components ( class(overset_interface_vector_t), intent(inout), target  this,
type(coef_t), intent(in coef,
real(kind=rp), intent(in), optional  tol,
real(kind=rp), intent(in), optional  pad 
)
Parameters
[in]coefThe SEM coefficients.

Definition at line 105 of file overset_interface_vector.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 99 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 101 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 103 of file bc.f90.

◆ setup_interpolator_()

procedure, pass, private overset_interface_vector::overset_interface_vector_t::setup_interpolator_ ( class(overset_interface_vector_t), intent(inout this)
private

Definition at line 130 of file overset_interface_vector.f90.

◆ update()

procedure, pass(this) overset_interface_vector::overset_interface_vector_t::update ( class(overset_interface_vector_t), intent(inout this,
type(time_state_t), intent(in time 
)

Definition at line 123 of file overset_interface_vector.f90.

Member Data Documentation

◆ bc_u

type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_u

Definition at line 75 of file overset_interface_vector.f90.

◆ bc_v

type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_v

Definition at line 77 of file overset_interface_vector.f90.

◆ bc_w

type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_w

Definition at line 79 of file overset_interface_vector.f90.

◆ coef

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

Definition at line 70 of file bc.f90.

◆ dof

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

Definition at line 68 of file bc.f90.

◆ domain_element_mask

type(mask_t) overset_interface_vector::overset_interface_vector_t::domain_element_mask

Definition at line 86 of file overset_interface_vector.f90.

◆ facet

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

Definition at line 66 of file bc.f90.

◆ facet_d

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

Definition at line 80 of file bc.f90.

◆ field_list

type(field_list_t) overset_interface_vector::overset_interface_vector_t::field_list

Definition at line 81 of file overset_interface_vector.f90.

◆ find_interface

logical overset_interface_vector::overset_interface_vector_t::find_interface = .false.

Definition at line 94 of file overset_interface_vector.f90.

◆ interface_dof

type(vector_list_t) overset_interface_vector::overset_interface_vector_t::interface_dof

Definition at line 91 of file overset_interface_vector.f90.

◆ interface_dof_mask

type(mask_t) overset_interface_vector::overset_interface_vector_t::interface_dof_mask

Definition at line 85 of file overset_interface_vector.f90.

◆ interface_field

type(vector_list_t) overset_interface_vector::overset_interface_vector_t::interface_field

Definition at line 91 of file overset_interface_vector.f90.

◆ interface_interpolator

type(global_interpolation_t) overset_interface_vector::overset_interface_vector_t::interface_interpolator

Definition at line 83 of file overset_interface_vector.f90.

◆ interpolation_settings

type(global_interpolation_settings_t) overset_interface_vector::overset_interface_vector_t::interpolation_settings

Definition at line 93 of file overset_interface_vector.f90.

◆ marked_facet

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

Definition at line 76 of file bc.f90.

◆ morph_interface

procedure(morph_overset_interface), pointer, nopass overset_interface_vector::overset_interface_vector_t::morph_interface => null()
static

Definition at line 99 of file overset_interface_vector.f90.

◆ msh

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

Definition at line 72 of file bc.f90.

◆ msk

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

Definition at line 64 of file bc.f90.

◆ msk_d

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

Definition at line 78 of file bc.f90.

◆ name

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

Definition at line 90 of file bc.f90.

◆ setup

logical overset_interface_vector::overset_interface_vector_t::setup = .false.

Definition at line 95 of file overset_interface_vector.f90.

◆ strong

logical bc::bc_t::strong = .true.
inherited

Definition at line 85 of file bc.f90.

◆ u_interface

type(vector_t) overset_interface_vector::overset_interface_vector_t::u_interface

Definition at line 90 of file overset_interface_vector.f90.

◆ updated

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

Definition at line 88 of file bc.f90.

◆ v_interface

type(vector_t) overset_interface_vector::overset_interface_vector_t::v_interface

Definition at line 90 of file overset_interface_vector.f90.

◆ w_interface

type(vector_t) overset_interface_vector::overset_interface_vector_t::w_interface

Definition at line 90 of file overset_interface_vector.f90.

◆ x_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::x_dof

Definition at line 88 of file overset_interface_vector.f90.

◆ x_interface_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::x_interface_dof

Definition at line 89 of file overset_interface_vector.f90.

◆ xh

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

Definition at line 74 of file bc.f90.

◆ y_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::y_dof

Definition at line 88 of file overset_interface_vector.f90.

◆ y_interface_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::y_interface_dof

Definition at line 89 of file overset_interface_vector.f90.

◆ z_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::z_dof

Definition at line 88 of file overset_interface_vector.f90.

◆ z_interface_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::z_interface_dof

Definition at line 89 of file overset_interface_vector.f90.

◆ zone_indices

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

Definition at line 92 of file bc.f90.


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