TBI: Handle 3D reordering if necessary
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_domain), | intent(inout) | :: | self |
subroutine apply_reordering(self) implicit none class(type_domain), intent(inout) :: self integer(int32) :: iElem, iSide, i integer(int32), dimension(:), pointer :: ptr_connectivity => null() integer(int32), allocatable :: connectivity(:) integer(int32), allocatable :: connectivity_reordered(:) integer(int32) :: node_per_mesh if (self%computation_dimension >= 3) then !! TBI: Handle 3D reordering if necessary end if if (self%computation_dimension >= 2) then do iElem = 1, self%get_num_elements() ptr_connectivity => self%elements(iElem)%e%get_connectivity() node_per_mesh = self%elements(iElem)%e%get_num_nodes() call allocate_array(connectivity, node_per_mesh) call allocate_array(connectivity_reordered, node_per_mesh) do i = 1, node_per_mesh connectivity(i) = ptr_connectivity(i) end do call self%reordering%to_reordered(connectivity, connectivity_reordered) do i = 1, node_per_mesh ptr_connectivity(i) = connectivity_reordered(i) end do call deallocate_array(connectivity) call deallocate_array(connectivity_reordered) end do end if if (self%computation_dimension >= 1) then do iSide = 1, self%get_num_sides() ptr_connectivity => self%sides(iSide)%s%get_connectivity() node_per_mesh = self%sides(iSide)%s%get_num_nodes() call allocate_array(connectivity, node_per_mesh) call allocate_array(connectivity_reordered, node_per_mesh) do i = 1, node_per_mesh connectivity(i) = ptr_connectivity(i) end do call self%reordering%to_reordered(connectivity, connectivity_reordered) do i = 1, node_per_mesh ptr_connectivity(i) = connectivity_reordered(i) end do call deallocate_array(connectivity) call deallocate_array(connectivity_reordered) end do end if end subroutine apply_reordering