Appearance
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
- add_dissipative_fluxes_o2_dev
- add_dissipative_fluxes_o4_dev
- add_sgs_fluxes_o2_dev
- add_sgs_fluxes_o4_dev
- compute_sgs_dissipation_dev
- compute_lambda_sgs_dev
- compute_turbulence_integrals_dev
- add_resistive_fluxes_o2_dev
- add_resistive_fluxes_o4_dev
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
d | integer(kind=I4P) | in | Direction, 1=x, 2=y, 3=z. | |
di | integer(kind=I4P) | in | Unit step along d. | |
dj | integer(kind=I4P) | in | Unit step along d. | |
dk | integer(kind=I4P) | in | Unit step along d. | |
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
mu0 | real(kind=R8P) | in | Viscosity and conductivity. | |
k0 | real(kind=R8P) | in | Viscosity and conductivity. | |
tref | real(kind=R8P) | in | Temperature laws. | |
suth | real(kind=R8P) | in | Temperature laws. | |
omega_mu | real(kind=R8P) | in | Temperature laws. | |
omega_k | real(kind=R8P) | in | Temperature laws. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
fl_gpu | real(kind=R8P) | inout | Face 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
d | integer(kind=I4P) | in | Direction, 1=x, 2=y, 3=z. | |
di | integer(kind=I4P) | in | Unit step along d. | |
dj | integer(kind=I4P) | in | Unit step along d. | |
dk | integer(kind=I4P) | in | Unit step along d. | |
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
mu0 | real(kind=R8P) | in | Viscosity and conductivity. | |
k0 | real(kind=R8P) | in | Viscosity and conductivity. | |
tref | real(kind=R8P) | in | Temperature laws. | |
suth | real(kind=R8P) | in | Temperature laws. | |
omega_mu | real(kind=R8P) | in | Temperature laws. | |
omega_k | real(kind=R8P) | in | Temperature laws. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
fl_gpu | real(kind=R8P) | inout | Face 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
d | integer(kind=I4P) | in | Direction, 1=x, 2=y, 3=z. | |
di | integer(kind=I4P) | in | Unit step along d. | |
dj | integer(kind=I4P) | in | Unit step along d. | |
dk | integer(kind=I4P) | in | Unit step along d. | |
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
cp_prt | real(kind=R8P) | in | cp / Pr_t. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
mu_t_gpu | real(kind=R8P) | in | Eddy viscosity, [nb, i, j, k, 1]. | |
fl_gpu | real(kind=R8P) | inout | Face 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
d | integer(kind=I4P) | in | Direction, 1=x, 2=y, 3=z. | |
di | integer(kind=I4P) | in | Unit step along d. | |
dj | integer(kind=I4P) | in | Unit step along d. | |
dk | integer(kind=I4P) | in | Unit step along d. | |
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
cp_prt | real(kind=R8P) | in | cp / Pr_t. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
mu_t_gpu | real(kind=R8P) | in | Eddy viscosity, [nb, i, j, k, 1]. | |
fl_gpu | real(kind=R8P) | inout | Face 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
mu_t_gpu | real(kind=R8P) | in | Eddy viscosity, [nb, i, j, k, 1]. | |
eps | real(kind=R8P) | out | The 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
factor | real(kind=R8P) | in | max(4/3, gamma / Pr_t). | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
mu_t_gpu | real(kind=R8P) | in | Eddy viscosity, [nb, i, j, k, 1]. | |
lambda_sgs | real(kind=R8P) | out | The 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
mu0 | real(kind=R8P) | in | Viscosity law. | |
tref | real(kind=R8P) | in | Viscosity law. | |
suth | real(kind=R8P) | in | Viscosity law. | |
omega_mu | real(kind=R8P) | in | Viscosity law. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
integrals | real(kind=R8P) | out | Integrals (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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
d | integer(kind=I4P) | in | Direction, 1=x, 2=y, 3=z. | |
di | integer(kind=I4P) | in | Unit step along d. | |
dj | integer(kind=I4P) | in | Unit step along d. | |
dk | integer(kind=I4P) | in | Unit step along d. | |
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
eta | real(kind=R8P) | in | Magnetic diffusivity. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
fl_gpu | real(kind=R8P) | inout | Face 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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
d | integer(kind=I4P) | in | Direction, 1=x, 2=y, 3=z. | |
di | integer(kind=I4P) | in | Unit step along d. | |
dj | integer(kind=I4P) | in | Unit step along d. | |
dk | integer(kind=I4P) | in | Unit step along d. | |
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Actual blocks number. | |
eta | real(kind=R8P) | in | Magnetic diffusivity. | |
dxyz_gpu | real(kind=R8P) | in | Blocks space steps [nb, 3]. | |
is_null | logical | in | Null directions. | |
q_aux_gpu | real(kind=R8P) | in | Auxiliary variables. | |
fl_gpu | real(kind=R8P) | inout | Face fluxes of direction d. |
Call graph