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,
46 inline std::map<TA,std::map<TAC,RI::Tensor<Tdata>>>
49 const std::vector<TA> &list_A0,
50 const std::vector<TAC> &list_A1,
51 const std::map<std::string,bool> &flags);
52 inline std::map<TA, std::map<TAC, std::array<RI::Tensor<Tdata>, 3>>>
55 const std::vector<TA> &list_A0,
56 const std::vector<TAC> &list_A1,
57 const std::map<std::string,bool> &flags);
58 std::pair<std::map<TA, std::map<TAC, RI::Tensor<Tdata>>>,
59 std::map<TA, std::map<TAC, std::array<RI::Tensor<Tdata>, 3>>>>
62 const std::vector<TA> &list_A0,
63 const std::vector<TAC> &list_A1,
64 const std::map<std::string,bool> &flags);
69 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
lcaos;
70 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
abfs;
71 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
abfs_ccp;
78 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,RI::Tensor<Tdata>>>>
Vws;
79 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,RI::Tensor<Tdata>>>>
Cws;
80 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,std::array<RI::Tensor<Tdata>,3>>>>
dVws;
81 std::map<int,std::map<int,std::map<Abfs::Vector3_Order<double>,std::array<RI::Tensor<Tdata>,3>>>>
dCws;
91 template<
typename Tresult>
96 const std::map<std::string,bool> &flags)>;
98 template<
typename Tresult>
99 std::map<TA,std::map<TAC,Tresult>>
102 const std::vector<TA>& list_A0,
103 const std::vector<TAC>& list_A1,
104 const std::map<std::string, bool>& flags,
108 inline double cal_V_Rcut(
const int it0,
const int it1);
109 inline double cal_C_Rcut(
const int it0,
const int it1);
111 inline RI::Tensor<Tdata>
116 const std::map<std::string,bool> &flags);
117 inline std::array<RI::Tensor<Tdata>,3>
122 const std::map<std::string,bool> &flags);
123 std::pair<RI::Tensor<Tdata>, std::array<RI::Tensor<Tdata>,3>>
128 const std::map<std::string,bool> &flags);
130 template<
typename To11,
typename Tfunc>
135 const bool &flag_writable_o11ws,
136 pthread_rwlock_t &rwlock_o11,
138 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:306
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:336
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:291
std::vector< double > abfs_ccp_rcut
Definition LRI_CV.h:75
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, RI::Tensor< Tdata > > > > Vws
Definition LRI_CV.h:78
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:157
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, std::array< RI::Tensor< Tdata >, 3 > > > > dVws
Definition LRI_CV.h:80
std::function< double(const int it0, const int it1)> T_func_cal_Rcut
Definition LRI_CV.h:97
~LRI_CV()
Definition LRI_CV.hpp:30
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > lcaos
Definition LRI_CV.h:69
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:96
LRI_CV()
Definition LRI_CV.hpp:21
int TA
Definition LRI_CV.h:27
pthread_rwlock_t rwlock_dVw
Definition LRI_CV.h:85
std::vector< double > lcaos_rcut
Definition LRI_CV.h:74
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:200
ModuleBase::Element_Basis_Index::IndexLNM index_lcaos
Definition LRI_CV.h:72
Matrix_Orbs21 m_abfslcaos_lcaos
Definition LRI_CV.h:89
Matrix_Orbs11 m_abfs_abfs
Definition LRI_CV.h:88
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:178
pthread_rwlock_t rwlock_Cw
Definition LRI_CV.h:84
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs
Definition LRI_CV.h:70
std::pair< TA, TC > TAC
Definition LRI_CV.h:29
ModuleBase::Element_Basis_Index::IndexLNM index_abfs
Definition LRI_CV.h:73
size_t get_index_abfs_size(const size_t &iat)
Definition LRI_CV.h:66
std::array< int, 3 > TC
Definition LRI_CV.h:28
pthread_rwlock_t rwlock_dCw
Definition LRI_CV.h:86
double cal_C_Rcut(const int it0, const int it1)
Definition LRI_CV.hpp:103
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, std::array< RI::Tensor< Tdata >, 3 > > > > dCws
Definition LRI_CV.h:81
std::map< int, std::map< int, std::map< Abfs::Vector3_Order< double >, RI::Tensor< Tdata > > > > Cws
Definition LRI_CV.h:79
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)
Definition LRI_CV.hpp:40
double cal_V_Rcut(const int it0, const int it1)
Definition LRI_CV.hpp:98
pthread_rwlock_t rwlock_Vw
Definition LRI_CV.h:83
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:237
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs_ccp
Definition LRI_CV.h:71
Definition Matrix_Orbs11.h:22
Definition Matrix_Orbs21.h:21
std::vector< Index_T > IndexLNM
Definition element_basis_index.h:41
Definition ORB_gaunt_table.h:9