Generate the simple single level mesh of a slice in the full cube.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_global_type), | intent(out) | :: | me |
Structure to load the mesh to |
||
type(flu_State) | :: | conf |
Directory containing the mesh informations |
|||
integer, | intent(in) | :: | thandle |
Handle for the table to read the description of the mesh from. |
||
integer, | intent(in) | :: | myPart |
Partition to use on the calling process (= MPI Rank in comm) |
||
integer, | intent(in) | :: | nParts |
Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm). |
||
integer, | intent(in) | :: | comm |
MPI Communicator to use |
subroutine gen_treelm_slice_global( me, conf, thandle, myPart, nParts, comm )
! -------------------------------------------------------------------- !
!> Structure to load the mesh to
type(tem_global_type), intent(out) :: me
!> Directory containing the mesh informations
type(flu_State) :: conf
!> Handle for the table to read the description
!! of the mesh from.
integer, intent(in) :: thandle
!> Partition to use on the calling process (= MPI Rank in comm)
integer, intent(in) :: myPart
!> Number of partitions, the mesh is partitioned into (= Number of MPI
!! processes in comm).
integer, intent(in) :: nParts
!> MPI Communicator to use
integer, intent(in) :: comm
! -------------------------------------------------------------------- !
integer :: iError
integer :: orig_err(3)
! -------------------------------------------------------------------- !
write(logUnit(1),*)'Creating HEADER for a slice mesh without boundaries'
me%nParts = nParts
me%myPart = myPart
me%comm = comm
! Get the origin of the cube:
call aot_get_val( L = conf, &
& thandle = thandle, &
& key = 'origin', &
& val = me%origin, &
& ErrCode = orig_err, &
& default = [0.0_rk, 0.0_rk, 0.0_rk] )
! Get the length of the cube:
call aot_get_val( L = conf, &
& thandle = thandle, &
& val = me%BoundingCubeLength, &
& ErrCode = iError, &
& key = 'length', &
& default = 1.0_rk )
! Get the refinement level:
call aot_get_val( L = conf, &
& thandle = thandle, &
& val = me%minlevel, &
& ErrCode = iError, &
& key = 'refinementLevel' )
me%label = 'Generic_Slice'
me%predefined = 'slice'
if (me%minlevel == 0) then
me%BoundingCubeLength = me%BoundingCubeLength*2
me%minlevel = 1
me%label = 'Generic_Single'
me%predefined = 'single'
end if
me%maxLevel = me%minLevel
write(me%comment,'(a15,i7,a16,i2,a1)') &
& 'Generated with ', nParts, ' parts on Level ', me%minlevel, '.'
me%dirname = './'
! Only boundary property in this mesh.
me%nProperties = 1
if (associated(me%Property)) deallocate(me%property)
allocate(me%Property(me%nProperties))
end subroutine gen_treelm_slice_global