Appearance
adam_prism_rk_pml_object
Source: src/app/prism/common/adam_prism_rk_pml_object.F90
Dependencies
Contents
- prism_rk_pml_object
- initialize
- initialize_stages
- reset_rhs
- compute_stage
- assign_stage
- update_q_pml
- allocate_face_buffers
- copy_face_to_stages
- compute_face_stage
- assign_face_stage
- update_face_q
- zero_face_rhs
- reset_rk_pml_object
Derived Types
prism_rk_pml_object
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
enabled | logical | True only when a PML is active. | |
scheme | character(len=:) | allocatable | RK scheme mirrored from the field RK object. |
nrk | integer(kind=I4P) | Number of SSP stages. | |
alph | real(kind=R8P) | allocatable | SSP alpha coefficients. |
beta | real(kind=R8P) | allocatable | SSP beta coefficients. |
gamm | real(kind=R8P) | allocatable | SSP gamma coefficients. |
q_pml_x_m_rk | real(kind=R8P) | allocatable | x-minus stage storage. |
q_pml_x_p_rk | real(kind=R8P) | allocatable | x-plus stage storage. |
q_pml_y_m_rk | real(kind=R8P) | allocatable | y-minus stage storage. |
q_pml_y_p_rk | real(kind=R8P) | allocatable | y-plus stage storage. |
q_pml_z_m_rk | real(kind=R8P) | allocatable | z-minus stage storage. |
q_pml_z_p_rk | real(kind=R8P) | allocatable | z-plus stage storage. |
dq_pml_x_m | real(kind=R8P) | allocatable | x-minus current RHS. |
dq_pml_x_p | real(kind=R8P) | allocatable | x-plus current RHS. |
dq_pml_y_m | real(kind=R8P) | allocatable | y-minus current RHS. |
dq_pml_y_p | real(kind=R8P) | allocatable | y-plus current RHS. |
dq_pml_z_m | real(kind=R8P) | allocatable | z-minus current RHS. |
dq_pml_z_p | real(kind=R8P) | allocatable | z-plus current RHS. |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
assign_stage | pass(self) | |
compute_stage | pass(self) | |
initialize | pass(self) | |
initialize_stages | pass(self) | |
reset_rhs | pass(self) | |
update_q_pml | pass(self) |
Subroutines
initialize
Mirror the SSP RK metadata and allocate stage storage for active PML faces.
fortran
subroutine initialize(self, rk, pml)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_rk_pml_object) | inout | ||
rk | type(rk_object) | in | ||
pml | type(prism_pml_object) | in |
Call graph
initialize_stages
Replicate the committed PML state into every SSP stage.
fortran
subroutine initialize_stages(self, pml)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_rk_pml_object) | inout | ||
pml | type(prism_pml_object) | in |
Call graph
reset_rhs
Zero the current PML auxiliary residual storage.
fortran
subroutine reset_rhs(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_rk_pml_object) | inout |
Call graph
compute_stage
Assemble the SSP stage state for each active face-local PML buffer.
fortran
subroutine compute_stage(self, s, dt)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_rk_pml_object) | inout | ||
s | integer(kind=I4P) | in | ||
dt | real(kind=R8P) | in |
Call graph
assign_stage
Store the current PML auxiliary residuals into SSP stage s.
fortran
subroutine assign_stage(self, s)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_rk_pml_object) | inout | ||
s | integer(kind=I4P) | in |
Call graph
update_q_pml
Commit the SSP update to the reduced PML buffers.
fortran
subroutine update_q_pml(self, dt, pml)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_rk_pml_object) | in | ||
dt | real(kind=R8P) | in | ||
pml | type(prism_pml_object) | inout |
Call graph
allocate_face_buffers
Allocate one face-local stage buffer and its current RHS.
fortran
subroutine allocate_face_buffers(q_face, nrk, q_face_rk, dq_face)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
q_face | real(kind=R8P) | in | allocatable | |
nrk | integer(kind=I4P) | in | ||
q_face_rk | real(kind=R8P) | inout | allocatable | |
dq_face | real(kind=R8P) | inout | allocatable |
Call graph
copy_face_to_stages
Copy the committed state into every stage slot.
fortran
subroutine copy_face_to_stages(q_face, q_face_rk)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
q_face | real(kind=R8P) | in | allocatable | |
q_face_rk | real(kind=R8P) | inout | allocatable |
Call graph
compute_face_stage
Apply the SSP linear combination for one face-local stage array.
fortran
subroutine compute_face_stage(q_face_rk, alph, s, dt)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
q_face_rk | real(kind=R8P) | inout | allocatable | |
alph | real(kind=R8P) | in | ||
s | integer(kind=I4P) | in | ||
dt | real(kind=R8P) | in |
Call graph
assign_face_stage
Store one face-local RHS into stage slot s.
fortran
subroutine assign_face_stage(q_face_rk, dq_face, s)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
q_face_rk | real(kind=R8P) | inout | allocatable | |
dq_face | real(kind=R8P) | in | allocatable | |
s | integer(kind=I4P) | in |
Call graph
update_face_q
Accumulate the SSP combination back into one face-local committed state.
fortran
subroutine update_face_q(beta, dt, q_face_rk, q_face)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
beta | real(kind=R8P) | in | ||
dt | real(kind=R8P) | in | ||
q_face_rk | real(kind=R8P) | in | allocatable | |
q_face | real(kind=R8P) | inout | allocatable |
Call graph
zero_face_rhs
Zero one face-local RHS buffer with OpenMP over the face-local extents.
fortran
subroutine zero_face_rhs(dq_face)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
dq_face | real(kind=R8P) | inout | allocatable |
Call graph
reset_rk_pml_object
Release all RK-PML metadata and storage.
fortran
subroutine reset_rk_pml_object(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(prism_rk_pml_object) | inout |
Call graph