60 real(kind=
rp),
intent(in) :: t
61 integer,
intent(in) :: tstep
62 type(
coef_t),
intent(in) :: coef
63 type(
field_t),
intent(inout) :: nut
64 type(
field_t),
intent(in) :: delta
65 real(kind=
rp),
intent(in) :: c_s
66 type(
field_t),
pointer :: u, v, w
68 type(
field_t),
pointer :: s11, s22, s33, s12, s13, s23
69 integer :: temp_indices(6)
84 call strain_rate(s11%x, s22%x, s33%x, s12%x, s13%x, s23%x, u, v, w, coef)
94 s12%x_d, s13%x_d, s23%x_d, &
95 delta%x_d, nut%x_d, coef%mult_d, &
99 call device_col2(nut%x_d, coef%mult_d, nut%dof%size())
subroutine, public device_col2(a_d, b_d, n)
Vector multiplication .
subroutine, public device_smagorinsky_nut_compute(s11_d, s22_d, s33_d, s12_d, s13_d, s23_d, delta_d, nut_d, mult_d, c_s, n)
Compute the eddy viscosity field for the Sigma model indevice.
Defines a registry for storing solution fields.
type(field_registry_t), target, public neko_field_registry
Global field registry.
Defines Gather-scatter operations.
integer, parameter, public gs_op_add
integer, parameter, public rp
Global precision used in computations.
subroutine, public strain_rate(s11, s22, s33, s12, s13, s23, u, v, w, coef)
Compute the strain rate tensor, i.e 0.5 * du_i/dx_j + du_j/dx_i.
Defines a registry for storing and requesting temporary fields This can be used when you have a funct...
type(scratch_registry_t), target, public neko_scratch_registry
Global scratch registry.
Implements the device kernel for the smagorinsky_t type.
subroutine, public smagorinsky_compute_device(t, tstep, coef, nut, delta, c_s)
Compute eddy viscosity on the device.
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