AdditionalInit_LinearEuler2D_PML Subroutine

public subroutine AdditionalInit_LinearEuler2D_PML(this)

Arguments

TypeIntentOptionalAttributesName
class(LinearEuler2D_PML), intent(inout) :: this

Calls

proc~~additionalinit_lineareuler2d_pml~~CallsGraph proc~additionalinit_lineareuler2d_pml AdditionalInit_LinearEuler2D_PML proc~additionalinit_lineareuler2d_pml_t AdditionalInit_LinearEuler2D_PML_t proc~additionalinit_lineareuler2d_pml->proc~additionalinit_lineareuler2d_pml_t

Contents


Source Code

  subroutine AdditionalInit_LinearEuler2D_PML(this)
    implicit none
    class(LinearEuler2D_PML),intent(inout) :: this
    ! Local
    procedure(SELF_bcMethod),pointer :: bcfunc

    ! Initialise the parent (allocates sigma_x, sigma_y; registers
    ! the CPU PML BC handlers). We immediately overwrite the BC
    ! method pointers with GPU-resident wrappers below.
    call AdditionalInit_LinearEuler2D_PML_t(this)

    bcfunc => hbc2d_NoNormalFlow_LinearEuler2D_PML_GPU_wrapper
    call this%hyperbolicBCs%RegisterBoundaryCondition( &
      SELF_BC_NONORMALFLOW,"no_normal_flow",bcfunc)

    bcfunc => hbc2d_Radiation_LinearEuler2D_PML_GPU_wrapper
    call this%hyperbolicBCs%RegisterBoundaryCondition( &
      SELF_BC_RADIATION,"radiation",bcfunc)

  endsubroutine AdditionalInit_LinearEuler2D_PML