ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
LRI_CV< Tdata > Class Template Reference

#include <LRI_CV.h>

Collaboration diagram for LRI_CV< Tdata >:

Public Member Functions

 LRI_CV ()
 
 ~LRI_CV ()
 
void set_orbitals (const UnitCell &ucell, const LCAO_Orbitals &orb, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &lcaos_in, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &abfs_in, const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &abfs_ccp_in, const double &kmesh_times, ORB_gaunt_table &MGT, const bool &init_MGT, const bool &init_C)
 
std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > cal_Vs (const UnitCell &ucell, const std::vector< TA > &list_A0, const std::vector< TAC > &list_A1, const std::map< std::string, bool > &flags)
 
std::map< TA, std::map< TAC, std::array< RI::Tensor< Tdata >, 3 > > > cal_dVs (const UnitCell &ucell, const std::vector< TA > &list_A0, const std::vector< TAC > &list_A1, const std::map< std::string, bool > &flags)
 
std::pair< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > >, std::map< TA, std::map< TAC, std::array< RI::Tensor< Tdata >, 3 > > > > cal_Cs_dCs (const UnitCell &ucell, const std::vector< TA > &list_A0, const std::vector< TAC > &list_A1, const std::map< std::string, bool > &flags)
 
size_t get_index_abfs_size (const size_t &iat)
 
template<typename Tresult >
auto cal_datas (const UnitCell &ucell, const std::vector< TA > &list_A0, const std::vector< TAC > &list_A1, const std::map< std::string, bool > &flags, const T_func_cal_Rcut &func_cal_Rcut, const T_func_DPcal_data< Tresult > &func_DPcal_data) -> std::map< TA, std::map< TAC, Tresult > >
 

Public Attributes

std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, RI::Tensor< Tdata > > > > Vws
 
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, RI::Tensor< Tdata > > > > Cws
 
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, std::array< RI::Tensor< Tdata >, 3 > > > > dVws
 
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, std::array< RI::Tensor< Tdata >, 3 > > > > dCws
 

Private Types

using TA = int
 
using TC = std::array< int, 3 >
 
using TAC = std::pair< TA, TC >
 
using Tdata_real = RI::Global_Func::To_Real_t< Tdata >
 
template<typename Tresult >
using T_func_DPcal_data = std::function< Tresult(const int it0, const int it1, const Abfs::Vector3_Order< double > &R, const std::map< std::string, bool > &flags)>
 
using T_func_cal_Rcut = std::function< double(const int it0, const int it1)>
 

Private Member Functions

template<typename Tresult >
std::map< TA, std::map< TAC, Tresult > > cal_datas (const UnitCell &ucell, const std::vector< TA > &list_A0, const std::vector< TAC > &list_A1, const std::map< std::string, bool > &flags, const T_func_cal_Rcut &func_cal_Rcut, const T_func_DPcal_data< Tresult > &func_DPcal_data)
 
double cal_V_Rcut (const int it0, const int it1)
 
double cal_C_Rcut (const int it0, const int it1)
 
RI::Tensor< Tdata > DPcal_V (const int it0, const int it1, const Abfs::Vector3_Order< double > &R, const std::map< std::string, bool > &flags)
 
std::array< RI::Tensor< Tdata >, 3 > DPcal_dV (const int it0, const int it1, const Abfs::Vector3_Order< double > &R, const std::map< std::string, bool > &flags)
 
std::pair< RI::Tensor< Tdata >, std::array< RI::Tensor< Tdata >, 3 > > DPcal_C_dC (const int it0, const int it1, const Abfs::Vector3_Order< double > &R, const std::map< std::string, bool > &flags)
 
template<typename To11 , typename Tfunc >
To11 DPcal_o11 (const int it0, const int it1, const Abfs::Vector3_Order< double > &R, const bool &flag_writable_o11ws, pthread_rwlock_t &rwlock_o11, std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, To11 > > > &o11ws, const Tfunc &func_cal_o11)
 

Private Attributes

std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > lcaos
 
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs
 
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs_ccp
 
ModuleBase::Element_Basis_Index::IndexLNM index_lcaos
 
ModuleBase::Element_Basis_Index::IndexLNM index_abfs
 
std::vector< double > lcaos_rcut
 
std::vector< double > abfs_ccp_rcut
 
pthread_rwlock_t rwlock_Vw
 
pthread_rwlock_t rwlock_Cw
 
pthread_rwlock_t rwlock_dVw
 
pthread_rwlock_t rwlock_dCw
 
Matrix_Orbs11 m_abfs_abfs
 
Matrix_Orbs21 m_abfslcaos_lcaos
 

Member Typedef Documentation

◆ T_func_cal_Rcut

template<typename Tdata >
using LRI_CV< Tdata >::T_func_cal_Rcut = std::function<double(const int it0, const int it1)>
private

◆ T_func_DPcal_data

template<typename Tdata >
template<typename Tresult >
using LRI_CV< Tdata >::T_func_DPcal_data = std::function<Tresult( const int it0, const int it1, const Abfs::Vector3_Order<double> &R, const std::map<std::string,bool> &flags)>
private

◆ TA

template<typename Tdata >
using LRI_CV< Tdata >::TA = int
private

◆ TAC

template<typename Tdata >
using LRI_CV< Tdata >::TAC = std::pair<TA,TC>
private

◆ TC

template<typename Tdata >
using LRI_CV< Tdata >::TC = std::array<int,3>
private

◆ Tdata_real

template<typename Tdata >
using LRI_CV< Tdata >::Tdata_real = RI::Global_Func::To_Real_t<Tdata>
private

Constructor & Destructor Documentation

◆ LRI_CV()

template<typename Tdata >
LRI_CV< Tdata >::LRI_CV ( )

◆ ~LRI_CV()

template<typename Tdata >
LRI_CV< Tdata >::~LRI_CV ( )

Member Function Documentation

◆ cal_C_Rcut()

template<typename Tdata >
double LRI_CV< Tdata >::cal_C_Rcut ( const int  it0,
const int  it1 
)
inlineprivate

◆ cal_Cs_dCs()

template<typename Tdata >
auto LRI_CV< Tdata >::cal_Cs_dCs ( const UnitCell ucell,
const std::vector< TA > &  list_A0,
const std::vector< TAC > &  list_A1,
const std::map< std::string, bool > &  flags 
)
Here is the call graph for this function:

◆ cal_datas() [1/2]

template<typename Tdata >
template<typename Tresult >
std::map< TA, std::map< TAC, Tresult > > LRI_CV< Tdata >::cal_datas ( const UnitCell ucell,
const std::vector< TA > &  list_A0,
const std::vector< TAC > &  list_A1,
const std::map< std::string, bool > &  flags,
const T_func_cal_Rcut func_cal_Rcut,
const T_func_DPcal_data< Tresult > &  func_DPcal_data 
)
private

◆ cal_datas() [2/2]

template<typename Tdata >
template<typename Tresult >
auto LRI_CV< Tdata >::cal_datas ( const UnitCell ucell,
const std::vector< TA > &  list_A0,
const std::vector< TAC > &  list_A1,
const std::map< std::string, bool > &  flags,
const T_func_cal_Rcut func_cal_Rcut,
const T_func_DPcal_data< Tresult > &  func_DPcal_data 
) -> std::map<TA,std::map<TAC,Tresult>>
Here is the call graph for this function:

◆ cal_dVs()

template<typename Tdata >
auto LRI_CV< Tdata >::cal_dVs ( const UnitCell ucell,
const std::vector< TA > &  list_A0,
const std::vector< TAC > &  list_A1,
const std::map< std::string, bool > &  flags 
)
inline
Here is the call graph for this function:

◆ cal_V_Rcut()

template<typename Tdata >
double LRI_CV< Tdata >::cal_V_Rcut ( const int  it0,
const int  it1 
)
inlineprivate

◆ cal_Vs()

template<typename Tdata >
auto LRI_CV< Tdata >::cal_Vs ( const UnitCell ucell,
const std::vector< TA > &  list_A0,
const std::vector< TAC > &  list_A1,
const std::map< std::string, bool > &  flags 
)
inline
Here is the call graph for this function:

◆ DPcal_C_dC()

template<typename Tdata >
std::pair< RI::Tensor< Tdata >, std::array< RI::Tensor< Tdata >, 3 > > LRI_CV< Tdata >::DPcal_C_dC ( const int  it0,
const int  it1,
const Abfs::Vector3_Order< double > &  R,
const std::map< std::string, bool > &  flags 
)
private
Here is the call graph for this function:

◆ DPcal_dV()

template<typename Tdata >
std::array< RI::Tensor< Tdata >, 3 > LRI_CV< Tdata >::DPcal_dV ( const int  it0,
const int  it1,
const Abfs::Vector3_Order< double > &  R,
const std::map< std::string, bool > &  flags 
)
inlineprivate

◆ DPcal_o11()

template<typename Tdata >
template<typename To11 , typename Tfunc >
To11 LRI_CV< Tdata >::DPcal_o11 ( const int  it0,
const int  it1,
const Abfs::Vector3_Order< double > &  R,
const bool &  flag_writable_o11ws,
pthread_rwlock_t &  rwlock_o11,
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, To11 > > > &  o11ws,
const Tfunc &  func_cal_o11 
)
private
Here is the call graph for this function:

◆ DPcal_V()

template<typename Tdata >
RI::Tensor< Tdata > LRI_CV< Tdata >::DPcal_V ( const int  it0,
const int  it1,
const Abfs::Vector3_Order< double > &  R,
const std::map< std::string, bool > &  flags 
)
inlineprivate

◆ get_index_abfs_size()

template<typename Tdata >
size_t LRI_CV< Tdata >::get_index_abfs_size ( const size_t &  iat)
inline

◆ set_orbitals()

template<typename Tdata >
void LRI_CV< Tdata >::set_orbitals ( const UnitCell ucell,
const LCAO_Orbitals orb,
const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &  lcaos_in,
const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &  abfs_in,
const std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > &  abfs_ccp_in,
const double &  kmesh_times,
ORB_gaunt_table MGT,
const bool &  init_MGT,
const bool &  init_C 
)
Here is the call graph for this function:

Member Data Documentation

◆ abfs

template<typename Tdata >
std::vector<std::vector<std::vector<Numerical_Orbital_Lm> > > LRI_CV< Tdata >::abfs
private

◆ abfs_ccp

template<typename Tdata >
std::vector<std::vector<std::vector<Numerical_Orbital_Lm> > > LRI_CV< Tdata >::abfs_ccp
private

◆ abfs_ccp_rcut

template<typename Tdata >
std::vector<double> LRI_CV< Tdata >::abfs_ccp_rcut
private

◆ Cws

template<typename Tdata >
std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,RI::Tensor<Tdata> > > > LRI_CV< Tdata >::Cws

◆ dCws

template<typename Tdata >
std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,std::array<RI::Tensor<Tdata>,3> > > > LRI_CV< Tdata >::dCws

◆ dVws

template<typename Tdata >
std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,std::array<RI::Tensor<Tdata>,3> > > > LRI_CV< Tdata >::dVws

◆ index_abfs

template<typename Tdata >
ModuleBase::Element_Basis_Index::IndexLNM LRI_CV< Tdata >::index_abfs
private

◆ index_lcaos

template<typename Tdata >
ModuleBase::Element_Basis_Index::IndexLNM LRI_CV< Tdata >::index_lcaos
private

◆ lcaos

template<typename Tdata >
std::vector<std::vector<std::vector<Numerical_Orbital_Lm> > > LRI_CV< Tdata >::lcaos
private

◆ lcaos_rcut

template<typename Tdata >
std::vector<double> LRI_CV< Tdata >::lcaos_rcut
private

◆ m_abfs_abfs

template<typename Tdata >
Matrix_Orbs11 LRI_CV< Tdata >::m_abfs_abfs
private

◆ m_abfslcaos_lcaos

template<typename Tdata >
Matrix_Orbs21 LRI_CV< Tdata >::m_abfslcaos_lcaos
private

◆ rwlock_Cw

template<typename Tdata >
pthread_rwlock_t LRI_CV< Tdata >::rwlock_Cw
private

◆ rwlock_dCw

template<typename Tdata >
pthread_rwlock_t LRI_CV< Tdata >::rwlock_dCw
private

◆ rwlock_dVw

template<typename Tdata >
pthread_rwlock_t LRI_CV< Tdata >::rwlock_dVw
private

◆ rwlock_Vw

template<typename Tdata >
pthread_rwlock_t LRI_CV< Tdata >::rwlock_Vw
private

◆ Vws

template<typename Tdata >
std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,RI::Tensor<Tdata> > > > LRI_CV< Tdata >::Vws

The documentation for this class was generated from the following files: