Create a face level descriptor
Type | Intent | Optional | 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. |
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