Axis-aligned bounding box of geometry%x%interior nodes for each element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(SEMQuad), | intent(in) | :: | geometry | |||
| integer, | intent(in) | :: | N | |||
| integer, | intent(in) | :: | nElem | |||
| real(kind=prec), | intent(out) | :: | bbMin(1:2,1:nElem) | |||
| real(kind=prec), | intent(out) | :: | bbMax(1:2,1:nElem) |
subroutine BuildElementBBoxes_2D(geometry,N,nElem,bbMin,bbMax)
!! Axis-aligned bounding box of geometry%x%interior nodes for each element.
implicit none
type(SEMQuad),intent(in) :: geometry
integer,intent(in) :: N,nElem
real(prec),intent(out) :: bbMin(1:2,1:nElem),bbMax(1:2,1:nElem)
! Local
integer :: iEl,i,j
real(prec) :: xv,yv
do iEl = 1,nElem
bbMin(1,iEl) = huge(1.0_prec)
bbMin(2,iEl) = huge(1.0_prec)
bbMax(1,iEl) = -huge(1.0_prec)
bbMax(2,iEl) = -huge(1.0_prec)
do j = 1,N+1
do i = 1,N+1
xv = geometry%x%interior(i,j,iEl,1,1)
yv = geometry%x%interior(i,j,iEl,1,2)
if(xv < bbMin(1,iEl)) bbMin(1,iEl) = xv
if(yv < bbMin(2,iEl)) bbMin(2,iEl) = yv
if(xv > bbMax(1,iEl)) bbMax(1,iEl) = xv
if(yv > bbMax(2,iEl)) bbMax(2,iEl) = yv
enddo
enddo
enddo
endsubroutine BuildElementBBoxes_2D