39  use device, 
only: c_ptr, c_size_t
 
  101       type(
field_list_t), 
intent(inout) :: dirichlet_field_list
 
  102       type(
bc_list_t), 
intent(inout) :: dirichlet_bc_list
 
  103       type(
coef_t), 
intent(inout) :: coef
 
  104       real(kind=
rp), 
intent(in) :: t
 
  105       integer, 
intent(in) :: tstep
 
  106       character(len=*), 
intent(in) :: which_solver
 
 
  118    character(len=*), 
intent(in) :: bc_name
 
  120    call this%field_bc%init(this%dof, bc_name)
 
  121    call this%field_list%init(1)
 
  122    call this%field_list%assign_to_field(1, this%field_bc)
 
 
  131    call this%field_bc%free()
 
  132    call this%field_list%free()
 
  134    if (
associated(this%update)) 
then 
  135       this%update => null()
 
 
  147    integer, 
intent(in) :: n
 
  148    real(kind=
rp), 
intent(inout),  
dimension(n) :: x
 
  149    real(kind=
rp), 
intent(in), 
optional :: t
 
  150    integer, 
intent(in), 
optional :: tstep
 
  152    if (this%msk(0) .gt. 0) 
then 
  153       call masked_copy(x, this%field_bc%x, this%msk, n, this%msk(0))
 
 
  165    real(kind=
rp), 
intent(in), 
optional :: t
 
  166    integer, 
intent(in), 
optional :: tstep
 
  168    if (this%msk(0) .gt. 0) 
then 
  170            this%field_bc%dof%size(), this%msk(0))
 
 
  184    integer, 
intent(in) :: n
 
  185    real(kind=
rp), 
intent(inout),  
dimension(n) :: x
 
  186    real(kind=
rp), 
intent(inout),  
dimension(n) :: y
 
  187    real(kind=
rp), 
intent(inout),  
dimension(n) :: z
 
  188    real(kind=
rp), 
intent(in), 
optional :: t
 
  189    integer, 
intent(in), 
optional :: tstep
 
  191    call neko_error(
"field_dirichlet cannot apply vector BCs.& 
  192&Use field_dirichlet_vector instead!")
 
 
  207    real(kind=
rp), 
intent(in), 
optional :: t
 
  208    integer, 
intent(in), 
optional :: tstep
 
  210    call neko_error(
"field_dirichlet cannot apply vector BCs.& 
  211&Use field_dirichlet_vector instead!")
 
 
Abstract interface defining a dirichlet condition on a list of fields.
 
Defines a boundary condition.
 
subroutine, public device_masked_copy(a_d, b_d, mask_d, n, m)
Copy a masked vector .
 
Device abstraction, common interface for various accelerators.
 
Defines a dirichlet boundary condition.
 
Defines a mapping of the degrees of freedom.
 
Defines inflow dirichlet conditions.
 
subroutine field_dirichlet_apply_vector(this, x, y, z, n, t, tstep)
(No-op) Apply vector.
 
subroutine field_dirichlet_apply_scalar_dev(this, x_d, t, tstep)
Apply scalar (device).
 
subroutine field_dirichlet_apply_vector_dev(this, x_d, y_d, z_d, t, tstep)
(No-op) Apply vector (device).
 
subroutine field_dirichlet_apply_scalar(this, x, n, t, tstep)
Apply scalar by performing a masked copy.
 
subroutine field_dirichlet_init(this, bc_name)
Initializes thisfield_bc.
 
subroutine field_dirichlet_free(this)
Destructor. Currently thisfield_bc is being freed in fluid_scheme::free
 
subroutine, public masked_copy(a, b, mask, n, m)
Copy a masked vector .
 
integer, parameter, public rp
Global precision used in computations.
 
character(len=100) function, dimension(:), allocatable, public split_string(string, delimiter)
Split a string based on delimiter (tokenizer) OBS: very hacky, this should really be improved,...
 
A list of boundary conditions.
 
Base type for a boundary condition.
 
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
 
Generic Dirichlet boundary condition  on .
 
User defined dirichlet condition, for which the user can work with an entire field....
 
field_list_t, To be able to group fields together