ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Typedefs | Functions
RI_2D_Comm Namespace Reference

Typedefs

using TA = int
 
using Tcell = int
 
using TC = std::array< Tcell, Ndim >
 
using TAC = std::pair< TA, TC >
 

Functions

template<typename Tdata , typename Tmatrix >
std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > split_m2D_ktoR (const UnitCell &ucell, const K_Vectors &kv, const std::vector< const Tmatrix * > &mks_2D, const Parallel_2D &pv, const int nspin, const bool spgsym=false)
 
template<typename Tdata , typename Tmatrix >
std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > split_m2D_ktoR_gamma (const UnitCell &ucell, const std::vector< const Tmatrix * > &mks_2D, const Parallel_2D &pv, const int nspin)
 
template<typename Tdata , typename Tmatrix >
std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > split_m2D_ktoR_k (const UnitCell &ucell, const K_Vectors &kv, const std::vector< const Tmatrix * > &mks_2D, const Parallel_2D &pv, const int nspin, const bool spgsym=false)
 
std::vector< std::tuple< std::set< TA >, std::set< TA > > > get_2D_judge (const UnitCell &ucell, const Parallel_2D &pv)
 
template<typename Tdata , typename TK >
void add_Hexx (const UnitCell &ucell, const K_Vectors &kv, const int ik, const double alpha, const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &Hs, const Parallel_Orbitals &pv, TK *hk)
 
template<typename Tdata , typename TK >
void add_Hexx_td (const UnitCell &ucell, const K_Vectors &kv, const int ik, const double alpha, const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &Hs, const Parallel_Orbitals &pv, const ModuleBase::Vector3< double > &At, TK *hk)
 
template<typename Tdata , typename TR >
void add_HexxR (const int current_spin, const double alpha, const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &Hs, const Parallel_Orbitals &pv, const int npol, hamilt::HContainer< TR > &HlocR, const RI::Cell_Nearest< int, int, 3, double, 3 > *const cell_nearest=nullptr)
 
template<typename Tdata >
std::vector< std::vector< Tdata > > Hexxs_to_Hk (const K_Vectors &kv, const Parallel_Orbitals &pv, const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &Hexxs, const int ik)
 
template<typename Tdata >
std::vector< std::vector< Tdata > > pulay_mixing (const Parallel_Orbitals &pv, std::deque< std::vector< std::vector< Tdata > > > &Hk_seq, const std::vector< std::vector< Tdata > > &Hk_new, const double mixing_beta, const std::string mixing_mode)
 
std::vector< int > get_ik_list (const K_Vectors &kv, const int is_k)
 
std::tuple< int, int, int > get_iat_iw_is_block (const UnitCell &ucell, const int &iwt)
 
int get_is_block (const int is_k, const int is_row_b, const int is_col_b)
 
std::tuple< int, int > split_is_block (const int is_b)
 
int get_iwt (const UnitCell &ucell, const int iat, const int iw_b, const int is_b)
 
template<typename TA , typename TAC , typename T >
std::map< TA, std::map< TAC, T > > comm_map2_first (const MPI_Comm &mpi_comm, const std::map< TA, std::map< TAC, T > > &Ds_in, const std::set< TA > &s0, const std::set< TA > &s1)
 
template<typename TA , typename TAC , typename T , typename Tjudge >
std::map< TA, std::map< TAC, T > > comm_map2 (const MPI_Comm &mpi_comm, const std::map< TA, std::map< TAC, T > > &Ds_in, const Tjudge &judge)
 
template<typename Tkey , typename Tvalue >
void set_value_add (Tkey &&key, Tvalue &&value, std::map< Tkey, Tvalue > &data)
 
template<typename Tkey0 , typename Tkey1 , typename Tvalue >
void set_value_add (std::tuple< Tkey0, Tkey1 > &&key, Tvalue &&value, std::map< Tkey0, std::map< Tkey1, Tvalue > > &data)
 
template<typename Tkey , typename Tvalue >
void add_datas (std::map< Tkey, Tvalue > &&data_local, std::map< Tkey, Tvalue > &data_recv)
 
template<typename Tkey0 , typename Tkey1 , typename Tvalue >
void add_datas (std::map< Tkey0, std::map< Tkey1, Tvalue > > &&data_local, std::map< Tkey0, std::map< Tkey1, Tvalue > > &data_recv)
 

Typedef Documentation

◆ TA

using RI_2D_Comm::TA = typedef int

◆ TAC

using RI_2D_Comm::TAC = typedef std::pair<TA, TC>

◆ TC

using RI_2D_Comm::TC = typedef std::array<Tcell, Ndim>

◆ Tcell

using RI_2D_Comm::Tcell = typedef int

Function Documentation

◆ add_datas() [1/2]

template<typename Tkey , typename Tvalue >
void RI_2D_Comm::add_datas ( std::map< Tkey, Tvalue > &&  data_local,
std::map< Tkey, Tvalue > &  data_recv 
)
extern
Here is the caller graph for this function:

◆ add_datas() [2/2]

template<typename Tkey0 , typename Tkey1 , typename Tvalue >
void RI_2D_Comm::add_datas ( std::map< Tkey0, std::map< Tkey1, Tvalue > > &&  data_local,
std::map< Tkey0, std::map< Tkey1, Tvalue > > &  data_recv 
)
extern
Here is the call graph for this function:

◆ add_Hexx()

template<typename Tdata , typename TK >
void RI_2D_Comm::add_Hexx ( const UnitCell ucell,
const K_Vectors kv,
const int  ik,
const double  alpha,
const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &  Hs,
const Parallel_Orbitals pv,
TK *  hk 
)
extern
Here is the call graph for this function:

◆ add_Hexx_td()

template<typename Tdata , typename TK >
void RI_2D_Comm::add_Hexx_td ( const UnitCell ucell,
const K_Vectors kv,
const int  ik,
const double  alpha,
const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &  Hs,
const Parallel_Orbitals pv,
const ModuleBase::Vector3< double > &  At,
TK *  hk 
)
extern
Here is the call graph for this function:

◆ add_HexxR()

template<typename Tdata , typename TR >
void RI_2D_Comm::add_HexxR ( const int  current_spin,
const double  alpha,
const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &  Hs,
const Parallel_Orbitals pv,
const int  npol,
hamilt::HContainer< TR > &  HlocR,
const RI::Cell_Nearest< int, int, 3, double, 3 > *const  cell_nearest = nullptr 
)
extern
Here is the call graph for this function:
Here is the caller graph for this function:

◆ comm_map2()

template<typename TA , typename TAC , typename T , typename Tjudge >
std::map< TA, std::map< TAC, T > > RI_2D_Comm::comm_map2 ( const MPI_Comm &  mpi_comm,
const std::map< TA, std::map< TAC, T > > &  Ds_in,
const Tjudge &  judge 
)
extern
Here is the caller graph for this function:

◆ comm_map2_first()

template<typename TA , typename TAC , typename T >
std::map< TA, std::map< TAC, T > > RI_2D_Comm::comm_map2_first ( const MPI_Comm &  mpi_comm,
const std::map< TA, std::map< TAC, T > > &  Ds_in,
const std::set< TA > &  s0,
const std::set< TA > &  s1 
)
extern
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_2D_judge()

auto RI_2D_Comm::get_2D_judge ( const UnitCell ucell,
const Parallel_2D pv 
)
extern
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_iat_iw_is_block()

std::tuple< int, int, int > RI_2D_Comm::get_iat_iw_is_block ( const UnitCell ucell,
const int &  iwt 
)
externinline
Here is the caller graph for this function:

◆ get_ik_list()

std::vector< int > RI_2D_Comm::get_ik_list ( const K_Vectors kv,
const int  is_k 
)
extern
Here is the call graph for this function:

◆ get_is_block()

int RI_2D_Comm::get_is_block ( const int  is_k,
const int  is_row_b,
const int  is_col_b 
)
externinline
Here is the caller graph for this function:

◆ get_iwt()

int RI_2D_Comm::get_iwt ( const UnitCell ucell,
const int  iat,
const int  iw_b,
const int  is_b 
)
externinline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Hexxs_to_Hk()

template<typename Tdata >
std::vector< std::vector< Tdata > > RI_2D_Comm::Hexxs_to_Hk ( const K_Vectors kv,
const Parallel_Orbitals pv,
const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &  Hexxs,
const int  ik 
)
extern

◆ pulay_mixing()

template<typename Tdata >
std::vector< std::vector< Tdata > > RI_2D_Comm::pulay_mixing ( const Parallel_Orbitals pv,
std::deque< std::vector< std::vector< Tdata > > > &  Hk_seq,
const std::vector< std::vector< Tdata > > &  Hk_new,
const double  mixing_beta,
const std::string  mixing_mode 
)

◆ set_value_add() [1/2]

template<typename Tkey0 , typename Tkey1 , typename Tvalue >
void RI_2D_Comm::set_value_add ( std::tuple< Tkey0, Tkey1 > &&  key,
Tvalue &&  value,
std::map< Tkey0, std::map< Tkey1, Tvalue > > &  data 
)
extern
Here is the call graph for this function:

◆ set_value_add() [2/2]

template<typename Tkey , typename Tvalue >
void RI_2D_Comm::set_value_add ( Tkey &&  key,
Tvalue &&  value,
std::map< Tkey, Tvalue > &  data 
)
extern
Here is the caller graph for this function:

◆ split_is_block()

std::tuple< int, int > RI_2D_Comm::split_is_block ( const int  is_b)
externinline
Here is the caller graph for this function:

◆ split_m2D_ktoR()

template<typename Tdata , typename Tmatrix >
std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > RI_2D_Comm::split_m2D_ktoR ( const UnitCell ucell,
const K_Vectors kv,
const std::vector< const Tmatrix * > &  mks_2D,
const Parallel_2D pv,
const int  nspin,
const bool  spgsym = false 
)
extern

◆ split_m2D_ktoR_gamma()

template<typename Tdata , typename Tmatrix >
std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > RI_2D_Comm::split_m2D_ktoR_gamma ( const UnitCell ucell,
const std::vector< const Tmatrix * > &  mks_2D,
const Parallel_2D pv,
const int  nspin 
)
extern

◆ split_m2D_ktoR_k()

template<typename Tdata , typename Tmatrix >
std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > RI_2D_Comm::split_m2D_ktoR_k ( const UnitCell ucell,
const K_Vectors kv,
const std::vector< const Tmatrix * > &  mks_2D,
const Parallel_2D pv,
const int  nspin,
const bool  spgsym = false 
)
extern