ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <parallel_k2d.h>
Public Member Functions | |
Parallel_K2D () | |
private constructor | |
~Parallel_K2D () | |
private destructor | |
void | set_para_env (int nks, const int &nw, const int &nb2d, const int &nproc, const int &my_rank, const int &nspin) |
void | distribute_hsk (hamilt::Hamilt< TK > *pHamilt, const std::vector< int > &ik_kpar, const int &nw) |
this function distributes the Hk and Sk matrices to hk_pool and sk_pool | |
void | unset_para_env () |
void | set_kpar (int kpar) |
set the number of k-points | |
int | get_kpar () |
get the number of k-points | |
int | get_my_pool () |
get my pool | |
Parallel_Kpoints * | get_pKpoints () |
get pKpoints | |
Parallel_2D * | get_p2D_global () |
get p2D_global | |
Parallel_2D * | get_p2D_pool () |
get p2D_pool | |
Public Attributes | |
std::vector< TK > | hk_pool |
std::vector< TK > | sk_pool |
MPI_Comm | POOL_WORLD_K2D |
Private Attributes | |
int | kpar_ = 0 |
int | NPROC_IN_POOL |
int | MY_POOL |
int | RANK_IN_POOL |
Parallel_Kpoints * | Pkpoints = nullptr |
Parallel_2D * | P2D_global = nullptr |
Parallel_2D * | P2D_pool = nullptr |
|
inline |
private constructor
|
inline |
private destructor
void Parallel_K2D< TK >::distribute_hsk | ( | hamilt::Hamilt< TK > * | pHamilt, |
const std::vector< int > & | ik_kpar, | ||
const int & | nw | ||
) |
this function distributes the Hk and Sk matrices to hk_pool and sk_pool
|
inline |
get the number of k-points
|
inline |
get my pool
|
inline |
get p2D_global
|
inline |
get p2D_pool
|
inline |
get pKpoints
void Parallel_K2D< TK >::set_kpar | ( | int | kpar | ) |
set the number of k-points
void Parallel_K2D< TK >::set_para_env | ( | int | nks, |
const int & | nw, | ||
const int & | nb2d, | ||
const int & | nproc, | ||
const int & | my_rank, | ||
const int & | nspin | ||
) |
Public member functions this function sets the parallel environment for k-points parallelism including the glabal and pool 2D parallel distribution
void Parallel_K2D< TK >::unset_para_env | ( | ) |
this function unsets the parallel environment for k-points parallelism including the glabal and pool 2D parallel distribution
std::vector<TK> Parallel_K2D< TK >::hk_pool |
the local Hk, Sk matrices in POOL_WORLD_K2D
|
private |
Private member variables
|
private |
|
private |
mpi info
|
private |
|
private |
|
private |
the pointer to Parallel_Kpoints
MPI_Comm Parallel_K2D< TK >::POOL_WORLD_K2D |
|
private |
std::vector<TK> Parallel_K2D< TK >::sk_pool |