Appearance
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
- prism_fnl_pml_object
- destroy
- initialize
- initialize_x_face
- initialize_y_face
- initialize_z_face
- copy_face_state_cpu_gpu
- fill_face_coefficients
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
PML_FACE_X_M | integer(kind=I4P) | parameter | |
PML_FACE_X_P | integer(kind=I4P) | parameter | |
PML_FACE_Y_M | integer(kind=I4P) | parameter | |
PML_FACE_Y_P | integer(kind=I4P) | parameter | |
PML_FACE_Z_M | integer(kind=I4P) | parameter | |
PML_FACE_Z_P | integer(kind=I4P) | parameter | |
PML_VARS_PER_FACE | integer(kind=I4P) | parameter | |
CFS_PROFILE_EXPONENT | integer(kind=I4P) | parameter | |
BERMUDEZ_EPS | real(kind=R8P) | parameter | |
PML_TYPE_NONE | character(len=8) | parameter | |
PML_TYPE_CLASSIC | character(len=8) | parameter | |
PML_TYPE_CFS | character(len=8) | parameter | |
PML_TYPE_BERMUDEZ | character(len=8) | parameter |
Derived Types
prism_fnl_pml_object
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
enabled | logical | ||
pml_type | character(len=99) | ||
layer | logical | ||
width | real(kind=R8P) | ||
gamma_max | real(kind=R8P) | ||
gamma_exponent | real(kind=R8P) | ||
alpha_max | real(kind=R8P) | ||
k_max | real(kind=R8P) | ||
beta | real(kind=R8P) | ||
active_blocks | integer(kind=I4P) | ||
max_cells | integer(kind=I4P) | ||
blocks_x_m_gpu | integer(kind=I4P) | pointer | |
blocks_x_p_gpu | integer(kind=I4P) | pointer | |
blocks_y_m_gpu | integer(kind=I4P) | pointer | |
blocks_y_p_gpu | integer(kind=I4P) | pointer | |
blocks_z_m_gpu | integer(kind=I4P) | pointer | |
blocks_z_p_gpu | integer(kind=I4P) | pointer | |
start_x_m_gpu | integer(kind=I4P) | pointer | |
start_x_p_gpu | integer(kind=I4P) | pointer | |
start_y_m_gpu | integer(kind=I4P) | pointer | |
start_y_p_gpu | integer(kind=I4P) | pointer | |
start_z_m_gpu | integer(kind=I4P) | pointer | |
start_z_p_gpu | integer(kind=I4P) | pointer | |
cells_x_m_gpu | integer(kind=I4P) | pointer | |
cells_x_p_gpu | integer(kind=I4P) | pointer | |
cells_y_m_gpu | integer(kind=I4P) | pointer | |
cells_y_p_gpu | integer(kind=I4P) | pointer | |
cells_z_m_gpu | integer(kind=I4P) | pointer | |
cells_z_p_gpu | integer(kind=I4P) | pointer | |
gamma_x_m_gpu | real(kind=R8P) | pointer | |
gamma_x_p_gpu | real(kind=R8P) | pointer | |
gamma_y_m_gpu | real(kind=R8P) | pointer | |
gamma_y_p_gpu | real(kind=R8P) | pointer | |
gamma_z_m_gpu | real(kind=R8P) | pointer | |
gamma_z_p_gpu | real(kind=R8P) | pointer | |
alpha_x_m_gpu | real(kind=R8P) | pointer | |
alpha_x_p_gpu | real(kind=R8P) | pointer | |
alpha_y_m_gpu | real(kind=R8P) | pointer | |
alpha_y_p_gpu | real(kind=R8P) | pointer | |
alpha_z_m_gpu | real(kind=R8P) | pointer | |
alpha_z_p_gpu | real(kind=R8P) | pointer | |
kappa_x_m_gpu | real(kind=R8P) | pointer | |
kappa_x_p_gpu | real(kind=R8P) | pointer | |
kappa_y_m_gpu | real(kind=R8P) | pointer | |
kappa_y_p_gpu | real(kind=R8P) | pointer | |
kappa_z_m_gpu | real(kind=R8P) | pointer | |
kappa_z_p_gpu | real(kind=R8P) | pointer | |
q_pml_x_m_gpu | real(kind=R8P) | pointer | |
q_pml_x_p_gpu | real(kind=R8P) | pointer | |
q_pml_y_m_gpu | real(kind=R8P) | pointer | |
q_pml_y_p_gpu | real(kind=R8P) | pointer | |
q_pml_z_m_gpu | real(kind=R8P) | pointer | |
q_pml_z_p_gpu | real(kind=R8P) | pointer |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
destroy | pass(self) | |
initialize | pass(self) |
Subroutines
destroy
Free device data owned by the PML FNL object.
fortran
subroutine destroy(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_fnl_pml_object) | inout | ||
pml | type(prism_pml_object) | in | ||
grid | type(grid_object) | in | ||
field | type(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
pml_type | character(len=*) | in | ||
width | real(kind=R8P) | in | ||
gamma_max | real(kind=R8P) | in | ||
gamma_exponent | real(kind=R8P) | in | ||
alpha_max | real(kind=R8P) | in | ||
k_max | real(kind=R8P) | in | ||
beta | real(kind=R8P) | in | ||
face | integer(kind=I4P) | in | ||
q_face_cpu | real(kind=R8P) | in | allocatable | |
blocks_cpu | integer(kind=I4P) | in | allocatable | |
range_cpu | integer(kind=I4P) | in | ||
profile_span | real(kind=R8P) | in | ||
grid | type(grid_object) | in | ||
field | type(field_object) | in | ||
blocks_gpu | integer(kind=I4P) | inout | pointer | |
start_gpu | integer(kind=I4P) | inout | pointer | |
cells_gpu | integer(kind=I4P) | inout | pointer | |
gamma_gpu | real(kind=R8P) | inout | pointer | |
alpha_gpu | real(kind=R8P) | inout | pointer | |
kappa_gpu | real(kind=R8P) | inout | pointer | |
q_face_gpu | real(kind=R8P) | inout | pointer |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
pml_type | character(len=*) | in | ||
width | real(kind=R8P) | in | ||
gamma_max | real(kind=R8P) | in | ||
gamma_exponent | real(kind=R8P) | in | ||
alpha_max | real(kind=R8P) | in | ||
k_max | real(kind=R8P) | in | ||
beta | real(kind=R8P) | in | ||
face | integer(kind=I4P) | in | ||
q_face_cpu | real(kind=R8P) | in | allocatable | |
blocks_cpu | integer(kind=I4P) | in | allocatable | |
range_cpu | integer(kind=I4P) | in | ||
profile_span | real(kind=R8P) | in | ||
grid | type(grid_object) | in | ||
field | type(field_object) | in | ||
blocks_gpu | integer(kind=I4P) | inout | pointer | |
start_gpu | integer(kind=I4P) | inout | pointer | |
cells_gpu | integer(kind=I4P) | inout | pointer | |
gamma_gpu | real(kind=R8P) | inout | pointer | |
alpha_gpu | real(kind=R8P) | inout | pointer | |
kappa_gpu | real(kind=R8P) | inout | pointer | |
q_face_gpu | real(kind=R8P) | inout | pointer |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
pml_type | character(len=*) | in | ||
width | real(kind=R8P) | in | ||
gamma_max | real(kind=R8P) | in | ||
gamma_exponent | real(kind=R8P) | in | ||
alpha_max | real(kind=R8P) | in | ||
k_max | real(kind=R8P) | in | ||
beta | real(kind=R8P) | in | ||
face | integer(kind=I4P) | in | ||
q_face_cpu | real(kind=R8P) | in | allocatable | |
blocks_cpu | integer(kind=I4P) | in | allocatable | |
range_cpu | integer(kind=I4P) | in | ||
profile_span | real(kind=R8P) | in | ||
grid | type(grid_object) | in | ||
field | type(field_object) | in | ||
blocks_gpu | integer(kind=I4P) | inout | pointer | |
start_gpu | integer(kind=I4P) | inout | pointer | |
cells_gpu | integer(kind=I4P) | inout | pointer | |
gamma_gpu | real(kind=R8P) | inout | pointer | |
alpha_gpu | real(kind=R8P) | inout | pointer | |
kappa_gpu | real(kind=R8P) | inout | pointer | |
q_face_gpu | real(kind=R8P) | inout | pointer |
Call graph
copy_face_state_cpu_gpu
fortran
subroutine copy_face_state_cpu_gpu(q_cpu, q_gpu)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
q_cpu | real(kind=R8P) | in | ||
q_gpu | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
pml_type | character(len=*) | in | ||
width | real(kind=R8P) | in | ||
gamma_max | real(kind=R8P) | in | ||
gamma_exponent | real(kind=R8P) | in | ||
alpha_max | real(kind=R8P) | in | ||
k_max | real(kind=R8P) | in | ||
beta | real(kind=R8P) | in | ||
face | integer(kind=I4P) | in | ||
profile_span | real(kind=R8P) | in | ||
grid | type(grid_object) | in | ||
field | type(field_object) | in | ||
block_id | integer(kind=I4P) | in | ||
start_idx | integer(kind=I4P) | in | ||
cells | integer(kind=I4P) | in | ||
gamma | real(kind=R8P) | out | ||
alpha | real(kind=R8P) | out | ||
kappa | real(kind=R8P) | out |
Call graph