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()
230 ale_mesh_velocity => null()
234 ale_base_shapes => null()
237 morph_interface => null()
259 class(
user_t),
intent(inout) :: this
260 logical :: user_extended = .false.
261 character(len=256),
dimension(14) :: extensions
265 if (.not.
associated(this%startup))
then
268 user_extended = .true.
270 write(extensions(n),
'(A)')
'- Startup'
273 if (.not.
associated(this%initial_conditions))
then
276 user_extended = .true.
278 write(extensions(n),
'(A)')
'- Initial condition'
281 if (.not.
associated(this%source_term))
then
284 user_extended = .true.
286 write(extensions(n),
'(A)')
'- Source term'
289 if (.not.
associated(this%dirichlet_conditions))
then
292 user_extended = .true.
294 write(extensions(n),
'(A)')
'- Dirichlet boundary condition'
297 if (.not.
associated(this%neumann_conditions))
then
300 user_extended = .true.
302 write(extensions(n),
'(A)')
'- Neumann boundary condition'
305 if (.not.
associated(this%mesh_setup))
then
308 user_extended = .true.
310 write(extensions(n),
'(A)')
'- Mesh setup'
313 if (.not.
associated(this%compute))
then
316 user_extended = .true.
318 write(extensions(n),
'(A)')
'- User compute'
321 if (.not.
associated(this%preprocess))
then
324 user_extended = .true.
326 write(extensions(n),
'(A)')
'- User preprocess'
329 if (.not.
associated(this%initialize))
then
332 user_extended = .true.
334 write(extensions(n),
'(A)')
'- Initialize modules'
337 if (.not.
associated(this%finalize))
then
340 user_extended = .true.
342 write(extensions(n),
'(A)')
'- Finalize modules'
345 if (.not.
associated(this%material_properties))
then
348 user_extended = .true.
350 write(extensions(n),
'(A)')
'- Material properties'
353 if (
associated(this%ale_mesh_velocity))
then
354 user_extended = .true.
356 write(extensions(n),
'(A)')
'- ALE mesh velocity'
359 if (
associated(this%ale_rigid_kinematics))
then
360 user_extended = .true.
362 write(extensions(n),
'(A)')
'- ALE kinematics'
365 if (
associated(this%ale_base_shapes))
then
366 user_extended = .true.
368 write(extensions(n),
'(A)')
'- ALE base shapes'
371 if (.not.
associated(this%morph_interface))
then
374 user_extended = .true.
376 write(extensions(n),
'(A)')
'- Morph overset interface'
379 if (user_extended)
then
380 call neko_log%section(
'User defined extensions')
383 call neko_log%message(extensions(i))
399 type(json_file),
intent(inout) :: params
404 character(len=*),
intent(in) :: scheme_name
407 call neko_error(
'Dummy user defined initial condition set')
412 character(len=*),
intent(in) :: scheme_name
415 call neko_error(
'Dummy user defined source term set')
420 type(
mesh_t),
intent(inout) :: msh
450 character(len=*),
intent(in) :: scheme_name
456 interface_mask, time, bc_name, &
460 type(
mask_t),
intent(in) :: interface_mask
462 character(len=*),
intent(in) :: bc_name
463 logical,
intent(inout) :: find_interface
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 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 dummy_morph_overset_interface(interface_dof, interface_field, interface_mask, time, bc_name, find_interface)
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