Init_ECDGModel2D_t Subroutine

public subroutine Init_ECDGModel2D_t(this, mesh, geometry)

Arguments

TypeIntentOptionalAttributesName
class(ECDGModel2D_t), intent(out) :: this
type(Mesh2D), intent(in), target:: mesh
type(SEMQuad), intent(in), target:: geometry

Calls

proc~~init_ecdgmodel2d_t~~CallsGraph proc~init_ecdgmodel2d_t Init_ECDGModel2D_t proc~init_dgmodel2d_t Init_DGModel2D_t proc~init_ecdgmodel2d_t->proc~init_dgmodel2d_t

Called by

proc~~init_ecdgmodel2d_t~~CalledByGraph proc~init_ecdgmodel2d_t Init_ECDGModel2D_t proc~init_esatmo2d Init_ESAtmo2D proc~init_esatmo2d->proc~init_ecdgmodel2d_t proc~init_ecadvection2d Init_ECAdvection2D proc~init_ecadvection2d->proc~init_ecdgmodel2d_t

Contents

Source Code


Source Code

  subroutine Init_ECDGModel2D_t(this,mesh,geometry)
    implicit none
    class(ECDGModel2D_t),intent(out) :: this
    type(Mesh2D),intent(in),target :: mesh
    type(SEMQuad),intent(in),target :: geometry

    ! Initialise all parent fields (solution, flux, source, ...)
#ifdef ENABLE_GPU
    ! The entropy-stable mortar coupling (ECMortarFlux) runs on the host and uses the
    ! host two-point flux; the GPU tendency has no device version of it yet.
    if(mesh%nMortars > 0) then
      print*,__FILE__,' : Error : EC-DGSEM models on GPU do not support mortar edges yet.'
      error stop 1
    endif
#endif

    call Init_DGModel2D_t(this,mesh,geometry)

    ! Additional two-point flux field
    call this%twoPointFlux%Init(geometry%x%interp,this%nvar,mesh%nElem)
    call this%twoPointFlux%AssociateGeometry(geometry)

    if(mesh%nMortars > 0) then
      call this%mortarNormal%Init(geometry%x%interp,2,mesh%nElem)
      call this%mortarNormal%AssociateGeometry(geometry)
    endif

  endsubroutine Init_ECDGModel2D_t