Creates dimension by dimension level descriptors.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(treelmesh_type), | intent(inout) | :: | tree |
Tree representation of the mesh. |
||
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_comm_env_type), | intent(in) | :: | proc |
Process description to use. |
||
type(tem_levelDesc_type), | intent(out), | allocatable | :: | levelDescX(:) |
Level descriptor for each spatial direction and each level of your mesh. The level descriptor have to be constructed with the dimension by dimension stencils (+1, 0, -1) for each spatial direction. |
|
type(tem_levelDesc_type), | intent(out), | allocatable | :: | levelDescY(:) |
Level descriptor for each spatial direction and each level of your mesh. The level descriptor have to be constructed with the dimension by dimension stencils (+1, 0, -1) for each spatial direction. |
|
type(tem_levelDesc_type), | intent(out), | allocatable | :: | levelDescZ(:) |
Level descriptor for each spatial direction and each level of your mesh. The level descriptor have to be constructed with the dimension by dimension stencils (+1, 0, -1) for each spatial direction. |
subroutine tem_dimByDim_construction( tree, boundary, commPattern, proc, & & levelDescX, levelDescY, levelDescZ ) ! -------------------------------------------------------------------------- !> Tree representation of the mesh. type(treelmesh_type), intent(inout) :: tree !> 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 !> Level descriptor for each spatial direction and each level of your mesh. !! The level descriptor have to be constructed with the dimension by !! dimension stencils (+1, 0, -1) for each spatial direction. type(tem_levelDesc_type), allocatable, intent(out) :: levelDescX(:) !> Level descriptor for each spatial direction and each level of your mesh. !! The level descriptor have to be constructed with the dimension by !! dimension stencils (+1, 0, -1) for each spatial direction. type(tem_levelDesc_type), allocatable, intent(out) :: levelDescY(:) !> Level descriptor for each spatial direction and each level of your mesh. !! The level descriptor have to be constructed with the dimension by !! dimension stencils (+1, 0, -1) for each spatial direction. type(tem_levelDesc_type), allocatable, intent(out) :: levelDescZ(:) !> Process description to use. type(tem_comm_env_type), intent(in) :: proc ! -------------------------------------------------------------------------- ! The dimension-by-dimension stencil list. type(tem_stencilHeader_type) :: stencilList(3) ! -------------------------------------------------------------------------- ! Create the dimension by dimension stencils write(logUnit(3),*) 'Creating dimension by dimension stencils for face ' & & // 'descriptor...' call tem_define_dimStencil( stencilList(1), tree%nElems, 1 ) call tem_define_dimStencil( stencilList(2), tree%nElems, 2 ) call tem_define_dimStencil( stencilList(3), tree%nElems, 3 ) ! Dump the stencils we used. call tem_stencil_dump( stencilList( 1 )) call tem_stencil_dump( stencilList( 2 )) call tem_stencil_dump( stencilList( 3 )) ! Now, build the level descriptors for each of the stencils. call tem_create_levelDesc( tree, stencilList(1), boundary, commPattern, & & levelDescX, proc ) call tem_create_levelDesc( tree, stencilList(2), boundary, commPattern, & & levelDescY, proc ) call tem_create_levelDesc( tree, stencilList(3), boundary, commPattern, & & levelDescZ, proc ) end subroutine tem_dimByDim_construction