subroutine CalculateSolutionGradient_DGModel1D(this)
implicit none
class(DGModel1D),intent(inout) :: this
! Local
integer :: ndof
call this%solution%AverageSides()
! Account for the outward pointing normal before computing dg derivative
ndof = this%solution%nvar*this%solution%nelem*2
call GradientNormal_1D_gpu(this%solution%boundarynormal_gpu, &
this%solution%avgBoundary_gpu,ndof)
call this%solution%MappedDGDerivative(this%solutionGradient%interior_gpu)
! interpolate the solutiongradient to the element boundaries
call this%solutionGradient%BoundaryInterp()
! perform the side exchange to populate the
! solutionGradient % extBoundary attribute
call this%solutionGradient%SideExchange(this%mesh)
endsubroutine CalculateSolutionGradient_DGModel1D