diff --git a/source/source_lcao/module_rt/velocity_op.cpp b/source/source_lcao/module_rt/velocity_op.cpp index 77d8ea0fbb..ceec0b1b65 100644 --- a/source/source_lcao/module_rt/velocity_op.cpp +++ b/source/source_lcao/module_rt/velocity_op.cpp @@ -295,7 +295,11 @@ void Velocity_op::calculate_vcomm_r() std::complex* tmp_c[3] = {nullptr, nullptr, nullptr}; for (int i = 0; i < 3; i++) { - tmp_c[i] = this->current_term[i]->find_matrix(iat1, iat2, R_vector[0], R_vector[1], R_vector[2])->get_pointer(); + hamilt::BaseMatrix>* matrix_ptr = this->current_term[i]->find_matrix(iat1, iat2, R_vector[0], R_vector[1], R_vector[2]); + if (matrix_ptr != nullptr) + { + tmp_c[i] = matrix_ptr->get_pointer(); + } } // if not found , skip this pair of atoms if (tmp_c[0] != nullptr) @@ -432,7 +436,11 @@ void Velocity_op::calculate_grad_term() std::complex* tmp_c[3] = {nullptr, nullptr, nullptr}; for (int i = 0; i < 3; i++) { - tmp_c[i] = this->current_term[i]->find_matrix(iat1, iat2, R_index2)->get_pointer(); + hamilt::BaseMatrix>* matrix_ptr = this->current_term[i]->find_matrix(iat1, iat2, R_index2); + if (matrix_ptr != nullptr) + { + tmp_c[i] = matrix_ptr->get_pointer(); + } } if (tmp_c[0] != nullptr) {