QNANO
Atoms_in_Boxes.h
1 #ifndef QNANO_NEW_ATOMS_IN_BOXES_DEFINED_H
2 #define QNANO_NEW_ATOMS_IN_BOXES_DEFINED_H
3 
4 #include "structure/Atom_List.h"
5 #include "structure/Neighborhood_Criterion.h"
6 #include <vector>
7 
9 
10 private:
11  std::vector<int> *boxes;
12  double dx, dy, dz;
13  Vec3d origin;
14 
15 public:
16  int Nx, Ny, Nz;
17 
18  std::vector<int> & operator() (int ix, int iy, int iz);
19  const std::vector<int> & operator() (int ix, int iy, int iz)const;
20  void allocate();
21  void deallocate();
22  void resize(int Nx_, int Ny_, int Nz_);
23 
24  void calculate(const Atom_List &atlist, double boxwidth);
25  void set_N_from_boxwidth(const Atom_List &atlist, double boxwidth);
26 
27  std::vector<int> find(const Atom_List &atlist, const Atom &a, const Neighborhood_Criterion & criterion) const;
28  std::vector<int> find(const Atom_List &atlist, const Atom &a, double radius) const;
29 
31  Atoms_in_Boxes(const Atom_List &atlist, double boxwidth);
32  ~Atoms_in_Boxes();
33 
34 };
35 
36 #endif
Class to store positions and to handle operations on 3d vectors.
Definition: Vec3d.h:9
Definition: Atom_List.h:9
Definition: Atoms_in_Boxes.h:8
Definition: Atom.h:6
Definition: Neighborhood_Criterion.h:6