node_to_center Function

private pure function node_to_center(self) result(center)

Compute cell centers coordinates from cell nodes.

Arguments

Type IntentOptional AttributesName
class(block_object), intent(in) :: self

Block.

Return Value type(vector), allocatable,(:,:,:)

Cell centers coordinates.

Calls

proc~~node_to_center~~CallsGraph proc~node_to_center node_to_center gc gc proc~node_to_center->gc
Help

Source Code


Source Code

   pure function node_to_center(self) result(center)
   !< Compute cell centers coordinates from cell nodes.
   class(block_object), intent(in) :: self          !< Block.
   type(vector), allocatable       :: center(:,:,:) !< Cell centers coordinates.
   integer(I4P)                    :: i             !< Counter.
   integer(I4P)                    :: j             !< Counter.
   integer(I4P)                    :: k             !< Counter.

   associate(gc=>self%signature%gc, ni=>self%signature%ni, nj=>self%signature%nj, nk=>self%signature%nk)
      allocate(center(1 - gc(1) : ni + gc(2), 1 - gc(3) : nj + gc(4), 1 - gc(5) : nk + gc(6)))
      do k=1 - gc(5), nk + gc(6)
         do j=1 - gc(3), nj + gc(4)
            do i=1 - gc(1), ni + gc(2)
               center(i, j, k) = (self%node(i,   j,   k  )%vertex + &
                                  self%node(i-1, j,   k  )%vertex + &
                                  self%node(i  , j-1, k  )%vertex + &
                                  self%node(i  , j  , k-1)%vertex + &
                                  self%node(i-1, j-1, k-1)%vertex + &
                                  self%node(i  , j-1, k-1)%vertex + &
                                  self%node(i-1, j  , k-1)%vertex + &
                                  self%node(i-1, j-1, k  )%vertex) * 0.125_R8P
            enddo
         enddo
      enddo
   endassociate
   endfunction node_to_center


adim_assign_adim allocate_blocks block_assign_block block_d_assign_block_d cell_assign_cell cells_number cells_number check cli_parse cli_parse cli_parse close compute_extents compute_faces_metrics compute_metrics compute_metrics compute_reference_values compute_space_operator compute_volumes correct_metrics cp create_linspace description description description description description description description description description destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy err_assign_err face_assign_face file_assign_file free_assign_free grid_d_assign_grid_d initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize_unix initialize_windows integrate interpolate_at_nodes iolength iolength iopos_block_nodes is_the_end load_file_grid load_file_name_from_file load_file_parameters load_from_file load_from_file load_from_file load_from_file load_from_file load_from_file load_from_file load_grid_dimensions_from_file load_input_files load_nodes_from_file load_nodes_from_file mkdir node_assign_node node_to_center nodes_number nodes_number nullify_normals open os_assign_os parse_command_line_interface progress rm save_file_grid save_file_grid save_file_grid_tec save_file_grid_vtk save_file_name_into_file save_file_parameters save_grid_dimensions_into_file save_into_file save_into_file save_into_file save_into_file save_into_file save_into_file save_into_file save_nodes_into_file save_nodes_into_file set_command_line_interface set_stop solver_assign_solver time_assign_time update