tem_create_levelDesc Subroutine

private subroutine tem_create_levelDesc(tree, stencil, boundary, commPattern, levelDesc, proc)

Create a face level descriptor

Arguments

Type IntentOptional Attributes Name
type(treelmesh_type), intent(inout) :: tree

Tree representation of the mesh.

type(tem_stencilHeader_type), intent(inout) :: stencil(1)

The stencil to create the level descriptor for.

type(tem_BC_prop_type), intent(in) :: boundary

The boundaries of your simulation domain

type(tem_commPattern_type), intent(in) :: commPattern

The communication pattern you use for the buffer.

type(tem_levelDesc_type), intent(out), allocatable :: levelDesc(:)

The created level descriptor.

type(tem_comm_env_type), intent(in) :: proc

Process description to use.


Calls

proc~~tem_create_leveldesc~~CallsGraph proc~tem_create_leveldesc tem_create_levelDesc proc~tem_build_horizontaldependencies tem_build_horizontalDependencies proc~tem_create_leveldesc->proc~tem_build_horizontaldependencies proc~tem_build_verticaldependencies tem_build_verticalDependencies proc~tem_create_leveldesc->proc~tem_build_verticaldependencies proc~tem_cleanupdependencyarrays tem_cleanupDependencyArrays proc~tem_create_leveldesc->proc~tem_cleanupdependencyarrays proc~tem_find_allelements tem_find_allElements proc~tem_create_leveldesc->proc~tem_find_allelements proc~tem_init_elemlevels tem_init_elemLevels proc~tem_create_leveldesc->proc~tem_init_elemlevels

Called by

proc~~tem_create_leveldesc~~CalledByGraph proc~tem_create_leveldesc tem_create_levelDesc proc~tem_dimbydim_construction tem_dimByDim_construction proc~tem_dimbydim_construction->proc~tem_create_leveldesc proc~tem_build_face_info tem_build_face_info proc~tem_build_face_info->proc~tem_dimbydim_construction

Source Code

  subroutine tem_create_levelDesc( tree, stencil, boundary, commPattern, &
    &                              levelDesc, proc                       )
    ! --------------------------------------------------------------------------
    !> Tree representation of the mesh.
    type(treelmesh_type), intent(inout) :: tree
    !> The stencil to create the level descriptor for.
    type(tem_stencilHeader_type), intent(inout) :: stencil(1)
    !> The boundaries of your simulation domain
    type(tem_bc_prop_type), intent(in) :: boundary
    !> The communication pattern you use for the buffer.
    type(tem_commpattern_type), intent(in) :: commPattern
    !> The created level descriptor.
    type(tem_levelDesc_type), allocatable, intent(out) :: levelDesc(:)
    !> Process description to use.
    type(tem_comm_env_type), intent(in) :: proc
    ! --------------------------------------------------------------------------
    integer, allocatable :: levelPointer(:)
    ! --------------------------------------------------------------------------

    call tem_init_elemLevels( me             = levelDesc, &
      &                       boundary       = boundary,  &
      &                       tree           = tree,      &
      &                       stencils       = stencil    )

    call tem_find_allElements( tree           = tree,         &
      &                        levelDesc      = levelDesc,    &
      &                        levelPointer   = levelPointer, &
      &                        computeStencil = stencil,      &
      &                        commpattern    = commPattern,  &
      &                        proc           = proc          )

    ! JQ: allocated in tem_init_elemLevels
    ! do iLevel=tree%global%minlevel,tree%global%maxlevel
    !   allocate(levelDesc(iLevel)%neigh(1))
    ! end do
    call tem_build_HorizontalDependencies( iStencil       = 1,         &
      &                                    levelDesc      = levelDesc, &
      &                                    tree           = tree,      &
      &                                    computeStencil = stencil(1) )

    call tem_build_VerticalDependencies( levelDesc = levelDesc,            &
      &                                  minLevel  = tree%global%minLevel, &
      &                                  maxLevel  = tree%global%maxLevel  )

    call tem_cleanupDependencyArrays( levelDesc = levelDesc )

  end subroutine tem_create_levelDesc