Neko 1.99.9
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, log)
 Constructor from components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thisfinalize (this)
 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(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(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_series_tu_interface_lag
 
type(vector_series_tv_interface_lag
 
type(vector_series_tw_interface_lag
 
integer iextm_order = 1
 
integer last_tstep = -1
 
type(vector_list_tinterface_dof
 
type(vector_list_tinterface_field
 
type(global_interpolation_settings_tinterpolation_settings
 Interpolation settings.
 
integer n_int_tot = 0
 
logical find_interface = .false.
 
logical setup = .false.
 
logical log = .false.
 
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
 

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.
 
procedure, pass, private log_interface_error_ (this, u, v, w)
 Log interface interpolation error diagnostics.
 

Detailed Description

Definition at line 82 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 132 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 127 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 136 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 136 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 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) 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 130 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 138 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 133 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 128 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 141 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 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) overset_interface_vector::overset_interface_vector_t::finalize ( class(overset_interface_vector_t), intent(inout), target  this)

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

Definition at line 123 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 108 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 143 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 142 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 118 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 106 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,
logical, intent(in), optional  log 
)
Parameters
[in]coefThe SEM coefficients.
[in]tolThe tolerance for the interpolation.
[in]padThe padding for the interpolation.
[in]logWhether to log the interpolation.

Definition at line 120 of file overset_interface_vector.f90.

◆ log_interface_error_()

procedure, pass, private overset_interface_vector::overset_interface_vector_t::log_interface_error_ ( class(overset_interface_vector_t), intent(inout this,
type(field_t), intent(in), pointer  u,
type(field_t), intent(in), pointer  v,
type(field_t), intent(in), pointer  w 
)
private

Definition at line 149 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 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.

◆ 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 146 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 138 of file overset_interface_vector.f90.

Member Data Documentation

◆ bc_type

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

Definition at line 96 of file bc.f90.

◆ bc_u

type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_u

Definition at line 84 of file overset_interface_vector.f90.

◆ bc_v

type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_v

Definition at line 86 of file overset_interface_vector.f90.

◆ bc_w

type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_w

Definition at line 88 of file overset_interface_vector.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.

◆ domain_element_mask

type(mask_t) overset_interface_vector::overset_interface_vector_t::domain_element_mask

Definition at line 95 of file overset_interface_vector.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.

◆ field_list

type(field_list_t) overset_interface_vector::overset_interface_vector_t::field_list

Definition at line 90 of file overset_interface_vector.f90.

◆ find_interface

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

Definition at line 107 of file overset_interface_vector.f90.

◆ iextm_order

integer overset_interface_vector::overset_interface_vector_t::iextm_order = 1

Definition at line 101 of file overset_interface_vector.f90.

◆ interface_dof

type(vector_list_t) overset_interface_vector::overset_interface_vector_t::interface_dof

Definition at line 103 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 94 of file overset_interface_vector.f90.

◆ interface_field

type(vector_list_t) overset_interface_vector::overset_interface_vector_t::interface_field

Definition at line 103 of file overset_interface_vector.f90.

◆ interface_interpolator

type(global_interpolation_t) overset_interface_vector::overset_interface_vector_t::interface_interpolator

Definition at line 92 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 105 of file overset_interface_vector.f90.

◆ last_tstep

integer overset_interface_vector::overset_interface_vector_t::last_tstep = -1

Definition at line 102 of file overset_interface_vector.f90.

◆ log

logical overset_interface_vector::overset_interface_vector_t::log = .false.

Definition at line 109 of file overset_interface_vector.f90.

◆ marked_facet

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

Definition at line 88 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 113 of file overset_interface_vector.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_int_tot

integer overset_interface_vector::overset_interface_vector_t::n_int_tot = 0

Definition at line 106 of file overset_interface_vector.f90.

◆ name

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

Definition at line 101 of file bc.f90.

◆ setup

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

Definition at line 108 of file overset_interface_vector.f90.

◆ u_interface

type(vector_t) overset_interface_vector::overset_interface_vector_t::u_interface

Definition at line 99 of file overset_interface_vector.f90.

◆ u_interface_lag

type(vector_series_t) overset_interface_vector::overset_interface_vector_t::u_interface_lag

Definition at line 100 of file overset_interface_vector.f90.

◆ updated

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

Definition at line 99 of file bc.f90.

◆ v_interface

type(vector_t) overset_interface_vector::overset_interface_vector_t::v_interface

Definition at line 99 of file overset_interface_vector.f90.

◆ v_interface_lag

type(vector_series_t) overset_interface_vector::overset_interface_vector_t::v_interface_lag

Definition at line 100 of file overset_interface_vector.f90.

◆ w_interface

type(vector_t) overset_interface_vector::overset_interface_vector_t::w_interface

Definition at line 99 of file overset_interface_vector.f90.

◆ w_interface_lag

type(vector_series_t) overset_interface_vector::overset_interface_vector_t::w_interface_lag

Definition at line 100 of file overset_interface_vector.f90.

◆ x_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::x_dof

Definition at line 97 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 98 of file overset_interface_vector.f90.

◆ xh

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

Definition at line 86 of file bc.f90.

◆ y_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::y_dof

Definition at line 97 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 98 of file overset_interface_vector.f90.

◆ z_dof

type(vector_t) overset_interface_vector::overset_interface_vector_t::z_dof

Definition at line 97 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 98 of file overset_interface_vector.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: