Skip to content

Commit 585e5a7

Browse files
committed
use something else to replace the for-loop
1 parent 4463fe4 commit 585e5a7

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

source/module_lr/potentials/xc_kernel.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,15 +144,17 @@ void LR::KernelXC::f_xc_libxc(const int& nspin, const double& omega, const doubl
144144

145145
if (1 == nspin)
146146
{
147+
using V3 = ModuleBase::Vector3<double>;
147148
// 0. drho
148-
this->grad_kernel_set_.emplace("drho_gs", std::vector<ModuleBase::Vector3<double>>(nrxx));
149-
for (int ir = 0; ir < nrxx; ++ir)this->grad_kernel_set_["drho_gs"][ir] = gradrho[0][ir];
149+
this->grad_kernel_set_.emplace("drho_gs", gradrho[0]);
150150
// 1. $2f^{\rho\sigma}*\nabla\rho$
151-
this->grad_kernel_set_.emplace("2_v2rhosigma_drho", std::vector<ModuleBase::Vector3<double>>(nrxx));
152-
for (int ir = 0; ir < nrxx; ++ir)this->grad_kernel_set_["2_v2rhosigma_drho"][ir] = gradrho[0][ir] * v2rs.at(ir) * 2.;
151+
this->grad_kernel_set_.emplace("2_v2rhosigma_drho", std::vector<V3>(nrxx));
152+
std::transform(gradrho[0].begin(), gradrho[0].end(), v2rs.begin(), this->grad_kernel_set_["2_v2rhosigma_drho"].begin(),
153+
[](const V3& a, const V3& b) {return a * b * 2.; });
153154
// 2. $4f^{\sigma\sigma}*\nabla\rho$
154-
this->grad_kernel_set_.emplace("4_v2sigma2_drho", std::vector<ModuleBase::Vector3<double>>(nrxx));
155-
for (int ir = 0; ir < nrxx; ++ir)this->grad_kernel_set_["4_v2sigma2_drho"][ir] = sigma.at(ir) * v2s2.at(ir) * 4.;
155+
this->grad_kernel_set_.emplace("4_v2sigma2_drho", std::vector<V3>(nrxx));
156+
std::transform(sigma.begin(), sigma.end(), v2s2.begin(), this->grad_kernel_set_["4_v2sigma2_drho"].begin(),
157+
[](const V3& a, const V3& b) {return a * b * 4.; });
156158
}
157159
// else if (2 == nspin) // wrong, to be fixed
158160
// {

0 commit comments

Comments
 (0)