@@ -202,8 +202,12 @@ void RDMFT<TK, TR>::cal_Hk_Hpsi()
202202 HkPsi ( ParaV, hsk_hartree->get_hk ()[0 ], wfc (ik, 0 , 0 ), H_wfc_hartree (ik, 0 , 0 ));
203203
204204 // get wfc * H(k)_wfc
205- psiDotPsi ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_TV (ik, 0 , 0 ), Eij_TV, &(wfcHwfc_TV (ik, 0 )) );
206- psiDotPsi ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_hartree (ik, 0 , 0 ), Eij_hartree, &(wfcHwfc_hartree (ik, 0 )) );
205+ // psiDotPsi( ParaV, para_Eij, wfc(ik, 0, 0), H_wfc_TV(ik, 0, 0), Eij_TV, &(wfcHwfc_TV(ik, 0)) );
206+ // psiDotPsi( ParaV, para_Eij, wfc(ik, 0, 0), H_wfc_hartree(ik, 0, 0), Eij_hartree, &(wfcHwfc_hartree(ik, 0)) );
207+ cal_bra_op_ket ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_TV (ik, 0 , 0 ), Eij_TV );
208+ cal_bra_op_ket ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_hartree (ik, 0 , 0 ), Eij_hartree );
209+ _diagonal_in_serial ( para_Eij, Eij_TV, &(wfcHwfc_TV (ik, 0 )) );
210+ _diagonal_in_serial ( para_Eij, Eij_hartree, &(wfcHwfc_hartree (ik, 0 )) );
207211
208212#ifdef __EXX
209213 if (GlobalC::exx_info.info_global .cal_exx )
@@ -212,7 +216,9 @@ void RDMFT<TK, TR>::cal_Hk_Hpsi()
212216
213217 V_exx_XC->contributeHk (ik);
214218 HkPsi ( ParaV, hsk_exx_XC->get_hk ()[0 ], wfc (ik, 0 , 0 ), H_wfc_exx_XC (ik, 0 , 0 ));
215- psiDotPsi ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_exx_XC (ik, 0 , 0 ), Eij_exx_XC, &(wfcHwfc_exx_XC (ik, 0 )) );
219+ // psiDotPsi( ParaV, para_Eij, wfc(ik, 0, 0), H_wfc_exx_XC(ik, 0, 0), Eij_exx_XC, &(wfcHwfc_exx_XC(ik, 0)) );
220+ cal_bra_op_ket ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_exx_XC (ik, 0 , 0 ), Eij_exx_XC );
221+ _diagonal_in_serial ( para_Eij, Eij_exx_XC, &(wfcHwfc_exx_XC (ik, 0 )) );
216222
217223 for (int iloc=0 ; iloc<HK_XC.size (); ++iloc) HK_XC[iloc] += hsk_exx_XC->get_hk ()[iloc];
218224 }
@@ -223,7 +229,9 @@ void RDMFT<TK, TR>::cal_Hk_Hpsi()
223229
224230 V_dft_XC->contributeHk (ik);
225231 HkPsi ( ParaV, hsk_dft_XC->get_hk ()[0 ], wfc (ik, 0 , 0 ), H_wfc_dft_XC (ik, 0 , 0 ));
226- psiDotPsi ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_dft_XC (ik, 0 , 0 ), Eij_exx_XC, &(wfcHwfc_dft_XC (ik, 0 )) );
232+ // psiDotPsi( ParaV, para_Eij, wfc(ik, 0, 0), H_wfc_dft_XC(ik, 0, 0), Eij_exx_XC, &(wfcHwfc_dft_XC(ik, 0)) );
233+ cal_bra_op_ket ( ParaV, para_Eij, wfc (ik, 0 , 0 ), H_wfc_dft_XC (ik, 0 , 0 ), Eij_XC );
234+ _diagonal_in_serial ( para_Eij, Eij_XC, &(wfcHwfc_dft_XC (ik, 0 )) );
227235
228236 for (int iloc=0 ; iloc<HK_XC.size (); ++iloc) HK_XC[iloc] += hsk_dft_XC->get_hk ()[iloc];
229237 }
0 commit comments