Skip to content

Commit 920f231

Browse files
committed
Refactor: Using psi only in PW tests in tests/integral/, nscf and lcao_in_pw not included
1 parent 491f052 commit 920f231

File tree

10 files changed

+160
-118
lines changed

10 files changed

+160
-118
lines changed

source/module_esolver/esolver_ks_pw.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ namespace ModuleESolver
228228
this->phami = new hamilt::HamiltPW(hpw);
229229
}
230230
//initial psi
231-
GlobalC::wf.evc_transform_psi();
231+
//GlobalC::wf.evc_transform_psi();
232232
}
233233

234234
void ESolver_KS_PW::eachiterinit(const int istep, const int iter)
@@ -406,7 +406,7 @@ namespace ModuleESolver
406406
{
407407
//temporary transform psi to evc
408408
// psi back to evc
409-
GlobalC::wf.psi_transform_evc();
409+
//GlobalC::wf.psi_transform_evc();
410410
for(int ik=0; ik<this->pelec->ekb.nr; ++ik)
411411
{
412412
for(int ib=0; ib<this->pelec->ekb.nc; ++ib)

source/src_io/energy_dos_pw.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ void energy::perform_dos_pw(void)
127127
//scale up a little bit so the end peaks are displaced better
128128
const double scl=this->dos_scale;
129129
double delta=(emax-emin)*scl;
130-
std::cout << scl;
130+
//std::cout << scl;
131131
emax=emax+delta/2.0;
132132
emin=emin-delta/2.0;
133133

@@ -138,7 +138,7 @@ void energy::perform_dos_pw(void)
138138

139139
//determine #. energy points
140140
const double de_ev = this->dos_edelta_ev;
141-
std::cout << de_ev;
141+
//std::cout << de_ev;
142142

143143
const int npoints = static_cast<int>(std::floor ( ( emax - emin ) / de_ev ));
144144
const int np=npoints;

source/src_pw/forces.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ void Forces::cal_force_nl(ModuleBase::matrix& forcenl)
681681
for (int ik = 0;ik < GlobalC::kv.nks;ik++)
682682
{
683683
if (GlobalV::NSPIN==2) GlobalV::CURRENT_SPIN = GlobalC::kv.isk[ik];
684-
GlobalC::wf.npw = GlobalC::kv.ngk[ik];
684+
const int nbasis = GlobalC::kv.ngk[ik];
685685
// generate vkb
686686
if (GlobalC::ppcell.nkb > 0)
687687
{
@@ -697,9 +697,11 @@ void Forces::cal_force_nl(ModuleBase::matrix& forcenl)
697697
{
698698
for (int i=0;i<nkb;i++)
699699
{
700-
for (int ig=0; ig<GlobalC::wf.npw; ig++)
700+
const std::complex<double>* ppsi = &(GlobalC::wf.psi[0](ik, ib, 0));
701+
const std::complex<double>* pvkb = &(GlobalC::ppcell.vkb(i, 0));
702+
for (int ig=0; ig<nbasis; ig++)
701703
{
702-
becp(i,ib) += GlobalC::wf.evc[ik](ib,ig)* conj( GlobalC::ppcell.vkb(i,ig) );
704+
becp(i,ib) += ppsi[ig] * conj( pvkb[ig] );
703705
}
704706
}
705707
}
@@ -715,17 +717,17 @@ void Forces::cal_force_nl(ModuleBase::matrix& forcenl)
715717
{
716718
if (ipol==0)
717719
{
718-
for (int ig=0; ig<GlobalC::wf.npw; ig++)
720+
for (int ig=0; ig<nbasis; ig++)
719721
vkb1(i, ig) = GlobalC::ppcell.vkb(i, ig) * ModuleBase::NEG_IMAG_UNIT * GlobalC::pw.get_G_cartesian_projection(GlobalC::wf.igk(ik, ig), 0);
720722
}
721723
if (ipol==1)
722724
{
723-
for (int ig=0; ig<GlobalC::wf.npw; ig++)
725+
for (int ig=0; ig<nbasis; ig++)
724726
vkb1(i, ig) = GlobalC::ppcell.vkb(i, ig) * ModuleBase::NEG_IMAG_UNIT * GlobalC::pw.get_G_cartesian_projection(GlobalC::wf.igk(ik, ig), 1);
725727
}
726728
if (ipol==2)
727729
{
728-
for (int ig=0; ig<GlobalC::wf.npw; ig++)
730+
for (int ig=0; ig<nbasis; ig++)
729731
vkb1(i, ig) = GlobalC::ppcell.vkb(i, ig) * ModuleBase::NEG_IMAG_UNIT * GlobalC::pw.get_G_cartesian_projection(GlobalC::wf.igk(ik, ig), 2);
730732
}
731733
}
@@ -737,9 +739,11 @@ void Forces::cal_force_nl(ModuleBase::matrix& forcenl)
737739
if(GlobalC::wf.wg(ik, ib) < ModuleBase::threshold_wg) continue;
738740
for (int i=0; i<nkb; i++)
739741
{
740-
for (int ig=0; ig<GlobalC::wf.npw; ig++)
742+
const std::complex<double>* ppsi = &(GlobalC::wf.psi[0](ik, ib, 0));
743+
const std::complex<double>* pvkb1 = &(vkb1(i, 0));
744+
for (int ig=0; ig<nbasis; ig++)
741745
{
742-
dbecp(i,ib, ipol) += conj( vkb1(i,ig) ) * GlobalC::wf.evc[ik](ib,ig) ;
746+
dbecp(i,ib, ipol) += conj( pvkb1[ig] ) * ppsi[ig] ;
743747
}
744748
}
745749
}

source/src_pw/stress_func_kin.cpp

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,22 +51,12 @@ void Stress_Func::stress_kin(ModuleBase::matrix& sigma)
5151
{
5252
for(int ibnd=0;ibnd<GlobalV::NBANDS;ibnd++)
5353
{
54+
const std::complex<double>* ppsi = &(GlobalC::wf.psi[0](ik, ibnd, 0));
5455
for(int i=0;i<npw;i++)
5556
{
56-
if(0)
57-
{
58-
s_kin[l][m] +=
59-
GlobalC::wf.wg(ik,ibnd)*gk[l][i]*gk[m][i]*kfac[i]
60-
*(double((conj(GlobalC::wf.evc[ik](ibnd, i))
61-
*GlobalC::wf.evc[ik](ibnd, i)).real())+
62-
double((conj(GlobalC::wf.evc[ik](ibnd, i))*GlobalC::wf.evc[ik](ibnd, i+npwx)).real()));
63-
}
64-
else
65-
{
66-
s_kin[l][m] +=
67-
GlobalC::wf.wg(ik, ibnd)*gk[l][i]*gk[m][i]*kfac[i]
68-
*(double((conj(GlobalC::wf.evc[ik](ibnd, i))*GlobalC::wf.evc[ik](ibnd, i)).real()));
69-
}
57+
s_kin[l][m] +=
58+
GlobalC::wf.wg(ik, ibnd)*gk[l][i]*gk[m][i]*kfac[i]
59+
*(double((conj(ppsi[i]) * ppsi[i]).real()));
7060
}
7161
}
7262
}

source/src_pw/stress_func_mgga.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ void Stress_Func::stress_mgga(ModuleBase::matrix& sigma)
4646
const double w1 = GlobalC::wf.wg(ik, ibnd) / GlobalC::ucell.omega;
4747
for(int ig = 0; ig<npw; ig++)
4848
{
49-
psi[ig]=GlobalC::wf.evc[ik](ibnd,ig);
49+
psi[ig]=GlobalC::wf.psi[0](ik, ibnd, ig);
5050
}
5151
XC_Functional::grad_wfc(psi, ik, gradwfc, npw);
5252

source/src_pw/stress_func_nl.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,11 @@ void Stress_Func::stress_nl(ModuleBase::matrix& sigma)
6060
if(GlobalC::wf.wg(ik, ib) < ModuleBase::threshold_wg) continue;
6161
for (int i = 0; i < nkb; i++)
6262
{
63-
for (int ig = 0; ig < GlobalC::wf.npw; ig++) {
64-
becp(i, ib) += GlobalC::wf.evc[ik](ib, ig) *
65-
conj(GlobalC::ppcell.vkb(i, ig));
63+
const std::complex<double>* ppsi = &(GlobalC::wf.psi[0](ik, ib, 0));
64+
const std::complex<double>* pvkb = &(GlobalC::ppcell.vkb(i, 0));
65+
for (int ig = 0; ig < GlobalC::wf.npw; ig++)
66+
{
67+
becp(i, ib) += ppsi[ig] * conj(pvkb[ig]);
6668
}
6769
}
6870
}
@@ -144,10 +146,12 @@ void Stress_Func::stress_nl(ModuleBase::matrix& sigma)
144146
if(GlobalC::wf.wg(ik, ib) < ModuleBase::threshold_wg) continue;
145147
for (int i=0; i<nkb; i++)
146148
{
149+
const std::complex<double>* ppsi = &(GlobalC::wf.psi[0](ik, ib, 0));
150+
const std::complex<double>* pdbecp_noevc = &(dbecp_noevc(i, 0));
147151
for (int ig=0; ig<GlobalC::wf.npw; ig++)
148152
{
149153
//first term
150-
dbecp(i,ib) += GlobalC::wf.evc[ik](ib ,ig) * dbecp_noevc(i, ig);
154+
dbecp(i,ib) += ppsi[ig] * pdbecp_noevc[ig];
151155
}//end ig
152156
}//end i
153157
}//end ib

0 commit comments

Comments
 (0)