13#include <RI/physics/Exx.h>
25 template<
typename T,
typename Tdata>
28 template<
typename T,
typename Tdata>
33 template<
typename T,
typename TR>
40template<
typename Tdata>
46 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
abfs_ccp;
49template<
typename Tdata>
55 static constexpr std::size_t
Ndim = 3;
56 using TC = std::array<Tcell,Ndim>;
57 using TAC = std::pair<TA,TC>;
58 using TatomR = std::array<double,Ndim>;
66 const MPI_Comm &mpi_comm_in,
72 const std::vector<std::map<
TA, std::map<
TAC, RI::Tensor<Tdata>>>>& Ds,
83 std::vector< std::map<TA, std::map<TAC, RI::Tensor<Tdata>>>>
Hexxs;
96 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
lcaos;
97 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>>
abfs;
99 std::map<Conv_Coulomb_Pot_K::Coulomb_Method, Exx_Obj<Tdata>>
exx_objs;
110 friend class RPA_LRI<double, Tdata>;
120#include "Exx_LRI.hpp"
Definition Exx_LRI_interface.h:32
ModuleBase::matrix stress_exx
Definition Exx_LRI.h:86
void post_process_Hexx(std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > &Hexxs_io) const
Definition Exx_LRI.hpp:237
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > lcaos
Definition Exx_LRI.h:96
std::map< Conv_Coulomb_Pot_K::Coulomb_Method, std::pair< bool, std::map< Conv_Coulomb_Pot_K::Coulomb_Type, std::vector< std::map< std::string, std::string > > > > > coulomb_settings
Definition Exx_LRI.h:105
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs
Definition Exx_LRI.h:97
void init(const MPI_Comm &mpi_comm_in, const UnitCell &ucell, const K_Vectors &kv_in, const LCAO_Orbitals &orb)
Definition Exx_LRI.hpp:29
void reset_Vs(const std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > &Vs_in)
Definition Exx_LRI.h:80
static constexpr std::size_t Ndim
Definition Exx_LRI.h:55
const Exx_Info::Exx_Info_RI & info
Definition Exx_LRI.h:90
ORB_gaunt_table MGT
Definition Exx_LRI.h:93
Exx_LRI(const Exx_Info::Exx_Info_RI &info_in)
Definition Exx_LRI.h:61
std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > Hexxs
Definition Exx_LRI.h:83
ModuleBase::matrix force_exx
Definition Exx_LRI.h:85
void cal_exx_elec(const std::vector< std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > > &Ds, const UnitCell &ucell, const Parallel_Orbitals &pv, const ModuleSymmetry::Symmetry_rotation *p_symrot=nullptr)
Definition Exx_LRI.hpp:185
double post_process_Eexx(const double &Eexx_in) const
Definition Exx_LRI.hpp:248
std::pair< TA, TC > TAC
Definition Exx_LRI.h:57
void reset_Cs(const std::map< TA, std::map< TAC, RI::Tensor< Tdata > > > &Cs_in)
Definition Exx_LRI.h:79
int TA
Definition Exx_LRI.h:53
double Eexx
Definition Exx_LRI.h:84
std::map< Conv_Coulomb_Pot_K::Coulomb_Method, Exx_Obj< Tdata > > exx_objs
Definition Exx_LRI.h:99
void cal_exx_ions(const UnitCell &ucell, const bool write_cv=false)
Definition Exx_LRI.hpp:70
MPI_Comm mpi_comm
Definition Exx_LRI.h:91
void cal_exx_force(const int &nat)
Definition Exx_LRI.hpp:274
std::array< Tcell, Ndim > TC
Definition Exx_LRI.h:56
std::array< double, Ndim > TatomR
Definition Exx_LRI.h:58
RI::Exx< TA, Tcell, Ndim, Tdata > exx_lri
Definition Exx_LRI.h:101
Exx_LRI operator=(const Exx_LRI &)=delete
int Tcell
Definition Exx_LRI.h:54
void cal_exx_stress(const double &omega, const double &lat0)
Definition Exx_LRI.hpp:297
const K_Vectors * p_kv
Definition Exx_LRI.h:92
Exx_LRI operator=(Exx_LRI &&)
std::vector< double > orb_cutoff_
Definition Exx_LRI.h:94
LRI_CV< Tdata > cv
Definition Exx_LRI.h:45
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > abfs_ccp
Definition Exx_LRI.h:46
Excited State Solver: Linear Response TDDFT (Tamm Dancoff Approximation)
Definition esolver_lrtd_lcao.h:30
Definition symmetry_rotation.h:16
Definition ORB_gaunt_table.h:9
Definition parallel_orbitals.h:9
std::complex< double > complex
Definition diago_cusolver.cpp:13
Coulomb_Type
Definition conv_coulomb_pot_k.h:10
Coulomb_Method
Definition conv_coulomb_pot_k.h:16
Definition esolver_ks_lcao.h:37
double V_threshold
Definition exx_info.h:61
double C_threshold
Definition exx_info.h:60