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)
 
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 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)
 

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_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_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:

◆ 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 
)

◆ 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