Skip to content

adam_ib_nvf_kernels

ADAM, IB class NVF kernels (NVF backend of ib_object).

Source: src/lib/nvf/adam_ib_nvf_kernels.F90

Dependencies

Contents

Subroutines

compute_eikonal_dq_phi_cuf

Compute eikonal dq inside IB.

fortran
subroutine compute_eikonal_dq_phi_cuf(ib, ni, nj, nk, ngc, nv, blocks_number, dx_gpu, dy_gpu, dz_gpu, phi_gpu, q_gpu, dq_gpu)

Arguments

NameTypeIntentAttributesDescription
ibinteger(kind=I4P)inIB solid index.
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.
blocks_numberinteger(kind=I4P)inNumber of blocks.
dx_gpureal(kind=R8P)indeviceX space steps.
dy_gpureal(kind=R8P)indeviceY space steps.
dz_gpureal(kind=R8P)indeviceZ space steps.
phi_gpureal(kind=R8P)indeviceDistance function.
q_gpureal(kind=R8P)indeviceState variables.
dq_gpureal(kind=R8P)inoutdeviceState variables variations.

Call graph

compute_phi_all_solids_cuf

Compute last phi index, all solids summary.

fortran
subroutine compute_phi_all_solids_cuf(ni, nj, nk, ngc, blocks_number, phi_gpu)

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 grid number.
blocks_numberinteger(kind=I4P)inNumber of blocks.
phi_gpureal(kind=R8P)inoutdeviceDistance function.

Call graph

compute_phi_analytical_sphere_cuf

Compute phi, distance from ib solid, analytical sphere solid.

fortran
subroutine compute_phi_analytical_sphere_cuf(ib, ni, nj, nk, ngc, blocks_number, sphere, x_cell_gpu, y_cell_gpu, z_cell_gpu, phi_gpu)

Arguments

NameTypeIntentAttributesDescription
ibinteger(kind=I4P)inIB solid index.
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 grid number.
blocks_numberinteger(kind=I4P)inNumber of blocks.
spherereal(kind=R8P)inSphere center [1:3] and radius [4].
x_cell_gpureal(kind=R8P)indeviceCells x coordinates on GPU.
y_cell_gpureal(kind=R8P)indeviceCells y coordinates on GPU.
z_cell_gpureal(kind=R8P)indeviceCells z coordinates on GPU.
phi_gpureal(kind=R8P)inoutdeviceDistance function.

Call graph

evolve_eikonal_q_phi_cuf

Evolve eikonal equation over q inside IB.

fortran
subroutine evolve_eikonal_q_phi_cuf(ib, ni, nj, nk, ngc, nv, blocks_number, phi_gpu, dq_gpu, q_gpu)

Arguments

NameTypeIntentAttributesDescription
ibinteger(kind=I4P)inIB solid index.
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.
blocks_numberinteger(kind=I4P)inNumber of blocks.
phi_gpureal(kind=R8P)indeviceDistance function.
dq_gpureal(kind=R8P)indeviceState variables variation.
q_gpureal(kind=R8P)inoutdeviceState variables.

Call graph

invert_eikonal_q_phi_cuf

Invert eikonal equation over q inside IB.

fortran
subroutine invert_eikonal_q_phi_cuf(BCS_VISCOUS, BCS_EULER, ib, ni, nj, nk, ngc, nv, blocks_number, bcs_type, phi_gpu, q_gpu)

Arguments

NameTypeIntentAttributesDescription
BCS_VISCOUSinteger(kind=I4P)inViscous wall BCS parameter.
BCS_EULERinteger(kind=I4P)inEuler wall BCS parameter.
ibinteger(kind=I4P)inIB solid index.
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.
blocks_numberinteger(kind=I4P)inNumber of blocks.
bcs_typeinteger(kind=I4P)inImmersed boundary type.
phi_gpureal(kind=R8P)indeviceDistance field.
q_gpureal(kind=R8P)inoutdeviceConservative field.

Call graph

move_phi_cuf

Move phi and the actual ptree representation.

fortran
subroutine move_phi_cuf(ni, nj, nk, ngc, blocks_number, velocity, phi_gpu, dphi_gpu)

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 grid number.
blocks_numberinteger(kind=I4P)inNumber of blocks.
velocityreal(kind=R8P)inVelocity of the movement.
phi_gpureal(kind=R8P)inoutdeviceDistance function.
dphi_gpureal(kind=R8P)inoutdeviceDistance function gradient.

Call graph

reduce_cell_order_phi_cuf

Reduce local-cell order of spatial operator close to solids.

fortran
subroutine reduce_cell_order_phi_cuf(ib, ni, nj, nk, ngc, blocks_number, iweno, ib_reduced_order, ib_reduction_extent, phi_gpu, cell_scheme_gpu)

Arguments

NameTypeIntentAttributesDescription
ibinteger(kind=I4P)inIB solid index.
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 grid number.
blocks_numberinteger(kind=I4P)inNumber of blocks.
iwenointeger(kind=I4P)inWENO (half) stencil lenght.
ib_reduced_orderinteger(kind=I4P)inReduced order close to IB solids.
ib_reduction_extentinteger(kind=I4P)inExtent of reduction close to IBi solids.
phi_gpureal(kind=R8P)indeviceDistance function.
cell_scheme_gpuinteger(kind=I4P)inoutdeviceModified order close to solids.

Call graph