46 use json_module,
only : json_file
53 subroutine useric(u, v, w, p, params)
56 type(
field_t),
intent(inout) :: u
57 type(
field_t),
intent(inout) :: v
58 type(
field_t),
intent(inout) :: w
59 type(
field_t),
intent(inout) :: p
60 type(json_file),
intent(inout) :: params
69 type(
field_t),
intent(inout) :: s
70 type(json_file),
intent(inout) :: params
82 type(
field_t),
intent(inout) :: u
83 type(
field_t),
intent(inout) :: v
84 type(
field_t),
intent(inout) :: w
85 type(
field_t),
intent(inout) :: p
86 type(
coef_t),
intent(inout) :: coef
87 type(json_file),
intent(inout) :: params
96 type(
mesh_t),
intent(inout) :: msh
107 real(kind=
rp),
intent(in) :: t
108 integer,
intent(in) :: tstep
109 type(
field_t),
intent(inout) :: u
110 type(
field_t),
intent(inout) :: v
111 type(
field_t),
intent(inout) :: w
112 type(
field_t),
intent(inout) :: p
113 type(
coef_t),
intent(inout) :: coef
114 type(json_file),
intent(inout) :: param
124 type(json_file),
intent(inout) :: param
139 real(kind=
rp),
intent(in) :: t
140 integer,
intent(in) :: tstep
141 real(kind=
rp),
intent(inout) :: rho, mu, cp, lambda
142 type(json_file),
intent(inout) :: params
147 procedure(
useric),
nopass,
pointer :: fluid_user_ic => null()
150 procedure(
usermsh),
nopass,
pointer :: user_mesh_setup => null()
151 procedure(
usercheck),
nopass,
pointer :: user_check => null()
172 class(
user_t),
intent(inout) :: u
174 if (.not.
associated(u%fluid_user_ic))
then
178 if (.not.
associated(u%scalar_user_ic))
then
182 if (.not.
associated(u%fluid_user_f))
then
186 if (.not.
associated(u%fluid_user_f_vector))
then
190 if (.not.
associated(u%scalar_user_f))
then
194 if (.not.
associated(u%scalar_user_f_vector))
then
198 if (.not.
associated(u%scalar_user_bc))
then
202 if (.not.
associated(u%user_dirichlet_update))
then
206 if (.not.
associated(u%user_mesh_setup))
then
210 if (.not.
associated(u%user_check))
then
214 if (.not.
associated(u%user_init_modules))
then
218 if (.not.
associated(u%user_finalize_modules))
then
222 if (.not.
associated(u%material_properties))
then
235 type(
field_t),
intent(inout) :: u
236 type(
field_t),
intent(inout) :: v
237 type(
field_t),
intent(inout) :: w
238 type(
field_t),
intent(inout) :: p
239 type(json_file),
intent(inout) :: params
240 call neko_error(
'Dummy user defined initial condition set')
247 type(
field_t),
intent(inout) :: s
248 type(json_file),
intent(inout) :: params
249 call neko_error(
'Dummy user defined scalar initial condition set')
255 real(kind=
rp),
intent(in) :: t
256 call neko_error(
'Dummy user defined vector valued forcing set')
261 real(kind=
rp),
intent(inout) :: u
262 real(kind=
rp),
intent(inout) :: v
263 real(kind=
rp),
intent(inout) :: w
264 integer,
intent(in) :: j
265 integer,
intent(in) :: k
266 integer,
intent(in) :: l
267 integer,
intent(in) :: e
268 real(kind=
rp),
intent(in) :: t
269 call neko_error(
'Dummy user defined forcing set')
275 real(kind=
rp),
intent(in) :: t
276 call neko_error(
'Dummy user defined vector valued forcing set')
281 real(kind=
rp),
intent(inout) :: s
282 integer,
intent(in) :: j
283 integer,
intent(in) :: k
284 integer,
intent(in) :: l
285 integer,
intent(in) :: e
286 real(kind=
rp),
intent(in) :: t
287 call neko_error(
'Dummy user defined forcing set')
291 subroutine dummy_scalar_user_bc(s, x, y, z, nx, ny, nz, ix, iy, iz, ie, t, tstep)
292 real(kind=
rp),
intent(inout) :: s
293 real(kind=
rp),
intent(in) :: x
294 real(kind=
rp),
intent(in) :: y
295 real(kind=
rp),
intent(in) :: z
296 real(kind=
rp),
intent(in) :: nx
297 real(kind=
rp),
intent(in) :: ny
298 real(kind=
rp),
intent(in) :: nz
299 integer,
intent(in) :: ix
300 integer,
intent(in) :: iy
301 integer,
intent(in) :: iz
302 integer,
intent(in) :: ie
303 real(kind=
rp),
intent(in) :: t
304 integer,
intent(in) :: tstep
305 call neko_warning(
'Dummy scalar user bc set, applied on all non-labeled zones')
310 type(
mesh_t),
intent(inout) :: msh
315 real(kind=
rp),
intent(in) :: t
316 integer,
intent(in) :: tstep
317 type(
field_t),
intent(inout) :: u
318 type(
field_t),
intent(inout) :: v
319 type(
field_t),
intent(inout) :: w
320 type(
field_t),
intent(inout) :: p
321 type(
coef_t),
intent(inout) :: coef
322 type(json_file),
intent(inout) :: params
327 type(
field_t),
intent(inout) :: u
328 type(
field_t),
intent(inout) :: v
329 type(
field_t),
intent(inout) :: w
330 type(
field_t),
intent(inout) :: p
331 type(
coef_t),
intent(inout) :: coef
332 type(json_file),
intent(inout) :: params
337 type(json_file),
intent(inout) :: params
341 coef, t, tstep, which_solver)
342 type(
field_list_t),
intent(inout) :: dirichlet_field_list
343 type(
bc_list_t),
intent(inout) :: dirichlet_bc_list
344 type(
coef_t),
intent(inout) :: coef
345 real(kind=
rp),
intent(in) :: t
346 integer,
intent(in) :: tstep
347 character(len=*),
intent(in) :: which_solver
352 real(kind=
rp),
intent(in) :: t
353 integer,
intent(in) :: tstep
354 real(kind=
rp),
intent(inout) :: rho, mu, cp, lambda
355 type(json_file),
intent(inout) :: params
Abstract interface defining a dirichlet condition on a list of fields.
Computes the source term at a single point.
Computes the source term and adds the result to fields.
Computes the source term at a single point.
Computes the source term and adds the result to fields.
Abstract interface for finalizating user variables.
Abstract interface for initilialization of modules.
Abstract interface for setting material properties.
Abstract interface for user defined check functions.
Abstract interface for user defined scalar initial conditions.
Abstract interface for user defined initial conditions.
Abstract interface for user defined mesh deformation functions.
Abstract interface defining a user defined inflow condition (pointwise)
Abstract interface defining a user defined scalar boundary condition (pointwise) Just imitating inflo...
Defines a boundary condition.
Defines inflow dirichlet conditions.
Implements the fluid_user_source_term_t type.
Implements material_properties_t type.
integer, parameter, public rp
Global precision used in computations.
Implements the scalar_user_source_term_t type.
Interfaces for user interaction with NEKO.
subroutine dummy_user_f_vector(f, t)
Dummy user (fluid) forcing.
subroutine dummy_user_ic_scalar(s, params)
Dummy user initial condition for scalar field.
subroutine dummy_user_final_no_modules(t, params)
subroutine user_intf_init(u)
User interface initialization.
subroutine dummy_scalar_user_f(s, j, k, l, e, t)
Dummy user (scalar) forcing.
subroutine dummy_user_f(u, v, w, j, k, l, e, t)
Dummy user (fluid) forcing.
subroutine dummy_user_mesh_setup(msh)
Dummy user mesh apply.
subroutine dummy_user_ic(u, v, w, p, params)
Dummy user initial condition.
subroutine dirichlet_do_nothing(dirichlet_field_list, dirichlet_bc_list, coef, t, tstep, which_solver)
subroutine, public dummy_user_material_properties(t, tstep, rho, mu, cp, lambda, params)
subroutine dummy_user_check(t, tstep, u, v, w, p, coef, params)
Dummy user check.
subroutine dummy_user_scalar_f_vector(f, t)
Dummy user (scalar) forcing.
subroutine dummy_scalar_user_bc(s, x, y, z, nx, ny, nz, ix, iy, iz, ie, t, tstep)
Dummy user boundary condition for scalar.
subroutine dummy_user_init_no_modules(t, u, v, w, p, coef, params)
Defines inflow dirichlet conditions.
Defines dirichlet conditions for scalars.
subroutine neko_warning(warning_msg)
A list of boundary conditions.
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
field_list_t, To be able to group fields together
A source-term for the fluid, with procedure pointers pointing to the actual implementation in the use...
A source-term for the scalar, with procedure pointers pointing to the actual implementation in the us...