DiffusiveBoundaryFlux_ESAtmo2D Subroutine

public 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

Arguments

TypeIntentOptionalAttributesName
class(ESAtmo2D), intent(inout) :: this

Calls

proc~~diffusiveboundaryflux_esatmo2d~~CallsGraph proc~diffusiveboundaryflux_esatmo2d DiffusiveBoundaryFlux_ESAtmo2D interface~diffusiveboundaryflux_esatmo2d_gpu diffusiveboundaryflux_esatmo2d_gpu proc~diffusiveboundaryflux_esatmo2d->interface~diffusiveboundaryflux_esatmo2d_gpu

Contents


Source Code

  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