UpdateGRK3_DGModel3D Subroutine

public subroutine UpdateGRK3_DGModel3D(this, m)

Arguments

TypeIntentOptionalAttributesName
class(DGModel3D), intent(inout) :: this
integer, intent(in) :: m

Calls

proc~~updategrk3_dgmodel3d~~CallsGraph proc~updategrk3_dgmodel3d UpdateGRK3_DGModel3D interface~updategrk_calculatedsdt_gpu UpdateGRK_CalculateDSDt_gpu proc~updategrk3_dgmodel3d->interface~updategrk_calculatedsdt_gpu

Contents

Source Code


Source Code

  subroutine UpdateGRK3_DGModel3D(this,m)
    implicit none
    class(DGModel3D),intent(inout) :: this
    integer,intent(in) :: m
    ! Local
    integer :: ndof

    ! The stepped variables occupy the leading nstepped entries of the
    ! variable dimension (the slowest-varying index of the interior array),
    ! so restricting ndof to nstepped updates exactly variables 1:nstepped.
    ndof = this%nstepped* &
           this%solution%nelem* &
           (this%solution%interp%N+1)* &
           (this%solution%interp%N+1)* &
           (this%solution%interp%N+1)

    ! Fused tendency + RK stage update (no separate CalculateDSDt pass).
    call UpdateGRK_CalculateDSDt_gpu(this%worksol%interior_gpu,this%solution%interior_gpu, &
                                     this%fluxDivergence%interior_gpu,this%source%interior_gpu, &
                                     rk3_a(m),rk3_g(m),this%dt,ndof)

  endsubroutine UpdateGRK3_DGModel3D