diff --git a/source/module_hamilt_lcao/module_deepks/LCAO_deepks_pdm.cpp b/source/module_hamilt_lcao/module_deepks/LCAO_deepks_pdm.cpp index 80e40c5a4b..0f1a195707 100644 --- a/source/module_hamilt_lcao/module_deepks/LCAO_deepks_pdm.cpp +++ b/source/module_hamilt_lcao/module_deepks/LCAO_deepks_pdm.cpp @@ -176,7 +176,8 @@ void LCAO_Deepks::cal_projected_DM(const elecstate::DensityMatrixget_indexes_row(ibt1); const int row_size = row_indexes.size(); - if(row_size == 0) continue; + if(row_size == 0) { continue; +} // no possible to unexist key std::vector s_1t(trace_alpha_size * row_size); @@ -210,7 +211,8 @@ void LCAO_Deepks::cal_projected_DM(const elecstate::DensityMatrixget_indexes_col(ibt2); const int col_size = col_indexes.size(); - if(col_size == 0) continue; + if(col_size == 0) { continue; +} std::vector s_2t(trace_alpha_size * col_size); // no possible to unexist key @@ -228,16 +230,20 @@ void LCAO_Deepks::cal_projected_DM(const elecstate::DensityMatrixget_DMR_vector().size();is++) { auto* tmp = dm->get_DMR_vector()[is]->find_matrix(ibt1, ibt2, 0, 0, 0); -#ifdef __DEBUG - assert(tmp != nullptr); -#endif + if(tmp == nullptr) + { + // in case of no deepks_scf but out_deepks_label, size of DMR would mismatch with deepks-orbitals + dm_current = nullptr; + break; + } dm_current = tmp->get_pointer(); for(int idm=0;idmget_indexes_row(ibt1); const int row_size = row_indexes.size(); - if(row_size == 0) continue; + if(row_size == 0) { continue; +} key_tuple key_1(ibt1,dR1.x,dR1.y,dR1.z); - if(this->nlm_save_k[iat].find(key_1) == this->nlm_save_k[iat].end()) continue; + if(this->nlm_save_k[iat].find(key_1) == this->nlm_save_k[iat].end()) { continue; +} std::vector s_1t(trace_alpha_size * row_size); std::vector g_1dmt(trace_alpha_size * row_size, 0.0); for(int irow=0;irowget_indexes_col(ibt2); const int col_size = col_indexes.size(); - if(col_size == 0) continue; + if(col_size == 0) { continue; +} std::vector s_2t(trace_alpha_size * col_size); key_tuple key_2(ibt2,dR2.x,dR2.y,dR2.z); - if(this->nlm_save_k[iat].find(key_2) == this->nlm_save_k[iat].end()) continue; + if(this->nlm_save_k[iat].find(key_2) == this->nlm_save_k[iat].end()) { continue; +} for(int icol=0;icolnlm_save_k[iat][key_2][col_indexes[icol]][0].data(); @@ -487,7 +497,8 @@ void LCAO_Deepks::cal_projected_DM_k(const elecstate::DensityMatrix