Skip to content

Commit 5cfcee2

Browse files
committed
Fix: update weight in ldos
1 parent 2694873 commit 5cfcee2

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

source/module_io/cal_ldos.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,16 @@ void Cal_ldos<T>::cal_ldos_pw(const elecstate::ElecStatePW<std::complex<double>>
3333
for (int ib = 0; ib < nbands; ib++)
3434
{
3535
pelec->basis->recip2real(&psi(ib, 0), wfcr.data(), ik);
36+
3637
const double eigenval = (pelec->ekb(ik, ib) - efermi) * ModuleBase::Ry_to_eV;
38+
double weight = en > 0 ? pelec->klist->wk[ik] - pelec->wg(ik, ib) : pelec->wg(ik, ib);
39+
weight /= ucell.omega;
40+
3741
if (eigenval >= emin && eigenval <= emax)
3842
{
3943
for (int ir = 0; ir < pelec->basis->nrxx; ir++)
4044
{
41-
ldos[ir] += pelec->klist->wk[ik] * norm(wfcr[ir]);
45+
ldos[ir] += weight * norm(wfcr[ir]);
4246
}
4347
}
4448
}
@@ -78,7 +82,7 @@ void Cal_ldos<T>::cal_ldos_lcao(const elecstate::ElecStateLCAO<T>* pelec,
7882
const double eigenval = (pelec->ekb(ik, ib) - efermi) * ModuleBase::Ry_to_eV;
7983
if (eigenval >= emin && eigenval <= emax)
8084
{
81-
weight(ik, ib) = pelec->klist->wk[ik];
85+
weight(ik, ib) = en > 0 ? pelec->klist->wk[ik] - pelec->wg(ik, ib) : pelec->wg(ik, ib);
8286
}
8387
}
8488
}

0 commit comments

Comments
 (0)