Octopus
|
Data Types | |
interface | partition_get_partition_number |
type | partition_t |
The partition is an array that contains the mapping between some global index and a process, such that point ip will be stored in process partitionpart(ip). More... | |
Functions/Subroutines | |
subroutine, public | partition_init (partition, np_global, mpi_grp) |
initialize the partition table More... | |
subroutine, public | partition_end (partition) |
subroutine, public | partition_set (partition, part) |
subroutine, public | partition_dump (partition, dir, filename, ierr) |
write the partition data More... | |
subroutine, public | partition_load (partition, dir, filename, ierr) |
read the partition data More... | |
subroutine, public | partition_get_local_size (partition, istart, np_local) |
subroutine, public | partition_get_global (partition, part_global, root) |
Returns the global partition. If root is present, the partition is gathered only in that node. Otherwise it is gathered in all nodes. More... | |
subroutine | partition_get_partition_number_4 (partition, np, points, partno) |
Given a list of global indices, return the partition number where those points are stored. Note that this routine will accept global indices equal to 0. In that case it will return 0 as a partition number. More... | |
subroutine | partition_get_partition_number_8 (partition, np, points, partno) |
subroutine, public | partition_get_np_local (partition, np_local_vec) |
Given the partition, returns the corresponding number of local points that each partition has. More... | |
pure integer function, public | partition_get_npart (partition) |
Returns the total number of partitions. More... | |
pure integer function, public | partition_get_part (partition, local_point) |
Returns the partition of the local point. More... | |
pure integer function | partition_get_number (partition, global_point) |
Returns the partition number for a given global index If the index is zero, return local partition. More... | |
subroutine, public | partition_get_local (partition, rbuffer, np_local) |
Calculates the local vector of all partitions in parallel. Local vector stores the global point indices that each partition has. More... | |
subroutine, public partition_oct_m::partition_init | ( | type(partition_t), intent(out) | partition, |
integer(int64), intent(in) | np_global, | ||
type(mpi_grp_t), intent(in) | mpi_grp | ||
) |
initialize the partition table
[out] | partition | the partition table |
[in] | np_global | total number of points to distribute |
[in] | mpi_grp | the mpi groups |
Definition at line 193 of file partition.F90.
subroutine, public partition_oct_m::partition_end | ( | type(partition_t), intent(inout) | partition | ) |
Definition at line 230 of file partition.F90.
subroutine, public partition_oct_m::partition_set | ( | type(partition_t), intent(inout) | partition, |
integer, dimension(:), intent(in) | part | ||
) |
[in] | part | The local portion of the partition. |
Definition at line 241 of file partition.F90.
subroutine, public partition_oct_m::partition_dump | ( | type(partition_t), intent(in) | partition, |
character(len=*), intent(in) | dir, | ||
character(len=*), intent(in) | filename, | ||
integer, intent(out) | ierr | ||
) |
write the partition data
Partition is written in parallel if MPI2 is available. Otherwise, is gathered in root and then written.
Definition at line 258 of file partition.F90.
subroutine, public partition_oct_m::partition_load | ( | type(partition_t), intent(inout) | partition, |
character(len=*), intent(in) | dir, | ||
character(len=*), intent(in) | filename, | ||
integer, intent(out) | ierr | ||
) |
read the partition data
Partition is read in parallel if MPI2 is available. Otherwise, is read by the root and then scattered
Definition at line 303 of file partition.F90.
subroutine, public partition_oct_m::partition_get_local_size | ( | type(partition_t), intent(in) | partition, |
integer(int64), intent(out) | istart, | ||
integer, intent(out) | np_local | ||
) |
[out] | istart | The number of points of the partition stored in this process. |
[out] | np_local | The position of the first point stored in this process. |
Definition at line 379 of file partition.F90.
subroutine, public partition_oct_m::partition_get_global | ( | type(partition_t), intent(in) | partition, |
integer, dimension(:), intent(out) | part_global, | ||
integer, intent(in), optional | root | ||
) |
Returns the global partition. If root is present, the partition is gathered only in that node. Otherwise it is gathered in all nodes.
Definition at line 395 of file partition.F90.
|
private |
Given a list of global indices, return the partition number where those points are stored. Note that this routine will accept global indices equal to 0. In that case it will return 0 as a partition number.
Definition at line 440 of file partition.F90.
|
private |
Definition at line 535 of file partition.F90.
subroutine, public partition_oct_m::partition_get_np_local | ( | type(partition_t), intent(in) | partition, |
integer, dimension(:), intent(inout), contiguous | np_local_vec | ||
) |
Given the partition, returns the corresponding number of local points that each partition has.
[in] | partition | Current partition |
[in,out] | np_local_vec | Vector of local points (np_local) |
Definition at line 561 of file partition.F90.
pure integer function, public partition_oct_m::partition_get_npart | ( | type(partition_t), intent(in) | partition | ) |
Returns the total number of partitions.
Definition at line 590 of file partition.F90.
pure integer function, public partition_oct_m::partition_get_part | ( | type(partition_t), intent(in) | partition, |
integer, intent(in) | local_point | ||
) |
Returns the partition of the local point.
Definition at line 597 of file partition.F90.
|
private |
Returns the partition number for a given global index If the index is zero, return local partition.
Definition at line 606 of file partition.F90.
subroutine, public partition_oct_m::partition_get_local | ( | type(partition_t), intent(in) | partition, |
integer(int64), dimension(:), intent(inout), contiguous | rbuffer, | ||
integer, intent(out) | np_local | ||
) |
Calculates the local vector of all partitions in parallel. Local vector stores the global point indices that each partition has.
[in,out] | rbuffer | The actual result, the local vector from 1 to np_local |
[out] | np_local | Number of elements, might be less than partitionnp_local |
Definition at line 621 of file partition.F90.