25 const int* desca = mat_l.
desc;
30 if (myid == root_proc)
32 mat_g.
p.reset(
new T[nrows * ncols]);
36 mat_g.
p.reset(
new T[nrows * ncols]);
40 mat_g.
desc.reset(
new int[9]{1, ctxt, nrows, ncols, nrows, ncols, 0, 0, nrows});
45 Cpxgemr2d(nrows, ncols, mat_l.
p, 1, 1,
const_cast<int*
>(desca), mat_g.
p.get(), 1, 1, mat_g.
desc.get(), ctxt);
55 const int* desc_psi = para_orb.
desc_wfc;
56 int ctxt = desc_psi[1];
57 int nrows = desc_psi[2];
58 int ncols = desc_psi[3];
60 if (myid == root_proc)
62 psi_g.
p.reset(
new T[nrows * ncols]);
66 psi_g.
p.reset(
new T[nrows * ncols]);
70 psi_g.
desc.reset(
new int[9]{1, ctxt, nrows, ncols, nrows, ncols, 0, 0, nrows});
75 Cpxgemr2d(nrows, ncols, psi_l, 1, 1,
const_cast<int*
>(desc_psi), psi_g.
p.get(), 1, 1, psi_g.
desc.get(), ctxt);
81 const int* desc_psi = para_orb.
desc_wfc;
82 int ctxt = desc_psi[1];
83 int nrows = desc_psi[2];
84 int ncols = desc_psi[3];
87 Cpxgemr2d(nrows, ncols, psi_g.
p.get(), 1, 1, psi_g.
desc.get(), psi_l, 1, 1,
const_cast<int*
>(desc_psi), ctxt);
Definition parallel_orbitals.h:9
int desc_wfc[9]
Definition parallel_orbitals.h:37
#define T
Definition exp.cpp:237
Definition band_energy.cpp:11
void distributePsi(const Parallel_Orbitals ¶_orb, T *psi_l, const module_rt::Matrix_g< T > &psi_g)
Definition gather_mat.h:79
void gatherPsi(const int myid, const int root_proc, T *psi_l, const Parallel_Orbitals ¶_orb, module_rt::Matrix_g< T > &psi_g)
Definition gather_mat.h:49
void gatherMatrix(const int myid, const int root_proc, const hamilt::MatrixBlock< T > &mat_l, Matrix_g< T > &mat_g)
Definition gather_mat.h:23
std::enable_if< block2d_data_type< T >::value, void >::type Cpxgemr2d(int M, int N, T *A, int IA, int JA, int *DESCA, T *B, int IB, int JB, int *DESCB, int ICTXT)
Definition scalapack_connector.h:186
Definition matrixblock.h:9
T * p
Definition matrixblock.h:12
const int * desc
Definition matrixblock.h:15
Definition gather_mat.h:13
size_t col
Definition gather_mat.h:16
size_t row
Definition gather_mat.h:15
std::shared_ptr< T > p
Definition gather_mat.h:14
std::shared_ptr< int > desc
Definition gather_mat.h:17