Skip to content

adam_flume_fnl_dissipation_kernels ​

ADAM, FLUME FNL device kernels of the dissipative face fluxes (issue #65, M4).

Device twins of adam_flume_cpu_dissipation_kernels (same stencils, same summation order, the pointwise flux from the shared adam_flume_dissipation_library): see there for the scheme. Device arrays are transposed, (b, i, j, k, v). Separate kernels, never fused with the WENO face kernels (FNL register pressure, issue #47 R-4).

Source: src/app/flume/fnl/adam_flume_fnl_dissipation_kernels.F90

Dependencies

Contents ​

Subroutines ​

add_dissipative_fluxes_o2_dev ​

Add the 2nd-order dissipative face fluxes of direction d to fl_gpu.

fortran
subroutine add_dissipative_fluxes_o2_dev(d, di, dj, dk, ni, nj, nk, ngc, blocks_number, mu0, k0, tref, suth, omega_mu, omega_k, dxyz_gpu, is_null, q_aux_gpu, fl_gpu)

Arguments

NameTypeIntentAttributesDescription
dinteger(kind=I4P)inDirection, 1=x, 2=y, 3=z.
diinteger(kind=I4P)inUnit step along d.
djinteger(kind=I4P)inUnit step along d.
dkinteger(kind=I4P)inUnit step along d.
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
mu0real(kind=R8P)inViscosity and conductivity.
k0real(kind=R8P)inViscosity and conductivity.
trefreal(kind=R8P)inTemperature laws.
suthreal(kind=R8P)inTemperature laws.
omega_mureal(kind=R8P)inTemperature laws.
omega_kreal(kind=R8P)inTemperature laws.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
fl_gpureal(kind=R8P)inoutFace fluxes of direction d.

Call graph

add_dissipative_fluxes_o4_dev ​

Add the 4th-order conservative dissipative face fluxes of direction d to fl_gpu.

fortran
subroutine add_dissipative_fluxes_o4_dev(d, di, dj, dk, ni, nj, nk, ngc, blocks_number, mu0, k0, tref, suth, omega_mu, omega_k, dxyz_gpu, is_null, q_aux_gpu, fl_gpu)

Arguments

NameTypeIntentAttributesDescription
dinteger(kind=I4P)inDirection, 1=x, 2=y, 3=z.
diinteger(kind=I4P)inUnit step along d.
djinteger(kind=I4P)inUnit step along d.
dkinteger(kind=I4P)inUnit step along d.
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
mu0real(kind=R8P)inViscosity and conductivity.
k0real(kind=R8P)inViscosity and conductivity.
trefreal(kind=R8P)inTemperature laws.
suthreal(kind=R8P)inTemperature laws.
omega_mureal(kind=R8P)inTemperature laws.
omega_kreal(kind=R8P)inTemperature laws.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
fl_gpureal(kind=R8P)inoutFace fluxes of direction d.

Call graph

add_sgs_fluxes_o2_dev ​

Device twin of add_sgs_fluxes_o2 of adam_flume_cpu_dissipation_kernels (issue #119, T1).

fortran
subroutine add_sgs_fluxes_o2_dev(d, di, dj, dk, ni, nj, nk, ngc, blocks_number, cp_prt, dxyz_gpu, is_null, q_aux_gpu, mu_t_gpu, fl_gpu)

Arguments

NameTypeIntentAttributesDescription
dinteger(kind=I4P)inDirection, 1=x, 2=y, 3=z.
diinteger(kind=I4P)inUnit step along d.
djinteger(kind=I4P)inUnit step along d.
dkinteger(kind=I4P)inUnit step along d.
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
cp_prtreal(kind=R8P)incp / Pr_t.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
mu_t_gpureal(kind=R8P)inEddy viscosity, [nb, i, j, k, 1].
fl_gpureal(kind=R8P)inoutFace fluxes of direction d.

Call graph

add_sgs_fluxes_o4_dev ​

Device twin of add_sgs_fluxes_o4 of adam_flume_cpu_dissipation_kernels (issue #119, T1).

fortran
subroutine add_sgs_fluxes_o4_dev(d, di, dj, dk, ni, nj, nk, ngc, blocks_number, cp_prt, dxyz_gpu, is_null, q_aux_gpu, mu_t_gpu, fl_gpu)

Arguments

NameTypeIntentAttributesDescription
dinteger(kind=I4P)inDirection, 1=x, 2=y, 3=z.
diinteger(kind=I4P)inUnit step along d.
djinteger(kind=I4P)inUnit step along d.
dkinteger(kind=I4P)inUnit step along d.
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
cp_prtreal(kind=R8P)incp / Pr_t.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
mu_t_gpureal(kind=R8P)inEddy viscosity, [nb, i, j, k, 1].
fl_gpureal(kind=R8P)inoutFace fluxes of direction d.

Call graph

compute_sgs_dissipation_dev ​

Device twin of compute_sgs_dissipation of adam_flume_cpu_dissipation_kernels (issue #119, T1).

fortran
subroutine compute_sgs_dissipation_dev(ni, nj, nk, ngc, blocks_number, dxyz_gpu, is_null, q_aux_gpu, mu_t_gpu, eps)

Arguments

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
mu_t_gpureal(kind=R8P)inEddy viscosity, [nb, i, j, k, 1].
epsreal(kind=R8P)outThe integral.

Call graph

compute_lambda_sgs_dev ​

Device twin of compute_lambda_sgs of adam_flume_cpu_dissipation_kernels (issue #119, T1).

fortran
subroutine compute_lambda_sgs_dev(ni, nj, nk, ngc, blocks_number, factor, dxyz_gpu, is_null, q_aux_gpu, mu_t_gpu, lambda_sgs)

Arguments

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
factorreal(kind=R8P)inmax(4/3, gamma / Pr_t).
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
mu_t_gpureal(kind=R8P)inEddy viscosity, [nb, i, j, k, 1].
lambda_sgsreal(kind=R8P)outThe maximum.

Call graph

compute_turbulence_integrals_dev ​

Device twin of adam_flume_cpu_dissipation_kernels%compute_turbulence_integrals (issue #119, T0.1).

fortran
subroutine compute_turbulence_integrals_dev(ni, nj, nk, ngc, blocks_number, mu0, tref, suth, omega_mu, dxyz_gpu, is_null, q_aux_gpu, integrals)

Arguments

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
mu0real(kind=R8P)inViscosity law.
trefreal(kind=R8P)inViscosity law.
suthreal(kind=R8P)inViscosity law.
omega_mureal(kind=R8P)inViscosity law.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
integralsreal(kind=R8P)outIntegrals (compute_turbulence_integrands).

Call graph

add_resistive_fluxes_o2_dev ​

Add the 2nd-order Ohmic face fluxes of direction d to fl_gpu (MHD; twin of add_resistive_fluxes_o2).

fortran
subroutine add_resistive_fluxes_o2_dev(d, di, dj, dk, ni, nj, nk, ngc, blocks_number, eta, dxyz_gpu, is_null, q_aux_gpu, fl_gpu)

Arguments

NameTypeIntentAttributesDescription
dinteger(kind=I4P)inDirection, 1=x, 2=y, 3=z.
diinteger(kind=I4P)inUnit step along d.
djinteger(kind=I4P)inUnit step along d.
dkinteger(kind=I4P)inUnit step along d.
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
etareal(kind=R8P)inMagnetic diffusivity.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
fl_gpureal(kind=R8P)inoutFace fluxes of direction d.

Call graph

add_resistive_fluxes_o4_dev ​

Add the 4th-order conservative Ohmic face fluxes of direction d to fl_gpu (MHD; twin of add_resistive_fluxes_o4).

fortran
subroutine add_resistive_fluxes_o4_dev(d, di, dj, dk, ni, nj, nk, ngc, blocks_number, eta, dxyz_gpu, is_null, q_aux_gpu, fl_gpu)

Arguments

NameTypeIntentAttributesDescription
dinteger(kind=I4P)inDirection, 1=x, 2=y, 3=z.
diinteger(kind=I4P)inUnit step along d.
djinteger(kind=I4P)inUnit step along d.
dkinteger(kind=I4P)inUnit step along d.
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inActual blocks number.
etareal(kind=R8P)inMagnetic diffusivity.
dxyz_gpureal(kind=R8P)inBlocks space steps [nb, 3].
is_nulllogicalinNull directions.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
fl_gpureal(kind=R8P)inoutFace fluxes of direction d.

Call graph