15#include <RI/global/Tensor.h>
16#include <RI/global/Global_Func-2.h>
23template<
typename Tdata>
28 using TC = std::array<int,3>;
29 using TAC = std::pair<TA,TC>;
39 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &lcaos_in,
40 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &abfs_in,
41 const std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> &abfs_ccp_in,
42 const double &kmesh_times,
43 std::shared_ptr<ORB_gaunt_table> MGT,
45 inline std::map<TA,std::map<TAC,RI::Tensor<Tdata>>>
48 const std::vector<TA> &list_A0,
49 const std::vector<TAC> &list_A1,
50 const std::map<std::string,bool> &flags);
51 inline std::map<TA, std::map<TAC, std::array<RI::Tensor<Tdata>, 3>>>
54 const std::vector<TA> &list_A0,
55 const std::vector<TAC> &list_A1,
56 const std::map<std::string,bool> &flags);
57 std::pair<std::map<TA, std::map<TAC, RI::Tensor<Tdata>>>,
58 std::map<TA, std::map<TAC, std::array<RI::Tensor<Tdata>, 3>>>>
61 const std::vector<TA> &list_A0,
62 const std::vector<TAC> &list_A1,
63 const std::map<std::string,bool> &flags);
68 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
lcaos;
69 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
abfs;
70 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
abfs_ccp;
77 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,RI::Tensor<Tdata>>>>
Vws;
78 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,RI::Tensor<Tdata>>>>
Cws;
79 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,std::array<RI::Tensor<Tdata>,3>>>>
dVws;
80 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,std::array<RI::Tensor<Tdata>,3>>>>
dCws;
90 template<
typename Tresult>
95 const std::map<std::string,bool> &flags)>;
97 template<
typename Tresult>
98 std::map<TA,std::map<TAC,Tresult>>
101 const std::vector<TA>& list_A0,
102 const std::vector<TAC>& list_A1,
103 const std::map<std::string, bool>& flags,
107 inline double cal_V_Rcut(
const int it0,
const int it1);
108 inline double cal_C_Rcut(
const int it0,
const int it1);
110 inline RI::Tensor<Tdata>
115 const std::map<std::string,bool> &flags);
116 inline std::array<RI::Tensor<Tdata>,3>
121 const std::map<std::string,bool> &flags);
122 std::pair<RI::Tensor<Tdata>, std::array<RI::Tensor<Tdata>,3>>
127 const std::map<std::string,bool> &flags);
129 template<
typename To11,
typename Tfunc>
134 const bool &flag_writable_o11ws,
135 pthread_rwlock_t &rwlock_o11,
137 const Tfunc &func_cal_o11);
Definition abfs-vector3_order.h:16
RI::Global_Func::To_Real_t< Tdata > Tdata_real
Definition LRI_CV.h:30
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)
Definition LRI_CV.hpp:294
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)
Definition LRI_CV.hpp:324
RI::Tensor< Tdata > DPcal_V(const int it0, const int it1, const Abfs::Vector3_Order< double > &R, const std::map< std::string, bool > &flags)
Definition LRI_CV.hpp:279
std::vector< double > abfs_ccp_rcut
Definition LRI_CV.h:74
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, RI::Tensor< Tdata > > > > Vws
Definition LRI_CV.h:77
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)
Definition LRI_CV.hpp:145
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, std::array< RI::Tensor< Tdata >, 3 > > > > dVws
Definition LRI_CV.h:79
std::function< double(const int it0, const int it1)> T_func_cal_Rcut
Definition LRI_CV.h:96
~LRI_CV()
Definition LRI_CV.hpp:30
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > lcaos
Definition LRI_CV.h:68
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)
std::function< Tresult(const int it0, const int it1, const Abfs::Vector3_Order< double > &R, const std::map< std::string, bool > &flags)> T_func_DPcal_data
Definition LRI_CV.h:95
LRI_CV()
Definition LRI_CV.hpp:21
int TA
Definition LRI_CV.h:27
pthread_rwlock_t rwlock_dVw
Definition LRI_CV.h:84
std::vector< double > lcaos_rcut
Definition LRI_CV.h:73
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)
Definition LRI_CV.hpp:188
ModuleBase::Element_Basis_Index::IndexLNM index_lcaos
Definition LRI_CV.h:71
Matrix_Orbs21 m_abfslcaos_lcaos
Definition LRI_CV.h:88
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, std::shared_ptr< ORB_gaunt_table > MGT, const bool &init_C)
Definition LRI_CV.hpp:40
Matrix_Orbs11 m_abfs_abfs
Definition LRI_CV.h:87
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)
Definition LRI_CV.hpp:166
pthread_rwlock_t rwlock_Cw
Definition LRI_CV.h:83
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs
Definition LRI_CV.h:69
std::pair< TA, TC > TAC
Definition LRI_CV.h:29
ModuleBase::Element_Basis_Index::IndexLNM index_abfs
Definition LRI_CV.h:72
size_t get_index_abfs_size(const size_t &iat)
Definition LRI_CV.h:65
std::array< int, 3 > TC
Definition LRI_CV.h:28
pthread_rwlock_t rwlock_dCw
Definition LRI_CV.h:85
double cal_C_Rcut(const int it0, const int it1)
Definition LRI_CV.hpp:91
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, std::array< RI::Tensor< Tdata >, 3 > > > > dCws
Definition LRI_CV.h:80
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, RI::Tensor< Tdata > > > > Cws
Definition LRI_CV.h:78
double cal_V_Rcut(const int it0, const int it1)
Definition LRI_CV.hpp:86
pthread_rwlock_t rwlock_Vw
Definition LRI_CV.h:82
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)
Definition LRI_CV.hpp:225
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs_ccp
Definition LRI_CV.h:70
Definition Matrix_Orbs11.h:22
Definition Matrix_Orbs21.h:21
std::vector< Index_T > IndexLNM
Definition element_basis_index.h:42