File tree Expand file tree Collapse file tree
source/source_hamilt/module_xc Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -968,22 +968,19 @@ void XC_Functional::laplacian_rho(
968968{
969969 std::vector<std::complex <double >> lapl_tmp (rho_basis->nmaxgr );
970970
971- for (int ir=0 ; ir<rho_basis->nrxx ; ir++)
972- {
973- lapl[ir] = 0.0 ;
974- }
975-
976- for (int i=0 ; i<3 ; i++)
971+ for (int ig=0 ; ig<rho_basis->npw ; ig++)
977972 {
978- for (int ig=0 ; ig<rho_basis->npw ; ig++)
973+ double g2 = 0.0 ;
974+ for (int i=0 ; i<3 ; i++)
979975 {
980- lapl_tmp[ig] = -rhog[ig] * rho_basis->gcar [ig][i] * rho_basis->gcar [ig][i];
981- }
982- rho_basis->recip2real (lapl_tmp.data (), lapl_tmp.data ());
983- for (int ir=0 ; ir<rho_basis->nrxx ; ir++)
984- {
985- lapl[ir] += lapl_tmp[ir].real () * tpiba * tpiba;
976+ g2 += rho_basis->gcar [ig][i] * rho_basis->gcar [ig][i];
986977 }
978+ lapl_tmp[ig] = -rhog[ig] * g2;
979+ }
980+ rho_basis->recip2real (lapl_tmp.data (), lapl_tmp.data ());
981+ for (int ir=0 ; ir<rho_basis->nrxx ; ir++)
982+ {
983+ lapl[ir] = lapl_tmp[ir].real () * tpiba * tpiba;
987984 }
988985}
989986
You can’t perform that action at this time.
0 commit comments