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)
{