0.6.0
Loading...
Searching...
No Matches
mod_mpi_repartitioning Module Reference

Manage the partitioning of the domain. More...

Data Types

type  t_array
 

Functions/Subroutines

subroutine, public repartitioning ()
 
subroutine create_partitions (n_mpi_proc_x, n_mpi_proc_y, n_mpi_proc_z, n_partitions, indices_partitions, n_partitioning, n_partitions_x, n_process_x_y_z, is_cycle)
 
subroutine remove_outside_partitions (n_partitions, list_indices_g, n_points, indices_partitions, label_partitions, i_min_intersection, i_max_intersection, j_min_intersection, j_max_intersection, k_min_intersection, k_max_intersection, n_maintained_partitions, n_partitioning, id_partitioning, is_initial_step_repartitioning)
 
subroutine slide_partitions (n_mpi_proc_x, n_mpi_proc_y, n_mpi_proc_z, indices_partitions, label_partitions, i_min_intersection, i_max_intersection, j_min_intersection, j_max_intersection, k_min_intersection, k_max_intersection, n_maintained_partitions, disp_indices_partitions, new_n_maintained_partitions)
 
integer function compute_global_boundary_size_process (indices_partitions, n_partitions)
 
pure subroutine allocate_index (list)
 
subroutine gather_rank_2 (local_list, global_list)
 

Variables

integer, dimension(:,:), allocatable, public disp_indices_partitions
 

Detailed Description

Manage the partitioning of the domain.

This routine achieves a new partitioning of the grid where most of unused cells are discarded for the linear resolution

Coordinates of each process are set again, as well as neighbor process numbers in the new partitioning.

Finally, the routine computes for each process the number of processes to exchange.

Function/Subroutine Documentation

◆ allocate_index()

pure subroutine mod_mpi_repartitioning::allocate_index ( integer, dimension(:,:,:,:), intent(inout), allocatable list)
private

◆ compute_global_boundary_size_process()

integer function mod_mpi_repartitioning::compute_global_boundary_size_process ( integer, dimension(:,:), intent(in) indices_partitions,
integer, intent(in) n_partitions )
private

◆ create_partitions()

subroutine mod_mpi_repartitioning::create_partitions ( integer, intent(out) n_mpi_proc_x,
integer, intent(out) n_mpi_proc_y,
integer, intent(out) n_mpi_proc_z,
integer, intent(in) n_partitions,
integer, dimension(:,:), intent(out), allocatable indices_partitions,
integer, intent(in) n_partitioning,
integer, intent(in) n_partitions_x,
integer, dimension(:,:,:), intent(in) n_process_x_y_z,
logical, intent(out) is_cycle )
private

◆ gather_rank_2()

subroutine mod_mpi_repartitioning::gather_rank_2 ( integer, dimension(:,:), intent(in), allocatable local_list,
integer, dimension(:,:), intent(out), allocatable global_list )
private

◆ remove_outside_partitions()

subroutine mod_mpi_repartitioning::remove_outside_partitions ( integer, intent(in) n_partitions,
integer, dimension(:,:,:), intent(in) list_indices_g,
integer, dimension(:,:), intent(in) n_points,
integer, dimension(:,:), intent(in) indices_partitions,
type(t_array), dimension(:), intent(inout), allocatable label_partitions,
type(t_array), dimension(:), intent(inout), allocatable i_min_intersection,
type(t_array), dimension(:), intent(inout), allocatable i_max_intersection,
type(t_array), dimension(:), intent(inout), allocatable j_min_intersection,
type(t_array), dimension(:), intent(inout), allocatable j_max_intersection,
type(t_array), dimension(:), intent(inout), allocatable k_min_intersection,
type(t_array), dimension(:), intent(inout), allocatable k_max_intersection,
integer, dimension(:), intent(inout), allocatable n_maintained_partitions,
integer, intent(in) n_partitioning,
integer, dimension(:), intent(inout), allocatable id_partitioning,
logical, intent(in) is_initial_step_repartitioning )
private

◆ repartitioning()

subroutine, public mod_mpi_repartitioning::repartitioning

◆ slide_partitions()

subroutine mod_mpi_repartitioning::slide_partitions ( integer, intent(in) n_mpi_proc_x,
integer, intent(in) n_mpi_proc_y,
integer, intent(in) n_mpi_proc_z,
integer, dimension(:,:), intent(in) indices_partitions,
integer, dimension(:), intent(in) label_partitions,
integer, dimension(:), intent(in) i_min_intersection,
integer, dimension(:), intent(in) i_max_intersection,
integer, dimension(:), intent(in) j_min_intersection,
integer, dimension(:), intent(in) j_max_intersection,
integer, dimension(:), intent(in) k_min_intersection,
integer, dimension(:), intent(in) k_max_intersection,
integer, intent(in) n_maintained_partitions,
integer, dimension(:,:), intent(out), allocatable disp_indices_partitions,
integer, intent(out) new_n_maintained_partitions )
private

Variable Documentation

◆ disp_indices_partitions

integer, dimension(:,:), allocatable, public mod_mpi_repartitioning::disp_indices_partitions