FillInterfaceBoundary_MultiSetModel3D Subroutine

public subroutine FillInterfaceBoundary_MultiSetModel3D(this, iset)

Device version of FillInterfaceBoundary_MultiSetModel3D_t: extBoundary(i,j,s,e,v) = ghost(i,j,v,f) on the interface faces of set iset, written to solution%extBoundary_gpu. The partner set must have the same nvar.

Arguments

TypeIntentOptionalAttributesName
class(MultiSetModel3D), intent(inout) :: this
integer, intent(in) :: iset

Calls

proc~~fillinterfaceboundary_multisetmodel3d~~CallsGraph proc~fillinterfaceboundary_multisetmodel3d FillInterfaceBoundary_MultiSetModel3D interface~fillsetinterfaceboundary_gpu FillSetInterfaceBoundary_gpu proc~fillinterfaceboundary_multisetmodel3d->interface~fillsetinterfaceboundary_gpu

Contents


Source Code

  subroutine FillInterfaceBoundary_MultiSetModel3D(this,iset)
    !! Device version of FillInterfaceBoundary_MultiSetModel3D_t:
    !! extBoundary(i,j,s,e,v) = ghost(i,j,v,f) on the interface faces of set iset, written
    !! to solution%extBoundary_gpu. The partner set must have the same nvar.
    implicit none
    class(MultiSetModel3D),intent(inout) :: this
    integer,intent(in) :: iset
    ! Local
    integer :: f,nvar,nk

    nvar = this%sets(iset)%model%nvar
    do f = this%iface%setFaceStart(iset),this%iface%setFaceStart(iset+1)-1
      if(this%iface%nvarOfSet(this%iface%facePartnerSet(f)) /= nvar) then
        print*,__FILE__," : sets ",iset," and ",this%iface%facePartnerSet(f), &
          " have different nvar"
        error stop "MultiSetModel3D : override FillInterfaceBoundary to couple these sets"
      endif
    enddo

    nk = this%iface%setFaceStart(iset+1)-this%iface%setFaceStart(iset)
    if(nk == 0) return
    call FillSetInterfaceBoundary_gpu(this%sets(iset)%model%solution%extBoundary_gpu, &
                                      this%iface%ghost_gpu, &
                                      this%iface%faceElem_gpu,this%iface%faceSide_gpu, &
                                      this%iface%setFaceStart(iset)-1,nk,nvar, &
                                      this%iface%nvarMax,this%iface%N, &
                                      this%sets(iset)%mesh%nElem)

  endsubroutine FillInterfaceBoundary_MultiSetModel3D