83 int init(
const int mg,
105 MPI_Comm
comm()
const;
This class packs the basic information of 2D-block-cyclic parallel distribution of an arbitrary matri...
Definition parallel_2d.h:12
std::vector< int > local2global_row_
map from local index to global index
Definition parallel_2d.h:141
int64_t get_local_size() const
number of local matrix elements
Definition parallel_2d.h:39
void _set_dist_info(const int mg, const int ng, const int nb)
Definition parallel_2d.cpp:76
bool in_this_processor(const int iw1_all, const int iw2_all) const
check whether a global index is in this process
Definition parallel_2d.cpp:8
int get_global_row_size() const
number of global rows
Definition parallel_2d.cpp:13
int dim0
number of processes in each dimension of the MPI Cartesian grid
Definition parallel_2d.h:126
int blacs_ctxt
BLACS context.
Definition parallel_2d.h:100
int ncol
Definition parallel_2d.h:116
int local2global_col(const int ilc) const
get the global index of a local index (col)
Definition parallel_2d.h:63
int get_block_size() const
side length of 2d square block
Definition parallel_2d.h:72
int set(const int mg, const int ng, const int nb, const int blacs_ctxt)
Set up the info of a block-cyclic distribution using given BLACS context.
Definition parallel_2d.cpp:115
MPI_Comm comm() const
Definition parallel_2d.cpp:36
int get_row_size() const
number of local rows
Definition parallel_2d.h:21
int nrow
local size (nloc = nrow * ncol)
Definition parallel_2d.h:115
int coord[2]
process coordinate in the BLACS grid
Definition parallel_2d.h:130
void set_serial(const int mg, const int ng)
Definition parallel_2d.cpp:124
std::vector< int > global2local_col_
Definition parallel_2d.h:138
int local2global_row(const int ilr) const
get the global index of a local index (row)
Definition parallel_2d.h:57
int get_global_col_size() const
number of global columns
Definition parallel_2d.cpp:24
int nb
block size
Definition parallel_2d.h:123
int global2local_col(const int igc) const
get the local index of a global index (col)
Definition parallel_2d.h:51
void _init_proc_grid(const MPI_Comm comm, const bool mode)
Definition parallel_2d.cpp:52
int init(const int mg, const int ng, const int nb, const MPI_Comm comm, bool mode=false)
Initialize a BLACS grid with the given MPI communicator and set up the info of a block-cyclic distrib...
Definition parallel_2d.cpp:108
int global2local_row(const int igr) const
get the local index of a global index (row)
Definition parallel_2d.h:45
Parallel_2D(Parallel_2D &&rhs)=default
int64_t nloc
Definition parallel_2d.h:117
bool is_serial
whether to use the serial mode
Definition parallel_2d.h:133
int dim1
Definition parallel_2d.h:127
int desc[9]
ScaLAPACK descriptor.
Definition parallel_2d.h:103
std::vector< int > global2local_row_
map from global index to local index
Definition parallel_2d.h:137
std::vector< int > local2global_col_
Definition parallel_2d.h:142
int get_col_size() const
number of local columns
Definition parallel_2d.h:27
Parallel_2D & operator=(Parallel_2D &&rhs)=default