ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Namespaces | Typedefs | Functions
RI_2D_Comm.h File Reference
#include "source_basis/module_ao/parallel_orbitals.h"
#include "source_lcao/module_hcontainer/hcontainer.h"
#include "source_cell/klist.h"
#include <RI/global/Tensor.h>
#include <array>
#include <vector>
#include <tuple>
#include <map>
#include <set>
#include <deque>
#include <RI/ri/Cell_Nearest.h>
#include "RI_2D_Comm.hpp"
Include dependency graph for RI_2D_Comm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  RI_2D_Comm
 

Typedefs

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

Functions

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)
 
std::vector< std::tuple< std::set< TA >, std::set< TA > > > RI_2D_Comm::get_2D_judge (const UnitCell &ucell, const Parallel_2D &pv)
 
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)
 
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)
 
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)
 
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)
 
std::vector< int > RI_2D_Comm::get_ik_list (const K_Vectors &kv, const int is_k)
 
std::tuple< int, int, int > RI_2D_Comm::get_iat_iw_is_block (const UnitCell &ucell, const int &iwt)
 
int RI_2D_Comm::get_is_block (const int is_k, const int is_row_b, const int is_col_b)
 
std::tuple< int, int > RI_2D_Comm::split_is_block (const int is_b)
 
int RI_2D_Comm::get_iwt (const UnitCell &ucell, const int iat, const int iw_b, const int is_b)