38  use, 
intrinsic :: iso_c_binding, only : c_ptr, c_loc
 
   40  use json_module, 
only : json_file
 
   48     real(kind=
rp), 
dimension(3) :: x = [0d0, 0d0, 0d0]
 
 
   68    class(
inflow_t), 
intent(inout), 
target :: this
 
   69    type(
coef_t), 
target, 
intent(in) :: coef
 
   70    type(json_file), 
intent(inout) ::json
 
   71    real(kind=
rp), 
allocatable :: x(:)
 
   73    call this%init_base(coef)
 
 
   80    class(
inflow_t), 
intent(inout) :: this
 
   81    integer, 
intent(in) :: n
 
   82    real(kind=
rp), 
intent(inout), 
dimension(n) :: x
 
   84    logical, 
intent(in), 
optional :: strong
 
 
   89    class(
inflow_t), 
intent(inout), 
target :: this
 
   90    type(c_ptr), 
intent(inout) :: x_d
 
   92    logical, 
intent(in), 
optional :: strong
 
   93    type(c_ptr), 
intent(inout) :: strm
 
 
   98    class(
inflow_t), 
intent(inout) :: this
 
   99    integer, 
intent(in) :: n
 
  100    real(kind=
rp), 
intent(inout), 
dimension(n) :: x
 
  101    real(kind=
rp), 
intent(inout), 
dimension(n) :: y
 
  102    real(kind=
rp), 
intent(inout), 
dimension(n) :: z
 
  104    logical, 
intent(in), 
optional :: strong
 
  108    if (
present(strong)) 
then 
 
  129    class(
inflow_t), 
intent(inout), 
target :: this
 
  130    type(c_ptr), 
intent(inout) :: x_d
 
  131    type(c_ptr), 
intent(inout) :: y_d
 
  132    type(c_ptr), 
intent(inout) :: z_d
 
  134    logical, 
intent(in), 
optional :: strong
 
  135    type(c_ptr), 
intent(inout) :: strm
 
  138    if (
present(strong)) 
then 
  144    if (strong_ .and. (this%msk(0) .gt. 0)) 
then 
  146            c_loc(this%x), this%msk(0), strm)
 
 
  153    class(
inflow_t), 
target, 
intent(inout) :: this
 
  155    call this%free_base()
 
 
  160    class(
inflow_t), 
target, 
intent(inout) :: this
 
  161    logical, 
optional, 
intent(in) :: only_facets
 
  162    logical :: only_facets_
 
  166    if (
present(only_facets)) 
then 
  167       only_facets_ = only_facets
 
  169       only_facets_ = .false.
 
  172    call this%finalize_base(only_facets_)
 
 
Retrieves a parameter by name or throws an error.
 
Defines a boundary condition.
 
subroutine, public device_inflow_apply_vector(msk, x, y, z, g, m, strm)
 
Defines inflow dirichlet conditions.
 
subroutine inflow_apply_scalar_dev(this, x_d, time, strong, strm)
No-op scalar apply (device version)
 
subroutine inflow_apply_scalar(this, x, n, time, strong)
No-op scalar apply.
 
subroutine inflow_finalize(this, only_facets)
Finalize.
 
subroutine inflow_init(this, coef, json)
Constructor.
 
subroutine inflow_apply_vector(this, x, y, z, n, time, strong)
Apply inflow conditions (vector valued)
 
subroutine inflow_apply_vector_dev(this, x_d, y_d, z_d, time, strong, strm)
Apply inflow conditions (vector valued) (device version)
 
subroutine inflow_free(this)
Destructor.
 
Utilities for retrieving parameters from the case files.
 
integer, parameter, public rp
Global precision used in computations.
 
Module with things related to the simulation time.
 
Base type for a boundary condition.
 
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
 
Dirichlet condition for inlet (vector valued)
 
A struct that contains all info about the time, expand as needed.