Skip to content

adam_nasto_nvf_kernels

ADAM, NASTO NVF application kernels.

Source: src/app/nasto/nvf/adam_nasto_nvf_kernels.F90

Dependencies

Contents

Subroutines

compute_fluxes_convective_kernel

Compute convective fluxes along x direction.

fortran
subroutine compute_fluxes_convective_kernel(dir, blocks_number, ni, nj, nk, ngc, nv, weno_s, weno_a_gpu, weno_p_gpu, weno_d_gpu, weno_zeps, ror_number, ror_schemes_gpu, ror_threshold, ror_ivar_gpu, ror_stats_gpu, g, q_aux_gpu, fluxes_gpu)

Arguments

NameTypeIntentAttributesDescription
dirinteger(kind=I4P)invalueDirection, 1=X, 2=Y, 3=Z.
blocks_numberinteger(kind=I4P)invalueNumber of blocks.
niinteger(kind=I4P)invalueGrid cells number in I direction.
njinteger(kind=I4P)invalueGrid cells number in J direction.
nkinteger(kind=I4P)invalueGrid cells number in K direction.
ngcinteger(kind=I4P)invalueGhost cells number.
nvinteger(kind=I4P)invalueNumber of conservative varibales.
weno_sinteger(kind=I4P)invalueWeno stencils number/dimension.
weno_a_gpureal(kind=R8P)indeviceOptimal weights.
weno_p_gpureal(kind=R8P)indevicePolinomials coefficients.
weno_d_gpureal(kind=R8P)indeviceSmoothness indicators coefficients.
weno_zepsreal(kind=R8P)invalueParameter to avoid division by zero.
ror_numberinteger(kind=I4P)invalueNumber of ROR iterations.
ror_schemes_gpuinteger(kind=I4P)indeviceScheme (S value) for each ROR step.
ror_thresholdreal(kind=R8P)invalueROR threshold triggering.
ror_ivar_gpuinteger(kind=I4P)indeviceIndex variables to check in ROR.
ror_stats_gpuinteger(kind=I4P)inoutdeviceScheme (S value) for each ROR step.
greal(kind=R8P)invalueSpecific heats ratio.
q_aux_gpureal(kind=R8P)indeviceAuxiliary variables.
fluxes_gpureal(kind=R8P)inoutdeviceFluxes.

Call graph

compute_fluxes_difference_cuf

Compute fluxes difference.

fortran
subroutine compute_fluxes_difference_cuf(null_x, null_y, null_z, blocks_number, ni, nj, nk, ngc, nv, ib_eps, dx_gpu, dy_gpu, dz_gpu, flx_gpu, fly_gpu, flz_gpu, phi_gpu, dq_gpu)

Arguments

NameTypeIntentAttributesDescription
null_xlogicalinNullified directions tags.
null_ylogicalinNullified directions tags.
null_zlogicalinNullified directions tags.
blocks_numberinteger(kind=I4P)inNumber of blocks.
niinteger(kind=I4P)inGrid cells number in I direction.
njinteger(kind=I4P)inGrid cells number in J direction.
nkinteger(kind=I4P)inGrid cells number in K direction.
ngcinteger(kind=I4P)inGhost cells number.
nvinteger(kind=I4P)inNumber of conservative varibales.
ib_epsreal(kind=R8P)inTolerance IB delta ratio.
dx_gpureal(kind=R8P)indeviceSpace steps.
dy_gpureal(kind=R8P)indeviceSpace steps.
dz_gpureal(kind=R8P)indeviceSpace steps.
flx_gpureal(kind=R8P)indeviceX direction fluxes.
fly_gpureal(kind=R8P)indeviceY direction fluxes.
flz_gpureal(kind=R8P)indeviceZ direction fluxes.
phi_gpureal(kind=R8P)indevice, optionalIB distance function.
dq_gpureal(kind=R8P)inoutdeviceFluxes differences.

Call graph

compute_fluxes_diffusive_cuf

Compute diffusive fluxes.

fortran
subroutine compute_fluxes_diffusive_cuf(null_x, null_y, null_z, blocks_number, ni, nj, nk, ngc, nv, mu, kd, q_aux_gpu, dx_gpu, dy_gpu, dz_gpu, flx_gpu, fly_gpu, flz_gpu)

Arguments

NameTypeIntentAttributesDescription
null_xlogicalinNullified directions tags.
null_ylogicalinNullified directions tags.
null_zlogicalinNullified directions tags.
blocks_numberinteger(kind=I4P)inBlocks number.
niinteger(kind=I4P)inGrid dimensionns.
njinteger(kind=I4P)inGrid dimensionns.
nkinteger(kind=I4P)inGrid dimensionns.
ngcinteger(kind=I4P)inNumber of ghost cells.
nvinteger(kind=I4P)inNumber of conservative variables.
mureal(kind=R8P)inViscosity.
kdreal(kind=R8P)inThermal diffusivity.
q_aux_gpureal(kind=R8P)indeviceAuxiliary varibales
dx_gpureal(kind=R8P)indeviceSpace steps.
dy_gpureal(kind=R8P)indeviceSpace steps.
dz_gpureal(kind=R8P)indeviceSpace steps.
flx_gpureal(kind=R8P)inoutdeviceFluxes along x.
fly_gpureal(kind=R8P)inoutdeviceFluxes along y.
flz_gpureal(kind=R8P)inoutdeviceFluxes along z.

Call graph

compute_umax_cuf

Compute maximum speed.

fortran
subroutine compute_umax_cuf(ni, nj, nk, ngc, blocks_number, mu, dx_gpu, dy_gpu, dz_gpu, q_aux_gpu, umax)

Arguments

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid cells number in I direction.
njinteger(kind=I4P)inGrid cells number in J direction.
nkinteger(kind=I4P)inGrid cells number in K direction.
ngcinteger(kind=I4P)inGhost cells number.
blocks_numberinteger(kind=I4P)inNumber of blocks.
mureal(kind=R8P)inDynamic viscosity.
dx_gpureal(kind=R8P)indeviceX space step.
dy_gpureal(kind=R8P)indeviceY space step.
dz_gpureal(kind=R8P)indeviceZ space step.
q_aux_gpureal(kind=R8P)indeviceAuxiliary varibales.
umaxreal(kind=R8P)outMaximum speed.

Call graph

set_bc_q_gpu_cuf

Set BC over q.

fortran
subroutine set_bc_q_gpu_cuf(BC_EXTRAPOLATION, BC_INFLOW, nv, ngc, cv, R, local_map_bc_gpu, fec_1_6_array_gpu, q_bc_vars_gpu, q_gpu)

Arguments

NameTypeIntentAttributesDescription
BC_EXTRAPOLATIONinteger(kind=I4P)inExtrapolation BC parameter.
BC_INFLOWinteger(kind=I4P)inInflow BC parameter.
nvinteger(kind=I4P)inNumber of variables.
ngcinteger(kind=I4P)inGhost cells number.
cvreal(kind=R8P)inConstant volume specific heat.
Rreal(kind=R8P)inGas constant.
local_map_bc_gpuinteger(kind=I8P)indeviceLocal map for BC ghost cells.
fec_1_6_array_gpuinteger(kind=I4P)indeviceLocal map for BC ghost cells.
q_bc_vars_gpureal(kind=R8P)indeviceBoundary variables.
q_gpureal(kind=R8P)inoutdeviceConservative variables.

Call graph

compute_fluxes_convective_device

Compute convective fluxes at right interface of b,i,j,k.

fortran
subroutine compute_fluxes_convective_device(dir, si, sir, b, i, j, k, ngc, nv, weno_s, weno_a_gpu, weno_p_gpu, weno_d_gpu, weno_zeps, ror_number, ror_schemes_gpu, ror_threshold, ror_ivar_gpu, ror_stats_gpu, g, q_aux_gpu, fluxes_gpu)

Arguments

NameTypeIntentAttributesDescription
dirinteger(kind=I4P)invalueDirection, 1=X, 2=Y, 3=Z.
siinteger(kind=I4P)indeviceStencil increment.
sirreal(kind=R8P)indeviceStencil increment, real cast.
binteger(kind=I4P)invalueCounter.
iinteger(kind=I4P)invalueCounter.
jinteger(kind=I4P)invalueCounter.
kinteger(kind=I4P)invalueCounter.
ngcinteger(kind=I4P)invalueGhost cells number.
nvinteger(kind=I4P)invalueNumber of conservative varibales.
weno_sinteger(kind=I4P)invalueWeno stencils number/dimension.
weno_a_gpureal(kind=R8P)indeviceOptimal weights.
weno_p_gpureal(kind=R8P)indevicePolinomials coefficients.
weno_d_gpureal(kind=R8P)indeviceSmoothness indicators coefficients.
weno_zepsreal(kind=R8P)invalueParameter to avoid division by zero.
ror_numberinteger(kind=I4P)invalueNumber of ROR iterations.
ror_schemes_gpuinteger(kind=I4P)indeviceScheme (S value) for each ROR step.
ror_thresholdreal(kind=R8P)invalueROR threshold triggering.
ror_ivar_gpuinteger(kind=I4P)indeviceIndex variables to check in ROR.
ror_stats_gpuinteger(kind=I4P)inoutdeviceScheme (S value) for each ROR step.
greal(kind=R8P)invalueSpecific heats ratio.
q_aux_gpureal(kind=R8P)indeviceAuxiliary variables.
fluxes_gpureal(kind=R8P)inoutdeviceFluxes.

Call graph

decompose_fluxes_convective_device

Decompose convective fluxes. Flux vector splitting by local-Lax-Friedrics (Rusanov) with projection in pseudo-characteristics psace.

fortran
subroutine decompose_fluxes_convective_device(si, sir, el, weno_s, b, i, j, k, ngc, nv, g, q_aux_gpu, fmpc)

Arguments

NameTypeIntentAttributesDescription
siinteger(kind=I4P)indeviceStencil increment.
sirreal(kind=R8P)indeviceStencil increment, real cast.
elreal(kind=R8P)indeviceLeft eigeinvectors.
weno_sinteger(kind=I4P)invalueWeno stencils number/dimension.
binteger(kind=I4P)invalueCounter.
iinteger(kind=I4P)invalueCounter.
jinteger(kind=I4P)invalueCounter.
kinteger(kind=I4P)invalueCounter.
ngcinteger(kind=I4P)invalueGhost cells number.
nvinteger(kind=I4P)invalueNumber of conservative varibales.
greal(kind=R8P)invalueSpecific heats ratio.
q_aux_gpureal(kind=R8P)indeviceAuxiliary variables.
fmpcreal(kind=R8P)inoutdeviceFluxes -+ decomposition in characteristics space.

Call graph