43 use json_module,
only : json_file
59 type(json_file),
intent(inout) :: params
69 character(len=*),
intent(in) :: scheme_name
89 type(
mesh_t),
intent(inout) :: msh
120 character(len=*),
intent(in) :: scheme_name
136 character(len=*),
intent(in) :: scheme_name
150 x_ref, y_ref, z_ref, base_shapes, time)
152 type(
coef_t),
intent(in) :: coef
153 type(
field_t),
intent(in) :: x_ref, y_ref, z_ref
154 type(
field_t),
intent(inout) :: wm_x, wm_y, wm_z
155 type(
field_t),
intent(in) :: base_shapes(:)
165 type(
field_t),
intent(inout) :: base_shapes(:)
178 integer,
intent(in) :: body_id
180 real(kind=
rp),
intent(inout) :: vel_trans(3)
181 real(kind=
rp),
intent(inout) :: vel_ang(3)
193 logical :: suppress_type_injection = .false.
202 initial_conditions => null()
219 dirichlet_conditions => null()
222 neumann_conditions => null()
225 material_properties => null()
227 ale_mesh_velocity => null()
231 ale_base_shapes => null()
253 class(
user_t),
intent(inout) :: this
254 logical :: user_extended = .false.
255 character(len=256),
dimension(14) :: extensions
259 if (.not.
associated(this%startup))
then
262 user_extended = .true.
264 write(extensions(n),
'(A)')
'- Startup'
267 if (.not.
associated(this%initial_conditions))
then
270 user_extended = .true.
272 write(extensions(n),
'(A)')
'- Initial condition'
275 if (.not.
associated(this%source_term))
then
278 user_extended = .true.
280 write(extensions(n),
'(A)')
'- Source term'
283 if (.not.
associated(this%dirichlet_conditions))
then
286 user_extended = .true.
288 write(extensions(n),
'(A)')
'- Dirichlet boundary condition'
291 if (.not.
associated(this%neumann_conditions))
then
294 user_extended = .true.
296 write(extensions(n),
'(A)')
'- Neumann boundary condition'
299 if (.not.
associated(this%mesh_setup))
then
302 user_extended = .true.
304 write(extensions(n),
'(A)')
'- Mesh setup'
307 if (.not.
associated(this%compute))
then
310 user_extended = .true.
312 write(extensions(n),
'(A)')
'- User compute'
315 if (.not.
associated(this%preprocess))
then
318 user_extended = .true.
320 write(extensions(n),
'(A)')
'- User preprocess'
323 if (.not.
associated(this%initialize))
then
326 user_extended = .true.
328 write(extensions(n),
'(A)')
'- Initialize modules'
331 if (.not.
associated(this%finalize))
then
334 user_extended = .true.
336 write(extensions(n),
'(A)')
'- Finalize modules'
339 if (.not.
associated(this%material_properties))
then
342 user_extended = .true.
344 write(extensions(n),
'(A)')
'- Material properties'
347 if (
associated(this%ale_mesh_velocity))
then
348 user_extended = .true.
350 write(extensions(n),
'(A)')
'- ALE mesh velocity'
353 if (
associated(this%ale_rigid_kinematics))
then
354 user_extended = .true.
356 write(extensions(n),
'(A)')
'- ALE kinematics'
359 if (
associated(this%ale_base_shapes))
then
360 user_extended = .true.
362 write(extensions(n),
'(A)')
'- ALE base shapes'
365 if (user_extended)
then
366 call neko_log%section(
'User defined extensions')
369 call neko_log%message(extensions(i))
385 type(json_file),
intent(inout) :: params
390 character(len=*),
intent(in) :: scheme_name
393 call neko_error(
'Dummy user defined initial condition set')
398 character(len=*),
intent(in) :: scheme_name
401 call neko_error(
'Dummy user defined source term set')
406 type(
mesh_t),
intent(inout) :: msh
436 character(len=*),
intent(in) :: scheme_name
Abstract interface defining a dirichlet condition on a list of fields.
Abstract interface defining a neumann condition on a list of fields.
Retrieves a parameter by name or assigns a provided default value. In the latter case also adds the m...
Retrieves a parameter by name or throws an error.
Abstract interface for user defined ALE base shapes.
Abstract interface for user defined ALE mesh velocity.
Abstract interface for user defined ALE rigid body kinematics.
Abstract interface for user defined check functions.
Abstract interface for finalizating user variables.
Abstract interface for user defined initial conditions.
Abstract interface for initilialization of modules.
Abstract interface for setting material properties.
Abstract interface for user defined mesh deformation functions.
Abstract interface for user defined source term.
Abstract interface for a user start-up routine.
Defines data structures and algorithms for configuring, calculating, and time-integrating the rigid-b...
Defines a boundary condition.
Defines user dirichlet condition for a scalar field.
Defines user neumann condition for a scalar field.
Utilities for retrieving parameters from the case files.
type(log_t), public neko_log
Global log stream.
integer, parameter, public rp
Global precision used in computations.
Implements the source_term_t type and a wrapper source_term_wrapper_t.
Module with things related to the simulation time.
Interfaces for user interaction with NEKO.
subroutine dummy_user_finalize(time)
subroutine neumann_do_nothing(fields, bc, time)
subroutine dummy_user_source_term(scheme_name, rhs, time)
Dummy user source_term.
subroutine user_intf_init(this)
Constructor.
subroutine dummy_initialize(time)
subroutine, public dummy_user_material_properties(scheme_name, properties, time)
subroutine dummy_startup(params)
Dummy user startup.
subroutine dirichlet_do_nothing(fields, bc, time)
subroutine dummy_user_mesh_setup(msh, time)
Dummy user mesh apply.
subroutine dummy_user_initial_conditions(scheme_name, fields)
Dummy user initial condition.
subroutine dummy_user_compute(time)
Dummy user compute.
subroutine, public neko_warning(warning_msg)
Reports a warning to standard output.
Base type for a boundary condition.
A list of allocatable `bc_t`. Follows the standard interface of lists.
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
User defined dirichlet condition, for which the user can work with an entire field....
field_list_t, To be able to group fields together
User defined neumann condition, for which the user can work with an entire field. The type stores a s...
A struct that contains all info about the time, expand as needed.
A type collecting all the overridable user routines and flag to suppress type injection from custom m...