hbc3d_NoNormalFlow_advection_diffusion_3d_t Subroutine

public subroutine hbc3d_NoNormalFlow_advection_diffusion_3d_t(bc, mymodel)

Mirror boundary condition on the solution: sets the exterior state equal to the interior state. With LLF this zeroes the upwind dissipation at the wall.

Arguments

TypeIntentOptionalAttributesName
class(BoundaryCondition), intent(in) :: bc
class(Model), intent(inout) :: mymodel

Contents


Source Code

  subroutine hbc3d_NoNormalFlow_advection_diffusion_3d_t(bc,mymodel)
    !! Mirror boundary condition on the solution: sets the exterior
    !! state equal to the interior state.  With LLF this zeroes the
    !! upwind dissipation at the wall.
    class(BoundaryCondition),intent(in) :: bc
    class(Model),intent(inout) :: mymodel
    ! Local
    integer :: n,i,j,iEl,s

    select type(m => mymodel)
    class is(advection_diffusion_3d_t)
      do n = 1,bc%nBoundaries
        iEl = bc%elements(n)
        s = bc%sides(n)
        do j = 1,m%solution%interp%N+1
          do i = 1,m%solution%interp%N+1
            m%solution%extBoundary(i,j,s,iEl,1:m%nvar) = &
              m%solution%boundary(i,j,s,iEl,1:m%nvar)
          enddo
        enddo
      enddo
    endselect

  endsubroutine hbc3d_NoNormalFlow_advection_diffusion_3d_t