Skip to content

adam_prism_rk_pml_object

Source: src/app/prism/common/adam_prism_rk_pml_object.F90

Dependencies

Contents

Derived Types

prism_rk_pml_object

Components

NameTypeAttributesDescription
enabledlogicalTrue only when a PML is active.
schemecharacter(len=:)allocatableRK scheme mirrored from the field RK object.
nrkinteger(kind=I4P)Number of SSP stages.
alphreal(kind=R8P)allocatableSSP alpha coefficients.
betareal(kind=R8P)allocatableSSP beta coefficients.
gammreal(kind=R8P)allocatableSSP gamma coefficients.
q_pml_x_m_rkreal(kind=R8P)allocatablex-minus stage storage.
q_pml_x_p_rkreal(kind=R8P)allocatablex-plus stage storage.
q_pml_y_m_rkreal(kind=R8P)allocatabley-minus stage storage.
q_pml_y_p_rkreal(kind=R8P)allocatabley-plus stage storage.
q_pml_z_m_rkreal(kind=R8P)allocatablez-minus stage storage.
q_pml_z_p_rkreal(kind=R8P)allocatablez-plus stage storage.
dq_pml_x_mreal(kind=R8P)allocatablex-minus current RHS.
dq_pml_x_preal(kind=R8P)allocatablex-plus current RHS.
dq_pml_y_mreal(kind=R8P)allocatabley-minus current RHS.
dq_pml_y_preal(kind=R8P)allocatabley-plus current RHS.
dq_pml_z_mreal(kind=R8P)allocatablez-minus current RHS.
dq_pml_z_preal(kind=R8P)allocatablez-plus current RHS.

Type-Bound Procedures

NameAttributesDescription
assign_stagepass(self)
compute_stagepass(self)
initializepass(self)
initialize_stagespass(self)
reset_rhspass(self)
update_q_pmlpass(self)

Subroutines

initialize

Mirror the SSP RK metadata and allocate stage storage for active PML faces.

fortran
subroutine initialize(self, rk, pml)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_rk_pml_object)inout
rktype(rk_object)in
pmltype(prism_pml_object)in

Call graph

initialize_stages

Replicate the committed PML state into every SSP stage.

fortran
subroutine initialize_stages(self, pml)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_rk_pml_object)inout
pmltype(prism_pml_object)in

Call graph

reset_rhs

Zero the current PML auxiliary residual storage.

fortran
subroutine reset_rhs(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(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

NameTypeIntentAttributesDescription
selfclass(prism_rk_pml_object)inout
sinteger(kind=I4P)in
dtreal(kind=R8P)in

Call graph

assign_stage

Store the current PML auxiliary residuals into SSP stage s.

fortran
subroutine assign_stage(self, s)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_rk_pml_object)inout
sinteger(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

NameTypeIntentAttributesDescription
selfclass(prism_rk_pml_object)in
dtreal(kind=R8P)in
pmltype(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

NameTypeIntentAttributesDescription
q_facereal(kind=R8P)inallocatable
nrkinteger(kind=I4P)in
q_face_rkreal(kind=R8P)inoutallocatable
dq_facereal(kind=R8P)inoutallocatable

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

NameTypeIntentAttributesDescription
q_facereal(kind=R8P)inallocatable
q_face_rkreal(kind=R8P)inoutallocatable

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

NameTypeIntentAttributesDescription
q_face_rkreal(kind=R8P)inoutallocatable
alphreal(kind=R8P)in
sinteger(kind=I4P)in
dtreal(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

NameTypeIntentAttributesDescription
q_face_rkreal(kind=R8P)inoutallocatable
dq_facereal(kind=R8P)inallocatable
sinteger(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

NameTypeIntentAttributesDescription
betareal(kind=R8P)in
dtreal(kind=R8P)in
q_face_rkreal(kind=R8P)inallocatable
q_facereal(kind=R8P)inoutallocatable

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

NameTypeIntentAttributesDescription
dq_facereal(kind=R8P)inoutallocatable

Call graph

reset_rk_pml_object

Release all RK-PML metadata and storage.

fortran
subroutine reset_rk_pml_object(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_rk_pml_object)inout

Call graph