46 use json_module,
only : json_file
62 type(json_file),
intent(inout) :: params
72 character(len=*),
intent(in) :: scheme_name
92 type(
mesh_t),
intent(inout) :: msh
123 character(len=*),
intent(in) :: scheme_name
139 character(len=*),
intent(in) :: scheme_name
153 x_ref, y_ref, z_ref, base_shapes, time)
155 type(
coef_t),
intent(in) :: coef
156 type(
field_t),
intent(in) :: x_ref, y_ref, z_ref
157 type(
field_t),
intent(inout) :: wm_x, wm_y, wm_z
158 type(
field_t),
intent(in) :: base_shapes(:)
168 type(
field_t),
intent(inout) :: base_shapes(:)
181 integer,
intent(in) :: body_id
183 real(kind=
rp),
intent(inout) :: vel_trans(3)
184 real(kind=
rp),
intent(inout) :: vel_ang(3)
196 logical :: suppress_type_injection = .false.
205 initial_conditions => null()
222 dirichlet_conditions => null()
225 neumann_conditions => null()
228 material_properties => null()
231 ale_mesh_velocity => null()
237 ale_base_shapes => null()
240 morph_interface => null()
264 class(
user_t),
intent(inout) :: this
265 logical :: user_extended = .false.
266 character(len=256),
dimension(15) :: extensions
270 if (.not.
associated(this%startup))
then
273 user_extended = .true.
275 write(extensions(n),
'(A)')
'- Startup'
278 if (.not.
associated(this%initial_conditions))
then
281 user_extended = .true.
283 write(extensions(n),
'(A)')
'- Initial condition'
286 if (.not.
associated(this%source_term))
then
289 user_extended = .true.
291 write(extensions(n),
'(A)')
'- Source term'
294 if (.not.
associated(this%dirichlet_conditions))
then
297 user_extended = .true.
299 write(extensions(n),
'(A)')
'- Dirichlet boundary condition'
302 if (.not.
associated(this%neumann_conditions))
then
305 user_extended = .true.
307 write(extensions(n),
'(A)')
'- Neumann boundary condition'
310 if (.not.
associated(this%mesh_setup))
then
313 user_extended = .true.
315 write(extensions(n),
'(A)')
'- Mesh setup'
318 if (.not.
associated(this%compute))
then
321 user_extended = .true.
323 write(extensions(n),
'(A)')
'- User compute'
326 if (.not.
associated(this%preprocess))
then
329 user_extended = .true.
331 write(extensions(n),
'(A)')
'- User preprocess'
334 if (.not.
associated(this%initialize))
then
337 user_extended = .true.
339 write(extensions(n),
'(A)')
'- Initialize modules'
342 if (.not.
associated(this%finalize))
then
345 user_extended = .true.
347 write(extensions(n),
'(A)')
'- Finalize modules'
350 if (.not.
associated(this%material_properties))
then
353 user_extended = .true.
355 write(extensions(n),
'(A)')
'- Material properties'
358 if (.not.
associated(this%ale_mesh_velocity))
then
361 user_extended = .true.
363 write(extensions(n),
'(A)')
'- ALE mesh velocity'
366 if (.not.
associated(this%ale_rigid_kinematics))
then
369 user_extended = .true.
371 write(extensions(n),
'(A)')
'- ALE kinematics'
374 if (.not.
associated(this%ale_base_shapes))
then
377 user_extended = .true.
379 write(extensions(n),
'(A)')
'- ALE base shapes'
382 if (.not.
associated(this%morph_interface))
then
385 user_extended = .true.
387 write(extensions(n),
'(A)')
'- Morph overset interface'
390 if (user_extended)
then
391 call neko_log%section(
'User defined extensions')
394 call neko_log%message(extensions(i))
410 type(json_file),
intent(inout) :: params
415 character(len=*),
intent(in) :: scheme_name
418 call neko_error(
'Dummy user defined initial condition set')
423 character(len=*),
intent(in) :: scheme_name
426 call neko_error(
'Dummy user defined source term set')
431 type(
mesh_t),
intent(inout) :: msh
461 character(len=*),
intent(in) :: scheme_name
467 interface_mask, time, bc_name, &
471 type(
mask_t),
intent(in) :: interface_mask
473 character(len=*),
intent(in) :: bc_name
474 logical,
intent(inout) :: find_interface
478 x_ref, y_ref, z_ref, base_shapes, time)
479 type(
field_t),
intent(inout) :: wm_x, wm_y, wm_z
480 type(
coef_t),
intent(in) :: coef
481 type(
field_t),
intent(in) :: x_ref, y_ref, z_ref
482 type(
field_t),
intent(in) :: base_shapes(:)
487 type(
field_t),
intent(inout) :: base_shapes(:)
491 integer,
intent(in) :: body_id
493 real(kind=
rp),
intent(inout) :: vel_trans(3)
494 real(kind=
rp),
intent(inout) :: vel_ang(3)
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.
User callback for overset-interface morphing and boundary-value updates.
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.
Object for handling masks in Neko.
integer, parameter, public rp
Global precision used in computations.
Defines overset interface scalar boundary conditions.
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, public dummy_user_ale_mesh_velocity(wm_x, wm_y, wm_z, coef, x_ref, y_ref, z_ref, base_shapes, 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, public dummy_user_ale_base_shapes(base_shapes)
subroutine dummy_user_initial_conditions(scheme_name, fields)
Dummy user initial condition.
subroutine dummy_user_compute(time)
Dummy user compute.
subroutine dummy_morph_overset_interface(interface_dof, interface_field, interface_mask, time, bc_name, find_interface)
subroutine, public dummy_user_ale_rigid_kinematics(body_id, time, vel_trans, vel_ang)
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...
Type for consistently handling masks in Neko. This type encapsulates the mask array and its associate...
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...
vector_list_t, To be able to group vectors together