GPU-resident fill of diffFlux%boundaryNormal with the SIPG-stabilised BR1 diffusive flux: f = -coeff(avg_grad . n)nmag + tau(uL - uR)nmag
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
subroutine DiffusiveBoundaryFlux_ESAtmo2D(this)
!! GPU-resident fill of diffFlux%boundaryNormal with the SIPG-stabilised
!! BR1 diffusive flux:
!! f = -coeff*(avg_grad . n)*nmag + tau*(uL - uR)*nmag
implicit none
class(ESAtmo2D),intent(inout) :: this
! Local
real(prec) :: np2,tau_nu,tau_kappa
np2 = real((this%solution%interp%N+1)**2,prec)
tau_nu = this%eta_penalty*this%nu*np2/this%length_scale
tau_kappa = this%eta_penalty*this%kappa*np2/this%length_scale
call diffusiveboundaryflux_esatmo2d_gpu( &
this%diffFlux%boundarynormal_gpu, &
this%solutionGradient%avgBoundary_gpu, &
this%solution%boundary_gpu, &
this%solution%extBoundary_gpu, &
this%geometry%nhat%boundary_gpu, &
this%geometry%nscale%boundary_gpu, &
this%nu,this%kappa,tau_nu,tau_kappa, &
this%solution%interp%N, &
this%solution%nvar, &
this%solution%nelem)
endsubroutine DiffusiveBoundaryFlux_ESAtmo2D