48  use json_module, 
only : json_file, json_core, json_value
 
   57     subroutine useric(u, v, w, p, params)
 
   60       type(
field_t), 
intent(inout) :: u
 
   61       type(
field_t), 
intent(inout) :: v
 
   62       type(
field_t), 
intent(inout) :: w
 
   63       type(
field_t), 
intent(inout) :: p
 
   64       type(json_file), 
intent(inout) :: params
 
 
   73       type(
field_t), 
intent(inout) :: s
 
   74       type(json_file), 
intent(inout) :: params
 
 
   86       type(
field_t), 
intent(inout) :: u
 
   87       type(
field_t), 
intent(inout) :: v
 
   88       type(
field_t), 
intent(inout) :: w
 
   89       type(
field_t), 
intent(inout) :: p
 
   90       type(
coef_t), 
intent(inout) :: coef
 
   91       type(json_file), 
intent(inout) :: params
 
 
   99       type(json_file), 
intent(inout) :: params
 
 
  107       type(
mesh_t), 
intent(inout) :: msh
 
 
  118       real(kind=
rp), 
intent(in) :: t
 
  119       integer, 
intent(in) :: tstep
 
  120       type(
field_t), 
intent(inout) :: u
 
  121       type(
field_t), 
intent(inout) :: v
 
  122       type(
field_t), 
intent(inout) :: w
 
  123       type(
field_t), 
intent(inout) :: p
 
  124       type(
coef_t), 
intent(inout) :: coef
 
  125       type(json_file), 
intent(inout) :: param
 
 
  135       type(json_file), 
intent(inout) :: param
 
 
  150       real(kind=
rp), 
intent(in) :: t
 
  151       integer, 
intent(in) :: tstep
 
  152       real(kind=
rp), 
intent(inout) :: rho, mu, cp, lambda
 
  153       type(json_file), 
intent(inout) :: params
 
 
  159     procedure(
useric), 
nopass, 
pointer :: fluid_user_ic => null()
 
  163     procedure(
usermsh), 
nopass, 
pointer :: user_mesh_setup => null()
 
  164     procedure(
usercheck), 
nopass, 
pointer :: user_check => null()
 
 
  186    class(
user_t), 
intent(inout) :: u
 
  187    logical :: user_extended = .false.
 
  188    character(len=256), 
dimension(13) :: extensions
 
  192    if (.not. 
associated(u%fluid_user_ic)) 
then 
  195       user_extended = .true.
 
  197       write(extensions(n), 
'(A)') 
'- Fluid initial condition' 
  200    if (.not. 
associated(u%scalar_user_ic)) 
then 
  203       user_extended = .true.
 
  205       write(extensions(n), 
'(A)') 
'- Scalar initial condition' 
  208    if (.not. 
associated(u%fluid_user_f)) 
then 
  211       user_extended = .true.
 
  213       write(extensions(n), 
'(A)') 
'- Fluid source term' 
  216    if (.not. 
associated(u%fluid_user_f_vector)) 
then 
  219       user_extended = .true.
 
  221       write(extensions(n), 
'(A)') 
'- Fluid source term vector' 
  224    if (.not. 
associated(u%scalar_user_f)) 
then 
  227       user_extended = .true.
 
  229       write(extensions(n), 
'(A)') 
'- Scalar source term' 
  232    if (.not. 
associated(u%scalar_user_f_vector)) 
then 
  235       user_extended = .true.
 
  237       write(extensions(n), 
'(A)') 
'- Scalar source term vector' 
  240    if (.not. 
associated(u%scalar_user_bc)) 
then 
  243       user_extended = .true.
 
  245       write(extensions(n), 
'(A)') 
'- Scalar boundary condition' 
  248    if (.not. 
associated(u%user_dirichlet_update)) 
then 
  251       user_extended = .true.
 
  253       write(extensions(n), 
'(A)') 
'- Dirichlet boundary condition' 
  256    if (.not. 
associated(u%user_mesh_setup)) 
then 
  259       user_extended = .true.
 
  261       write(extensions(n), 
'(A)') 
'- Mesh setup' 
  264    if (.not. 
associated(u%user_check)) 
then 
  267       user_extended = .true.
 
  269       write(extensions(n), 
'(A)') 
'- User check' 
  272    if (.not. 
associated(u%user_init_modules)) 
then 
  275       user_extended = .true.
 
  277       write(extensions(n), 
'(A)') 
'- Initialize modules' 
  280    if (.not. 
associated(u%init_user_simcomp)) 
then 
  284    if (.not. 
associated(u%user_finalize_modules)) 
then 
  287       user_extended = .true.
 
  289       write(extensions(n), 
'(A)') 
'- Finalize modules' 
  292    if (.not. 
associated(u%material_properties)) 
then 
  295       user_extended = .true.
 
  297       write(extensions(n), 
'(A)') 
'- Material properties' 
  300    if (user_extended) 
then 
  301       call neko_log%section(
'User defined extensions')
 
  304          call neko_log%message(extensions(i))
 
 
  320    type(
field_t), 
intent(inout) :: u
 
  321    type(
field_t), 
intent(inout) :: v
 
  322    type(
field_t), 
intent(inout) :: w
 
  323    type(
field_t), 
intent(inout) :: p
 
  324    type(json_file), 
intent(inout) :: params
 
  325    call neko_error(
'Dummy user defined initial condition set')
 
 
  332    type(
field_t), 
intent(inout) :: s
 
  333    type(json_file), 
intent(inout) :: params
 
  334    call neko_error(
'Dummy user defined scalar initial condition set')
 
 
  340    real(kind=
rp), 
intent(in) :: t
 
  341    call neko_error(
'Dummy user defined vector valued forcing set')
 
 
  346    real(kind=
rp), 
intent(inout) :: u
 
  347    real(kind=
rp), 
intent(inout) :: v
 
  348    real(kind=
rp), 
intent(inout) :: w
 
  349    integer, 
intent(in) :: j
 
  350    integer, 
intent(in) :: k
 
  351    integer, 
intent(in) :: l
 
  352    integer, 
intent(in) :: e
 
  353    real(kind=
rp), 
intent(in) :: t
 
  354    call neko_error(
'Dummy user defined forcing set')
 
 
  360    real(kind=
rp), 
intent(in) :: t
 
  361    call neko_error(
'Dummy user defined vector valued forcing set')
 
 
  366    real(kind=
rp), 
intent(inout) :: s
 
  367    integer, 
intent(in) :: j
 
  368    integer, 
intent(in) :: k
 
  369    integer, 
intent(in) :: l
 
  370    integer, 
intent(in) :: e
 
  371    real(kind=
rp), 
intent(in) :: t
 
  372    call neko_error(
'Dummy user defined forcing set')
 
 
  376  subroutine dummy_scalar_user_bc(s, x, y, z, nx, ny, nz, ix, iy, iz, ie, t, tstep)
 
  377    real(kind=
rp), 
intent(inout) :: s
 
  378    real(kind=
rp), 
intent(in) :: x
 
  379    real(kind=
rp), 
intent(in) :: y
 
  380    real(kind=
rp), 
intent(in) :: z
 
  381    real(kind=
rp), 
intent(in) :: nx
 
  382    real(kind=
rp), 
intent(in) :: ny
 
  383    real(kind=
rp), 
intent(in) :: nz
 
  384    integer, 
intent(in) :: ix
 
  385    integer, 
intent(in) :: iy
 
  386    integer, 
intent(in) :: iz
 
  387    integer, 
intent(in) :: ie
 
  388    real(kind=
rp), 
intent(in) :: t
 
  389    integer, 
intent(in) :: tstep
 
  390    call neko_warning(
'Dummy scalar user bc set, applied on all non-labeled zones')
 
 
  395    type(
mesh_t), 
intent(inout) :: msh
 
 
  400    real(kind=
rp), 
intent(in) :: t
 
  401    integer, 
intent(in) :: tstep
 
  402    type(
field_t), 
intent(inout) :: u
 
  403    type(
field_t), 
intent(inout) :: v
 
  404    type(
field_t), 
intent(inout) :: w
 
  405    type(
field_t), 
intent(inout) :: p
 
  406    type(
coef_t), 
intent(inout) :: coef
 
  407    type(json_file), 
intent(inout) :: params
 
 
  412    type(
field_t), 
intent(inout) :: u
 
  413    type(
field_t), 
intent(inout) :: v
 
  414    type(
field_t), 
intent(inout) :: w
 
  415    type(
field_t), 
intent(inout) :: p
 
  416    type(
coef_t), 
intent(inout) :: coef
 
  417    type(json_file), 
intent(inout) :: params
 
 
  421    type(json_file), 
intent(inout) :: params
 
 
  426    type(json_file), 
intent(inout) :: params
 
 
  430                                  coef, t, tstep, which_solver)
 
  431    type(
field_list_t), 
intent(inout) :: dirichlet_field_list
 
  432    type(
bc_list_t), 
intent(inout) :: dirichlet_bc_list
 
  433    type(
coef_t), 
intent(inout) :: coef
 
  434    real(kind=
rp), 
intent(in) :: t
 
  435    integer, 
intent(in) :: tstep
 
  436    character(len=*), 
intent(in) :: which_solver
 
 
  441    real(kind=
rp), 
intent(in) :: t
 
  442    integer, 
intent(in) :: tstep
 
  443    real(kind=
rp), 
intent(inout) :: rho, mu, cp, lambda
 
  444    type(json_file), 
intent(inout) :: params
 
 
  455    character(len=*), 
intent(in) :: name
 
  456    type(json_file), 
intent(inout) :: params
 
  457    type(json_file) :: comp_subdict
 
  459    type(json_core) :: core
 
  460    type(json_value), 
pointer :: simcomp_object
 
  461    character(len=:), 
allocatable :: current_type
 
  462    integer :: n_simcomps
 
  464    logical :: found, is_user
 
  466    call params%get_core(core)
 
  467    call params%get(simcomp_object)
 
  468    call params%info(
'', n_children=n_simcomps)
 
  474       if (.not. is_user) cycle
 
  476       call json_get(comp_subdict, 
"type", current_type)
 
  477       if (trim(current_type) .eq. trim(name)) 
then 
  483    if (.not. found) 
then 
  484       call neko_error(
"User-defined simulation component " &
 
  485                       // trim(name) // 
" not found in case file.")
 
 
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.
 
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.
 
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 adding user defined simulation components.
 
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.
 
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 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.
 
type(json_file) function, public simulation_component_user_settings(name, params)
JSON extraction helper function for simulation components.
 
subroutine dummy_user_final_no_modules(t, params)
 
subroutine user_intf_init(u)
User interface initialization.
 
subroutine dummy_user_init_no_simcomp(params)
 
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, public neko_warning(warning_msg)
Reports a warning to standard output.
 
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...
 
User defined dirichlet condition for inlet (vector valued)
 
User defined dirichlet condition for scalars.