Neko  0.9.0
A portable framework for high-order spectral element flow simulations
field_dirichlet Module Reference

Defines inflow dirichlet conditions.

Data Types

type  field_dirichlet_t
 User defined dirichlet condition, for which the user can work with an entire field. The type stores a separate dummy field field_bc, which is passed to the user routine and can be populated with arbitrary values. The boundary condition then copy-pastes these values to the actual solution field using the mask of the boundary condition. So, in the end, only the relevant boundary values are updated. More...
 
interface  field_dirichlet_update
 Abstract interface defining a dirichlet condition on a list of fields. More...
 

Functions/Subroutines

subroutine field_dirichlet_init (this, bc_name)
 Initializes thisfield_bc. More...
 
subroutine field_dirichlet_free (this)
 Destructor. Currently thisfield_bc is being freed in fluid_scheme::free More...
 
subroutine field_dirichlet_apply_scalar (this, x, n, t, tstep)
 Apply scalar by performing a masked copy. More...
 
subroutine field_dirichlet_apply_scalar_dev (this, x_d, t, tstep)
 Apply scalar (device). More...
 
subroutine field_dirichlet_apply_vector (this, x, y, z, n, t, tstep)
 (No-op) Apply vector. More...
 
subroutine field_dirichlet_apply_vector_dev (this, x_d, y_d, z_d, t, tstep)
 (No-op) Apply vector (device). More...
 

Function/Subroutine Documentation

◆ field_dirichlet_apply_scalar()

subroutine field_dirichlet::field_dirichlet_apply_scalar ( class(field_dirichlet_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 
)
private
Parameters
xField onto which to copy the values (e.g. u,v,w,p or s).
nSize of the array x.
tTime.
tstepTime step.

Definition at line 145 of file field_dirichlet.f90.

Here is the call graph for this function:

◆ field_dirichlet_apply_scalar_dev()

subroutine field_dirichlet::field_dirichlet_apply_scalar_dev ( class(field_dirichlet_t), intent(inout), target  this,
type(c_ptr)  x_d,
real(kind=rp), intent(in), optional  t,
integer, intent(in), optional  tstep 
)
private
Parameters
x_dDevice pointer to the field onto which to copy the values.
tTime.
tstepTime step.

Definition at line 162 of file field_dirichlet.f90.

Here is the call graph for this function:

◆ field_dirichlet_apply_vector()

subroutine field_dirichlet::field_dirichlet_apply_vector ( class(field_dirichlet_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 
)
private
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.
tTime.
tstepTime step.

Definition at line 182 of file field_dirichlet.f90.

◆ field_dirichlet_apply_vector_dev()

subroutine field_dirichlet::field_dirichlet_apply_vector_dev ( class(field_dirichlet_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 
)
private
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.
tTime.
tstepTime step.

Definition at line 202 of file field_dirichlet.f90.

◆ field_dirichlet_free()

subroutine field_dirichlet::field_dirichlet_free ( class(field_dirichlet_t), intent(inout), target  this)
private

Definition at line 127 of file field_dirichlet.f90.

◆ field_dirichlet_init()

subroutine field_dirichlet::field_dirichlet_init ( class(field_dirichlet_t), intent(inout), target  this,
character(len=*), intent(in)  bc_name 
)
private
Parameters
bc_nameName of thisfield_bc

Definition at line 116 of file field_dirichlet.f90.