Skip to content

adam_nasto_fnl_kernels

ADAM, NASTO FNL application kernels.

Source: src/app/nasto/fnl/adam_nasto_fnl_kernels.F90

Dependencies

Contents

Subroutines

compute_fluxes_convective_dev

Compute convective fluxes along x direction.

fortran
subroutine compute_fluxes_convective_dev(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)inDirection, 1=X, 2=Y, 3=Z.
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.
weno_sinteger(kind=I4P)inWeno stencils number/dimension.
weno_a_gpureal(kind=R8P)inOptimal weights.
weno_p_gpureal(kind=R8P)inPolinomials coefficients.
weno_d_gpureal(kind=R8P)inSmoothness indicators coefficients.
weno_zepsreal(kind=R8P)inParameter to avoid division by zero.
ror_numberinteger(kind=I4P)inNumber of ROR iterations.
ror_schemes_gpuinteger(kind=I4P)inScheme (S value) for each ROR step.
ror_thresholdreal(kind=R8P)inROR threshold triggering.
ror_ivar_gpuinteger(kind=I4P)inIndex variables to check in ROR.
ror_stats_gpuinteger(kind=I4P)inoutScheme (S value) for each ROR step.
greal(kind=R8P)inSpecific heats ratio.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
fluxes_gpureal(kind=R8P)inoutFluxes.

Call graph

compute_fluxes_difference_dev

Compute fluxes difference.

fortran
subroutine compute_fluxes_difference_dev(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)inSpace steps.
dy_gpureal(kind=R8P)inSpace steps.
dz_gpureal(kind=R8P)inSpace steps.
flx_gpureal(kind=R8P)inX direction fluxes.
fly_gpureal(kind=R8P)inY direction fluxes.
flz_gpureal(kind=R8P)inZ direction fluxes.
phi_gpureal(kind=R8P)inoptionalIB distance function.
dq_gpureal(kind=R8P)inoutFluxes differences.

Call graph

compute_fluxes_diffusive_dev

Compute diffusive fluxes.

fortran
subroutine compute_fluxes_diffusive_dev(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)inAuxiliary varibales
dx_gpureal(kind=R8P)inSpace steps.
dy_gpureal(kind=R8P)inSpace steps.
dz_gpureal(kind=R8P)inSpace steps.
flx_gpureal(kind=R8P)inoutFluxes along x.
fly_gpureal(kind=R8P)inoutFluxes along y.
flz_gpureal(kind=R8P)inoutFluxes along z.

Call graph

compute_umax_dev

Compute maximum speed.

fortran
subroutine compute_umax_dev(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)inX space step.
dy_gpureal(kind=R8P)inY space step.
dz_gpureal(kind=R8P)inZ space step.
q_aux_gpureal(kind=R8P)inAuxiliary varibales.
umaxreal(kind=R8P)outMaximum speed.

Call graph

set_bc_q_gpu_dev

Set BC over q.

fortran
subroutine set_bc_q_gpu_dev(BC_EXTRAPOLATION, BC_INFLOW, nv, ngc, cv, R, l_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.
l_map_bc_gpuinteger(kind=I8P)inLocal map for BC ghost cells.
fec_1_6_array_gpuinteger(kind=I4P)inLocal map for BC ghost cells.
q_bc_vars_gpureal(kind=R8P)inBoundary variables.
q_gpureal(kind=R8P)inoutConservative variables.

Call graph

compute_fluxes_convective_ri_dev

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

fortran
subroutine compute_fluxes_convective_ri_dev(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)inDirection, 1=X, 2=Y, 3=Z.
siinteger(kind=I4P)inStencil increment.
sirreal(kind=R8P)inStencil increment, real cast.
binteger(kind=I4P)inCounter.
iinteger(kind=I4P)inCounter.
jinteger(kind=I4P)inCounter.
kinteger(kind=I4P)inCounter.
ngcinteger(kind=I4P)inGhost cells number.
nvinteger(kind=I4P)inNumber of conservative varibales.
weno_sinteger(kind=I4P)inWeno stencils number/dimension.
weno_a_gpureal(kind=R8P)inOptimal weights.
weno_p_gpureal(kind=R8P)inPolinomials coefficients.
weno_d_gpureal(kind=R8P)inSmoothness indicators coefficients.
weno_zepsreal(kind=R8P)inParameter to avoid division by zero.
ror_numberinteger(kind=I4P)inNumber of ROR iterations.
ror_schemes_gpuinteger(kind=I4P)inScheme (S value) for each ROR step.
ror_thresholdreal(kind=R8P)inROR threshold triggering.
ror_ivar_gpuinteger(kind=I4P)inIndex variables to check in ROR.
ror_stats_gpuinteger(kind=I4P)inoutScheme (S value) for each ROR step.
greal(kind=R8P)inSpecific heats ratio.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
fluxes_gpureal(kind=R8P)inoutFluxes.

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)inStencil increment.
sirreal(kind=R8P)inStencil increment, real cast.
elreal(kind=R8P)inLeft eigeinvectors.
weno_sinteger(kind=I4P)inWeno stencils number/dimension.
binteger(kind=I4P)inCounter.
iinteger(kind=I4P)inCounter.
jinteger(kind=I4P)inCounter.
kinteger(kind=I4P)inCounter.
ngcinteger(kind=I4P)inGhost cells number.
nvinteger(kind=I4P)inNumber of conservative varibales.
greal(kind=R8P)inSpecific heats ratio.
q_aux_gpureal(kind=R8P)inAuxiliary variables.
fmpcreal(kind=R8P)inoutFluxes -+ decomposition in characteristics space.

Call graph