diff --git a/deps/libpaw_interface b/deps/libpaw_interface index bdf13fb3a83..ad74d11ad71 160000 --- a/deps/libpaw_interface +++ b/deps/libpaw_interface @@ -1 +1 @@ -Subproject commit bdf13fb3a837e71c5a9ecccd2caf71aeaa3578ad +Subproject commit ad74d11ad711006a5837ce81f6e6dbd34758ff0b diff --git a/source/module_hsolver/hsolver_pw.cpp b/source/module_hsolver/hsolver_pw.cpp index 02748adadcd..3e18cfdc296 100644 --- a/source/module_hsolver/hsolver_pw.cpp +++ b/source/module_hsolver/hsolver_pw.cpp @@ -203,6 +203,44 @@ void HSolverPW::solve(hamilt::Hamilt* pHamilt, GlobalC::paw_cell.reset_rhoij(); for (int ik = 0; ik < this->wfc_basis->nks; ++ik) { + const int npw = this->wfc_basis->npwk[ik]; + ModuleBase::Vector3 *_gk = new ModuleBase::Vector3[npw]; + for (int ig = 0;ig < npw; ig++) + { + _gk[ig] = this->wfc_basis->getgpluskcar(ik,ig); + } + + double* kpt; + kpt = new double[3]; + kpt[0] = this->wfc_basis->kvec_c[ik].x; + kpt[1] = this->wfc_basis->kvec_c[ik].y; + kpt[2] = this->wfc_basis->kvec_c[ik].z; + + double ** kpg; + kpg = new double*[npw]; + for(int ipw=0;ipwwfc_basis->get_ig2ix(ik).data(), + this->wfc_basis->get_ig2iy(ik).data(), + this->wfc_basis->get_ig2iz(ik).data(), + (const double **) kpg,GlobalC::ucell.tpiba); + + delete[] kpt; + for(int ipw = 0; ipw < npw; ipw++) + { + delete[] kpg[ipw]; + } + delete[] kpg; + + GlobalC::paw_cell.get_vkb(); + psi.fix_k(ik); GlobalC::paw_cell.set_currentk(ik); int nbands = psi.get_nbands();