41 use json_module,
only : json_file
59 procedure, pass(this) :: init_from_components => &
72 class(
vreman_t),
intent(inout) :: this
74 type(json_file),
intent(inout) :: json
75 character(len=:),
allocatable :: nut_name
77 character(len=:),
allocatable :: delta_type
79 character(len=LOG_SIZE) :: log_buf
88 write(log_buf,
'(A)')
'Model : Vreman'
90 write(log_buf,
'(A, A)')
'Delta evaluation : ', delta_type
92 write(log_buf,
'(A, E15.7)')
'c : ', c
94 write(log_buf,
'(A, L1)')
'extrapolation : ', if_ext
110 class(
vreman_t),
intent(inout) :: this
113 character(len=*),
intent(in) :: nut_name
114 character(len=*),
intent(in) :: delta_type
115 logical,
intent(in) :: if_ext
119 call this%init_base(fluid, nut_name, delta_type, if_ext)
126 class(
vreman_t),
intent(inout) :: this
128 call this%free_base()
135 class(
vreman_t),
intent(inout) :: this
136 real(kind=
rp),
intent(in) :: t
137 integer,
intent(in) :: tstep
139 type(
field_t),
pointer :: u, v, w, u_e, v_e, w_e
141 if (this%if_ext .eqv. .true.)
then
143 associate(ulag => this%ulag, vlag => this%vlag, &
144 wlag => this%wlag, ext_bdf => this%ext_bdf)
153 call this%sumab%compute_fluid(u_e, v_e, w_e, u, v, w, &
154 ulag, vlag, wlag, ext_bdf%advection_coeffs, ext_bdf%nadv)
162 this%nut, this%delta, this%c)
165 this%nut, this%delta, this%c)
Retrieves a parameter by name or assigns a provided default value. In the latter case also adds the m...
Defines a registry for storing solution fields.
type(field_registry_t), target, public neko_field_registry
Global field registry.
Utilities for retrieving parameters from the case files.
type(log_t), public neko_log
Global log stream.
integer, parameter, public log_size
integer, parameter neko_bcknd_device
integer, parameter, public rp
Global precision used in computations.
Implements the CPU kernel for the vreman_t type.
subroutine, public vreman_compute_cpu(if_ext, t, tstep, coef, nut, delta, c)
Compute eddy viscosity on the CPU.
Implements the device kernel for the vreman_t type.
subroutine, public vreman_compute_device(if_ext, t, tstep, coef, nut, delta, c)
Compute eddy viscosity on the device.
subroutine vreman_init_from_components(this, fluid, c, nut_name, delta_type, if_ext)
Constructor from components.
subroutine vreman_free(this)
Destructor for the les_model_t (base) class.
subroutine vreman_compute(this, t, tstep)
Compute eddy viscosity.
subroutine vreman_init(this, fluid, json)
Constructor.
Base type of all fluid formulations.
Base abstract type for LES models based on the Boussinesq approximation.
Implements the Vreman LES model.