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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(BoundaryCondition), | intent(in) | :: | bc | |||
| class(Model), | intent(inout) | :: | mymodel |
subroutine hbc2d_NoNormalFlow_advection_diffusion_2d_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,iEl,s
select type(m => mymodel)
class is(advection_diffusion_2d_t)
do n = 1,bc%nBoundaries
iEl = bc%elements(n)
s = bc%sides(n)
do i = 1,m%solution%interp%N+1
m%solution%extBoundary(i,s,iEl,1:m%nvar) = &
m%solution%boundary(i,s,iEl,1:m%nvar)
enddo
enddo
endselect
endsubroutine hbc2d_NoNormalFlow_advection_diffusion_2d_t