40 use json_module,
only : json_file
42 use,
intrinsic :: iso_c_binding, only : c_ptr
50 real(kind=
rp),
private :: g
60 procedure, pass(this) :: init_from_components => &
75 type(
coef_t),
target,
intent(in) :: coef
76 type(json_file),
intent(inout) ::json
79 call this%init_base(coef)
90 type(
coef_t),
target,
intent(in) :: coef
91 real(kind=
rp),
intent(in) :: g
93 call this%init_base(coef)
101 integer,
intent(in) :: n
102 real(kind=
rp),
intent(inout),
dimension(n) :: x
104 logical,
intent(in),
optional :: strong
108 if (
present(strong))
then
127 integer,
intent(in) :: n
128 real(kind=
rp),
intent(inout),
dimension(n) :: x
129 real(kind=
rp),
intent(inout),
dimension(n) :: y
130 real(kind=
rp),
intent(inout),
dimension(n) :: z
132 logical,
intent(in),
optional :: strong
136 if (
present(strong))
then
158 type(c_ptr),
intent(inout) :: x_d
160 logical,
intent(in),
optional :: strong
161 type(c_ptr),
intent(inout) :: strm
164 if (
present(strong))
then
170 if (strong_ .and. this%msk(0) .gt. 0)
then
172 this%g,
size(this%msk), strm)
182 type(c_ptr),
intent(inout) :: x_d
183 type(c_ptr),
intent(inout) :: y_d
184 type(c_ptr),
intent(inout) :: z_d
186 logical,
intent(in),
optional :: strong
187 type(c_ptr),
intent(inout) :: strm
190 if (
present(strong))
then
196 if (strong_ .and. this%msk(0) .gt. 0)
then
198 size(this%msk), strm)
206 real(kind=
rp),
intent(in) :: g
223 logical,
optional,
intent(in) :: only_facets
224 logical :: only_facets_
226 if (
present(only_facets))
then
227 only_facets_ = only_facets
229 only_facets_ = .false.
232 call this%finalize_base(only_facets_)
Defines a boundary condition.
subroutine, public device_dirichlet_apply_scalar(msk, x, g, m, strm)
subroutine, public device_dirichlet_apply_vector(msk, x, y, z, g, m, strm)
Defines a dirichlet boundary condition.
subroutine dirichlet_apply_vector_dev(this, x_d, y_d, z_d, time, strong, strm)
Boundary condition apply for a generic Dirichlet condition to vectors x, y and z (device version)
subroutine dirichlet_finalize(this, only_facets)
Finalize.
subroutine dirichlet_apply_scalar_dev(this, x_d, time, strong, strm)
Boundary condition apply for a generic Dirichlet condition to a vector x (device version)
subroutine dirichlet_apply_scalar(this, x, n, time, strong)
Boundary condition apply for a generic Dirichlet condition to a vector x.
subroutine dirichlet_apply_vector(this, x, y, z, n, time, strong)
Boundary condition apply for a generic Dirichlet condition to vectors x, y and z.
subroutine dirichlet_free(this)
Destructor.
subroutine dirichlet_init_from_components(this, coef, g)
Constructor from components.
subroutine dirichlet_init(this, coef, json)
Constructor from JSON.
subroutine dirichlet_set_g(this, g)
Set value of .
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,...
Generic Dirichlet boundary condition on .
A struct that contains all info about the time, expand as needed.