subroutine BoundaryFlux_DGModel1D_t(this)
! this method uses an linear upwind solver for the
! advective flux and the bassi-rebay method for the
! diffusive fluxes
implicit none
class(DGModel1D_t),intent(inout) :: this
! Local
integer :: iel
integer :: iside
real(prec) :: fin(1:this%solution%nvar)
real(prec) :: fout(1:this%solution%nvar)
real(prec) :: dfdx(1:this%solution%nvar),nhat
do concurrent(iside=1:2,iel=1:this%mesh%nElem)
! set the normal velocity
if(iside == 1) then
nhat = -1.0_prec
else
nhat = 1.0_prec
endif
fin = this%solution%boundary(iside,iel,1:this%solution%nvar) ! interior solution
fout = this%solution%extboundary(iside,iel,1:this%solution%nvar) ! exterior solution
dfdx = this%solutionGradient%avgboundary(iside,iel,1:this%solution%nvar) ! average solution gradient (with direction taken into account)
this%flux%boundarynormal(iside,iel,1:this%solution%nvar) = &
this%riemannflux1d(fin,fout,dfdx,nhat)
enddo
endsubroutine BoundaryFlux_DGModel1D_t