Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
neumann::neumann_t Type Referenceabstract

A Neumann boundary condition for scalar fields. Sets the flux of the field to the chosen value. More...

Inheritance diagram for neumann::neumann_t:
Collaboration diagram for neumann::neumann_t:

Public Member Functions

procedure, pass(thisapply_scalar (this, x, n, t, tstep)
 Boundary condition apply for a generic Neumann condition to a vector x.
 
procedure, pass(thisapply_vector (this, x, y, z, n, t, tstep)
 Boundary condition apply for a generic Neumann condition to vectors x, y and z.
 
procedure, pass(thisapply_scalar_dev (this, x_d, t, tstep)
 Boundary condition apply for a generic Neumann condition to a vector x (device version)
 
procedure, pass(thisapply_vector_dev (this, x_d, y_d, z_d, t, tstep)
 Boundary condition apply for a generic Neumann condition to vectors x, y and z (device version)
 
procedure, pass(thisfinalize_neumann (this, flux)
 Finalize by setting the flux.
 
procedure, pass(thisflux (this)
 Getter for the flux.
 
procedure, pass(thisset_flux_scalar (this, flux)
 Set the flux using a scalar.
 
procedure, pass(thisset_flux_array (this, flux)
 Set the flux using an array.
 
generic set_flux (this, flux)
 Generic interface for setting the flux.
 
generic set_flux (this, flux)
 Generic interface for setting the flux.
 
procedure, pass(thisfree (this)
 Destructor.
 
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_zones_from_list (this, bc_zones, bc_key, bc_labels)
 Mark all facets from a list of zones, also marks type of bc in the mesh.
 
procedure, pass(thismark_zone (this, bc_zone)
 Mark all facets from a zone.
 
procedure, pass(thisfinalize (this)
 Finalize the construction of the bc by populting the msk and facet arrays.
 
procedure(bc_apply_scalar), deferred, pass apply_scalar (this, x, n, t, tstep)
 Apply the boundary condition to a scalar field.
 
procedure(bc_apply_vector), deferred, pass apply_vector (this, x, y, z, n, t, tstep)
 Apply the boundary condition to a vector field.
 
procedure(bc_apply_scalar_dev), deferred, pass apply_scalar_dev (this, x_d, t, tstep)
 Device version of apply_scalar.
 
procedure(bc_apply_vector_dev), deferred, pass apply_vector_dev (this, x_d, y_d, z_d, t, tstep)
 Device version of apply_vector.
 
procedure(bc_destructor), deferred, pass free (this)
 Destructor.
 

Public Attributes

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
 Map of degrees of freedom.
 
type(coef_t), pointer coef
 SEM coefficients.
 
type(mesh_t), pointer msh
 The mesh.
 
type(space_t), pointer xh
 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.
 

Private Attributes

real(kind=rp), dimension(:), allocatable, private flux_
 

Detailed Description

Note
The condition is imposed weekly by adding an appropriate source term to the right-hand-side.

Definition at line 48 of file neumann.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,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)
pure virtualinherited

Definition at line 87 of file bc.f90.

◆ apply_scalar() [2/2]

procedure, pass(this) neumann::neumann_t::apply_scalar ( class(neumann_t), intent(inout this,
real(kind=rp), dimension(n), intent(inout x,
integer, intent(in n,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)

Definition at line 51 of file neumann.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)  x_d,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)
pure virtualinherited

Definition at line 91 of file bc.f90.

◆ apply_scalar_dev() [2/2]

procedure, pass(this) neumann::neumann_t::apply_scalar_dev ( class(neumann_t), intent(inout), target  this,
type(c_ptr)  x_d,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)

Definition at line 53 of file neumann.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,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)
pure virtualinherited

Definition at line 89 of file bc.f90.

◆ apply_vector() [2/2]

procedure, pass(this) neumann::neumann_t::apply_vector ( class(neumann_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,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)

Definition at line 52 of file neumann.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)  x_d,
type(c_ptr)  y_d,
type(c_ptr)  z_d,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)
pure virtualinherited

Definition at line 93 of file bc.f90.

◆ apply_vector_dev() [2/2]

procedure, pass(this) neumann::neumann_t::apply_vector_dev ( class(neumann_t), intent(inout), target  this,
type(c_ptr)  x_d,
type(c_ptr)  y_d,
type(c_ptr)  z_d,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)

Definition at line 54 of file neumann.f90.

◆ finalize()

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

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

Definition at line 85 of file bc.f90.

◆ finalize_neumann()

procedure, pass(this) neumann::neumann_t::finalize_neumann ( class(neumann_t), intent(inout this,
real(kind=rp), intent(in flux 
)
Parameters
fluxThe desired flux.

Definition at line 55 of file neumann.f90.

◆ flux()

procedure, pass(this) neumann::neumann_t::flux ( class(neumann_t), intent(in this)

Definition at line 57 of file neumann.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 95 of file bc.f90.

◆ free() [2/2]

procedure, pass(this) neumann::neumann_t::free ( class(neumann_t), intent(inout), target  this)

Definition at line 65 of file neumann.f90.

◆ free_base()

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

Definition at line 74 of file bc.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 72 of file bc.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 76 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 78 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 82 of file bc.f90.

◆ mark_zones_from_list()

procedure, pass(this) bc::bc_t::mark_zones_from_list ( class(bc_t), intent(inout this,
class(facet_zone_t), dimension(:), intent(in bc_zones,
character(len=*)  bc_key,
character(len=neko_msh_max_zlbl_len), dimension(:)  bc_labels 
)
inherited
Parameters
bc_zoneArray of boundary zones.
bc_keyBoundary condition label, e.g. 'w' for wall.
bc_labelList of boundary condition labels.

Definition at line 80 of file bc.f90.

◆ set_flux() [1/2]

generic neumann::neumann_t::set_flux ( class(neumann_t), intent(inout this,
real(kind=rp), dimension(this%msk(0)), intent(in flux 
)
Parameters
fluxThe desired flux.

Definition at line 63 of file neumann.f90.

◆ set_flux() [2/2]

generic neumann::neumann_t::set_flux ( class(neumann_t), intent(inout this,
real(kind=rp), intent(in flux 
)

Definition at line 63 of file neumann.f90.

◆ set_flux_array()

procedure, pass(this) neumann::neumann_t::set_flux_array ( class(neumann_t), intent(inout this,
real(kind=rp), dimension(this%msk(0)), intent(in flux 
)
Parameters
fluxThe desired flux.

Definition at line 61 of file neumann.f90.

◆ set_flux_scalar()

procedure, pass(this) neumann::neumann_t::set_flux_scalar ( class(neumann_t), intent(inout this,
real(kind=rp), intent(in flux 
)

Definition at line 59 of file neumann.f90.

Member Data Documentation

◆ coef

type(coef_t), pointer bc::bc_t::coef
inherited

Definition at line 59 of file bc.f90.

◆ dof

type(dofmap_t), pointer bc::bc_t::dof
inherited

Definition at line 57 of file bc.f90.

◆ facet

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

Definition at line 55 of file bc.f90.

◆ facet_d

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

Definition at line 69 of file bc.f90.

◆ flux_

real(kind=rp), dimension(:), allocatable, private neumann::neumann_t::flux_
private

Definition at line 49 of file neumann.f90.

◆ marked_facet

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

Definition at line 65 of file bc.f90.

◆ msh

type(mesh_t), pointer bc::bc_t::msh
inherited

Definition at line 61 of file bc.f90.

◆ msk

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

Definition at line 53 of file bc.f90.

◆ msk_d

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

Definition at line 67 of file bc.f90.

◆ xh

type(space_t), pointer bc::bc_t::xh
inherited

Definition at line 63 of file bc.f90.


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