13#include <RI/global/Tensor.h>
45 RI::Tensor<std::complex<double>>
get_Vq(
const int& lp_max,
52 std::array<RI::Tensor<std::complex<double>>, 3>
get_dVq(
70 const double& exponent,
71 const bool& exclude_Gamma,
80 const double& exponent,
81 const bool& exclude_Gamma,
93 std::vector<ModuleBase::Vector3<double>>
kvec_c;
94 std::vector<std::vector<ModuleBase::Vector3<double>>>
qGvecs;
97 std::vector<ModuleBase::matrix>
ylm;
98 template <
typename Tresult>
100 template <
typename Tresult>
102 = std::function<std::vector<Tresult>(
const double& power,
104 const double& exponent,
105 const bool& exclude_Gamma,
108 template <
typename Tout,
typename Tin>
118 template <
typename Tresult>
123 const double& exponent,
124 const bool& exclude_Gamma,
Definition gaussian_abfs.h:19
void init(const UnitCell &ucell, const int &Lmax, const std::vector< ModuleBase::Vector3< double > > &kvec_c, const ModuleBase::Matrix3 &G, const double &lambda)
Calculating bare Coulomb integrals in reciprocal space, using Gaussians.
Definition gaussian_abfs.cpp:23
std::vector< std::vector< ModuleBase::Vector3< double > > > qGvecs
Definition gaussian_abfs.h:94
std::vector< ModuleBase::Vector3< double > > kvec_c
Definition gaussian_abfs.h:93
double tpiba
Definition gaussian_abfs.h:90
std::vector< ModuleBase::matrix > ylm
Definition gaussian_abfs.h:97
RI::Tensor< std::complex< double > > get_Vq(const int &lp_max, const int &lq_max, const size_t &ik, const double &chi, const ModuleBase::Vector3< double > &tau, const ModuleBase::realArray &gaunt)
Definition gaussian_abfs.cpp:101
std::function< std::vector< Tresult >(const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax)> T_func_DPcal_lattice_sum
Definition gaussian_abfs.h:106
static double double_factorial(const int &n)
Definition gaussian_abfs.cpp:303
std::vector< std::vector< bool > > check_gamma
Definition gaussian_abfs.h:96
std::vector< int > n_cells
Definition gaussian_abfs.h:95
static std::vector< int > get_n_supercells(const double &lat0, const ModuleBase::Matrix3 &G, const double &Gmax)
Definition gaussian_abfs.cpp:423
std::vector< Tresult > DPcal_lattice_sum(const double &tpiba, const size_t &ik, const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax, const T_func_DPcal_phase< Tresult > &func_DPcal_phase)
double lat0
Definition gaussian_abfs.h:91
std::array< RI::Tensor< std::complex< double > >, 3 > get_dVq(const int &lp_max, const int &lq_max, const size_t &ik, const double &chi, const ModuleBase::Vector3< double > &tau, const ModuleBase::realArray &gaunt)
Definition gaussian_abfs.cpp:134
Numerical_Orbital_Lm Gauss(const Numerical_Orbital_Lm &orb, const double &lambda)
Definition gaussian_abfs.cpp:257
double lambda
Definition gaussian_abfs.h:89
std::vector< std::array< std::complex< double >, 3 > > get_d_lattice_sum(const double &tpiba, const size_t &ik, const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax, const ModuleBase::Vector3< double > &tau)
Definition gaussian_abfs.cpp:333
std::vector< std::complex< double > > get_lattice_sum(const double &tpiba, const size_t &ik, const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax, const ModuleBase::Vector3< double > &tau)
Definition gaussian_abfs.cpp:316
double omega
Definition gaussian_abfs.h:92
Tout DPcal_Vq_dVq(const double &omega, const int &lp_max, const int &lq_max, const size_t &ik, const double &chi, const ModuleBase::Vector3< double > &tau, const ModuleBase::realArray &gaunt, const T_func_DPcal_lattice_sum< Tin > &func_DPcal_lattice_sum)
std::function< Tresult(const ModuleBase::Vector3< double > &vec)> T_func_DPcal_phase
Definition gaussian_abfs.h:99
3x3 matrix and related mathamatical operations
Definition matrix3.h:19
3 elements vector
Definition vector3.h:24
double float array
Definition realarray.h:21
Definition ORB_atomic_lm.h:21