diff --git a/src/tools/RMSD.cpp b/src/tools/RMSD.cpp index 2ccecceb58cd5c24ddd7ee1612655057422acc0f..256e5cedb0be9c96d1c564ce5b454e0f423c7c89 100644 --- a/src/tools/RMSD.cpp +++ b/src/tools/RMSD.cpp @@ -117,6 +117,7 @@ void RMSD::setAlign(const vector<double> & align, bool normalize_weights, bool r double w=0.0; #pragma omp simd reduction(+:w) for(unsigned i=0; i<n; i++) w+=this->align[i]; + plumed_massert(w>epsilon,"It looks like weights used for alignment are zero. Check your reference PDB file."); double inv=1.0/w; #pragma omp simd for(unsigned i=0; i<n; i++) this->align[i]*=inv; @@ -150,6 +151,7 @@ void RMSD::setDisplace(const vector<double> & displace, bool normalize_weights) double w=0.0; #pragma omp simd reduction(+:w) for(unsigned i=0; i<n; i++) w+=this->displace[i]; + plumed_massert(w>epsilon,"It looks like weights used for displacement are zero. Check your reference PDB file."); double inv=1.0/w; if(normalize_weights) { #pragma omp simd