11 std::vector<typename ToComplex<T>::type> rhog(rho_basis.
npw);
16 void grad(
const std::vector<T>& rhor,
21 grad(rhor.data(), gradrho.data(), rho_basis, tpiba);
30 std::vector<typename ToComplex<T>::type> rhog(rho_basis.
npw);
31 std::vector<T> tmp_rhor(rho_basis.
nrxx);
33 for (
int i = 0;i < 3;++i)
35 for (
int ig = 0; ig < rho_basis.
npw; ig++) { rhog[ig] *= pow(rho_basis.
gcar[ig][i], 2); }
36 rho_basis.
recip2real(rhog.data(), tmp_rhor.data());
37 for (
int ir = 0; ir < rho_basis.
nrxx; ir++) { lapn[ir] -= tmp_rhor[ir] * tpiba2; }
41 void lapl(
const std::vector<T>& rhor,
46 lapl(rhor.data(), lapn.data(), rho_basis, tpiba2);
3 elements vector
Definition vector3.h:22
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
int nrxx
Definition pw_basis.h:120
void real2recip(const FPTYPE *in, std::complex< FPTYPE > *out, const bool add=false, const FPTYPE factor=1.0) const
transform real space to reciprocal space
Definition pw_transform.cpp:79
int npw
Definition pw_basis.h:115
void recip2real(const std::complex< FPTYPE > *in, FPTYPE *out, const bool add=false, const FPTYPE factor=1.0) const
transform reciprocal space to real space
Definition pw_transform.cpp:205
ModuleBase::Vector3< double > * gcar
Definition pw_basis.h:131
static void grad_rho(const std::complex< double > *rhog, ModuleBase::Vector3< double > *gdr, const ModulePW::PW_Basis *rho_basis, const double tpiba)
Definition xc_functional_gradcorr.cpp:657
#define T
Definition exp.cpp:237
void grad(const T *rhor, ModuleBase::Vector3< T > *gradrho, const ModulePW::PW_Basis &rho_basis, const double &tpiba)
Definition lr_util_xc.hpp:6
void lapl(const T *rhor, T *lapn, const ModulePW::PW_Basis &rho_basis, const double &tpiba2)
Definition lr_util_xc.hpp:25
void ZEROS(std::complex< T > *u, const TI n)
Definition global_function.h:109