QNANO
Neighborhood_Criterion_Vector.h
1 #ifndef QNANO_NEW_NEIGHBORHOOD_CRITERION_VECTOR_DEFINED_H
2 #define QNANO_NEW_NEIGHBORHOOD_CRITERION_VECTOR_DEFINED_H
3 
4 #include "structure/Neighborhood_Criterion.h"
5 
7 public:
8  Vec3d vec;
9  double length;
10  double tolerance;
11 
12 private:
13  void calculate_upper_bound(){ length=vec.norm(); }
14 
15 public:
16  Neighborhood_Criterion_Vector(const Vec3d &vec_, double tol_=0.20) : vec(vec_), tolerance(tol_){
17  calculate_upper_bound();
18  }
19 
20  virtual bool is_neighbor(const Atom &a1, const Atom &a2) const;
21 
22  virtual double upper_bound_radius() const{ return length*(1+tolerance);}
23 
24 };
25 
26 
27 #endif
Class to store positions and to handle operations on 3d vectors.
Definition: Vec3d.h:9
Definition: Neighborhood_Criterion_Vector.h:6
Definition: Atom.h:6
Definition: Neighborhood_Criterion.h:6