AdditionalInit_LinearEuler2D_PML_t Subroutine

public subroutine AdditionalInit_LinearEuler2D_PML_t(this)

Arguments

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

Called by

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

Contents


Source Code

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

    ! Allocate the per-node PML damping fields (single variable each).
    call this%sigma_x%Init(this%geometry%x%interp,1,this%mesh%nElem)
    call this%sigma_y%Init(this%geometry%x%interp,1,this%mesh%nElem)

    ! Register PML-aware BC methods. The PML-aware versions reuse the
    ! parent acoustic-side behaviour for variables 1-5 and zero the
    ! auxiliary variables 6-9 in extBoundary so that interior-side
    ! and exterior-side states are consistent with the zero-flux
    ! treatment of phi_*.
    bcfunc => hbc2d_NoNormalFlow_LinearEuler2D_PML
    call this%hyperbolicBCs%RegisterBoundaryCondition( &
      SELF_BC_NONORMALFLOW,"no_normal_flow",bcfunc)

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

  endsubroutine AdditionalInit_LinearEuler2D_PML_t