Skip to content

adam_prism_fnl_pml_object

ADAM, PRISM perfectly matched layer class definition, FNL backend.

Source: src/app/prism/fnl/adam_prism_fnl_pml_object.F90

Dependencies

Contents

Variables

NameTypeAttributesDescription
PML_FACE_X_Minteger(kind=I4P)parameter
PML_FACE_X_Pinteger(kind=I4P)parameter
PML_FACE_Y_Minteger(kind=I4P)parameter
PML_FACE_Y_Pinteger(kind=I4P)parameter
PML_FACE_Z_Minteger(kind=I4P)parameter
PML_FACE_Z_Pinteger(kind=I4P)parameter
PML_VARS_PER_FACEinteger(kind=I4P)parameter
CFS_PROFILE_EXPONENTinteger(kind=I4P)parameter
BERMUDEZ_EPSreal(kind=R8P)parameter
PML_TYPE_NONEcharacter(len=8)parameter
PML_TYPE_CLASSICcharacter(len=8)parameter
PML_TYPE_CFScharacter(len=8)parameter
PML_TYPE_BERMUDEZcharacter(len=8)parameter

Derived Types

prism_fnl_pml_object

Components

NameTypeAttributesDescription
enabledlogical
pml_typecharacter(len=99)
layerlogical
widthreal(kind=R8P)
gamma_maxreal(kind=R8P)
gamma_exponentreal(kind=R8P)
alpha_maxreal(kind=R8P)
k_maxreal(kind=R8P)
betareal(kind=R8P)
active_blocksinteger(kind=I4P)
max_cellsinteger(kind=I4P)
blocks_x_m_gpuinteger(kind=I4P)pointer
blocks_x_p_gpuinteger(kind=I4P)pointer
blocks_y_m_gpuinteger(kind=I4P)pointer
blocks_y_p_gpuinteger(kind=I4P)pointer
blocks_z_m_gpuinteger(kind=I4P)pointer
blocks_z_p_gpuinteger(kind=I4P)pointer
start_x_m_gpuinteger(kind=I4P)pointer
start_x_p_gpuinteger(kind=I4P)pointer
start_y_m_gpuinteger(kind=I4P)pointer
start_y_p_gpuinteger(kind=I4P)pointer
start_z_m_gpuinteger(kind=I4P)pointer
start_z_p_gpuinteger(kind=I4P)pointer
cells_x_m_gpuinteger(kind=I4P)pointer
cells_x_p_gpuinteger(kind=I4P)pointer
cells_y_m_gpuinteger(kind=I4P)pointer
cells_y_p_gpuinteger(kind=I4P)pointer
cells_z_m_gpuinteger(kind=I4P)pointer
cells_z_p_gpuinteger(kind=I4P)pointer
gamma_x_m_gpureal(kind=R8P)pointer
gamma_x_p_gpureal(kind=R8P)pointer
gamma_y_m_gpureal(kind=R8P)pointer
gamma_y_p_gpureal(kind=R8P)pointer
gamma_z_m_gpureal(kind=R8P)pointer
gamma_z_p_gpureal(kind=R8P)pointer
alpha_x_m_gpureal(kind=R8P)pointer
alpha_x_p_gpureal(kind=R8P)pointer
alpha_y_m_gpureal(kind=R8P)pointer
alpha_y_p_gpureal(kind=R8P)pointer
alpha_z_m_gpureal(kind=R8P)pointer
alpha_z_p_gpureal(kind=R8P)pointer
kappa_x_m_gpureal(kind=R8P)pointer
kappa_x_p_gpureal(kind=R8P)pointer
kappa_y_m_gpureal(kind=R8P)pointer
kappa_y_p_gpureal(kind=R8P)pointer
kappa_z_m_gpureal(kind=R8P)pointer
kappa_z_p_gpureal(kind=R8P)pointer
q_pml_x_m_gpureal(kind=R8P)pointer
q_pml_x_p_gpureal(kind=R8P)pointer
q_pml_y_m_gpureal(kind=R8P)pointer
q_pml_y_p_gpureal(kind=R8P)pointer
q_pml_z_m_gpureal(kind=R8P)pointer
q_pml_z_p_gpureal(kind=R8P)pointer

Type-Bound Procedures

NameAttributesDescription
destroypass(self)
initializepass(self)

Subroutines

destroy

Free device data owned by the PML FNL object.

fortran
subroutine destroy(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_pml_object)inout

Call graph

initialize

Initialize the GPU-side PML support from the host compact PML object.

fortran
subroutine initialize(self, pml, grid, field)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_fnl_pml_object)inout
pmltype(prism_pml_object)in
gridtype(grid_object)in
fieldtype(field_object)in

Call graph

initialize_x_face

fortran
subroutine initialize_x_face(pml_type, width, gamma_max, gamma_exponent, alpha_max, k_max, beta, face, q_face_cpu, blocks_cpu, range_cpu, profile_span, grid, field, blocks_gpu, start_gpu, cells_gpu, gamma_gpu, alpha_gpu, kappa_gpu, q_face_gpu)

Arguments

NameTypeIntentAttributesDescription
pml_typecharacter(len=*)in
widthreal(kind=R8P)in
gamma_maxreal(kind=R8P)in
gamma_exponentreal(kind=R8P)in
alpha_maxreal(kind=R8P)in
k_maxreal(kind=R8P)in
betareal(kind=R8P)in
faceinteger(kind=I4P)in
q_face_cpureal(kind=R8P)inallocatable
blocks_cpuinteger(kind=I4P)inallocatable
range_cpuinteger(kind=I4P)in
profile_spanreal(kind=R8P)in
gridtype(grid_object)in
fieldtype(field_object)in
blocks_gpuinteger(kind=I4P)inoutpointer
start_gpuinteger(kind=I4P)inoutpointer
cells_gpuinteger(kind=I4P)inoutpointer
gamma_gpureal(kind=R8P)inoutpointer
alpha_gpureal(kind=R8P)inoutpointer
kappa_gpureal(kind=R8P)inoutpointer
q_face_gpureal(kind=R8P)inoutpointer

Call graph

initialize_y_face

fortran
subroutine initialize_y_face(pml_type, width, gamma_max, gamma_exponent, alpha_max, k_max, beta, face, q_face_cpu, blocks_cpu, range_cpu, profile_span, grid, field, blocks_gpu, start_gpu, cells_gpu, gamma_gpu, alpha_gpu, kappa_gpu, q_face_gpu)

Arguments

NameTypeIntentAttributesDescription
pml_typecharacter(len=*)in
widthreal(kind=R8P)in
gamma_maxreal(kind=R8P)in
gamma_exponentreal(kind=R8P)in
alpha_maxreal(kind=R8P)in
k_maxreal(kind=R8P)in
betareal(kind=R8P)in
faceinteger(kind=I4P)in
q_face_cpureal(kind=R8P)inallocatable
blocks_cpuinteger(kind=I4P)inallocatable
range_cpuinteger(kind=I4P)in
profile_spanreal(kind=R8P)in
gridtype(grid_object)in
fieldtype(field_object)in
blocks_gpuinteger(kind=I4P)inoutpointer
start_gpuinteger(kind=I4P)inoutpointer
cells_gpuinteger(kind=I4P)inoutpointer
gamma_gpureal(kind=R8P)inoutpointer
alpha_gpureal(kind=R8P)inoutpointer
kappa_gpureal(kind=R8P)inoutpointer
q_face_gpureal(kind=R8P)inoutpointer

Call graph

initialize_z_face

fortran
subroutine initialize_z_face(pml_type, width, gamma_max, gamma_exponent, alpha_max, k_max, beta, face, q_face_cpu, blocks_cpu, range_cpu, profile_span, grid, field, blocks_gpu, start_gpu, cells_gpu, gamma_gpu, alpha_gpu, kappa_gpu, q_face_gpu)

Arguments

NameTypeIntentAttributesDescription
pml_typecharacter(len=*)in
widthreal(kind=R8P)in
gamma_maxreal(kind=R8P)in
gamma_exponentreal(kind=R8P)in
alpha_maxreal(kind=R8P)in
k_maxreal(kind=R8P)in
betareal(kind=R8P)in
faceinteger(kind=I4P)in
q_face_cpureal(kind=R8P)inallocatable
blocks_cpuinteger(kind=I4P)inallocatable
range_cpuinteger(kind=I4P)in
profile_spanreal(kind=R8P)in
gridtype(grid_object)in
fieldtype(field_object)in
blocks_gpuinteger(kind=I4P)inoutpointer
start_gpuinteger(kind=I4P)inoutpointer
cells_gpuinteger(kind=I4P)inoutpointer
gamma_gpureal(kind=R8P)inoutpointer
alpha_gpureal(kind=R8P)inoutpointer
kappa_gpureal(kind=R8P)inoutpointer
q_face_gpureal(kind=R8P)inoutpointer

Call graph

copy_face_state_cpu_gpu

fortran
subroutine copy_face_state_cpu_gpu(q_cpu, q_gpu)

Arguments

NameTypeIntentAttributesDescription
q_cpureal(kind=R8P)in
q_gpureal(kind=R8P)inout

Call graph

fill_face_coefficients

fortran
subroutine fill_face_coefficients(pml_type, width, gamma_max, gamma_exponent, alpha_max, k_max, beta, face, profile_span, grid, field, block_id, start_idx, cells, gamma, alpha, kappa)

Arguments

NameTypeIntentAttributesDescription
pml_typecharacter(len=*)in
widthreal(kind=R8P)in
gamma_maxreal(kind=R8P)in
gamma_exponentreal(kind=R8P)in
alpha_maxreal(kind=R8P)in
k_maxreal(kind=R8P)in
betareal(kind=R8P)in
faceinteger(kind=I4P)in
profile_spanreal(kind=R8P)in
gridtype(grid_object)in
fieldtype(field_object)in
block_idinteger(kind=I4P)in
start_idxinteger(kind=I4P)in
cellsinteger(kind=I4P)in
gammareal(kind=R8P)out
alphareal(kind=R8P)out
kappareal(kind=R8P)out

Call graph