Changes in src/linkedcell.hpp [0f4538:f66195]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/linkedcell.hpp
r0f4538 rf66195 1 /* 2 * linkedcell.hpp 3 * 4 * If the linked cell should be usable, the class has to inherit LCNodeSet and the nodes (containing the Vectors) have to inherit LCNode. This works well 5 * for molecule and atom classes. 6 * 7 * Created on: Aug 3, 2009 8 * Author: heber 9 */ 10 1 11 #ifndef LINKEDCELL_HPP_ 2 12 #define LINKEDCELL_HPP_ 13 14 using namespace std; 15 16 /*********************************************** includes ***********************************/ 3 17 4 18 // include config.h … … 7 21 #endif 8 22 9 #include "molecules.hpp"23 #include <list> 10 24 11 #define LinkedAtoms list <atom *> 25 #include "defs.hpp" 26 #include "vector.hpp" 12 27 28 /****************************************** forward declarations *****************************/ 29 30 class PointCloud; 31 class TesselPoint; 32 33 /********************************************** definitions *********************************/ 34 35 #define LinkedNodes list<TesselPoint *> 36 37 /********************************************** declarations *******************************/ 38 39 /** Linked Cell class for containing Vectors in real space efficiently. 40 */ 13 41 class LinkedCell { 14 15 Vector max;// upper boundary16 Vector min;// lower boundary17 LinkedAtoms *LC;// linked cell list18 double RADIUS;// cell edge length19 int N[NDIM];// number of cells per axis20 int n[NDIM];// temporary variable for current cell per axis21 int index;// temporary index variable , access by index = n[0] * N[1] * N[2] + n[1] * N[2] + n[2];42 public: 43 Vector max; // upper boundary 44 Vector min; // lower boundary 45 LinkedNodes *LC; // linked cell list 46 double RADIUS; // cell edge length 47 int N[NDIM]; // number of cells per axis 48 int n[NDIM]; // temporary variable for current cell per axis 49 int index; // temporary index variable , access by index = n[0] * N[1] * N[2] + n[1] * N[2] + n[2]; 22 50 23 LinkedCell(); 24 LinkedCell(molecule *mol, double RADIUS); 25 ~LinkedCell(); 26 LinkedAtoms* GetCurrentCell(); 27 bool SetIndexToAtom(const atom &Walker); 28 bool SetIndexToVector(const Vector *x); 51 LinkedCell(); 52 LinkedCell(PointCloud *set, double RADIUS); 53 LinkedCell(LinkedNodes *set, double radius); 54 ~LinkedCell(); 55 LinkedNodes* GetCurrentCell(); 56 bool SetIndexToNode(const TesselPoint *Walker); 57 bool SetIndexToVector(const Vector *x); 58 bool CheckBounds(); 29 59 void GetNeighbourBounds(int lower[NDIM], int upper[NDIM]); 30 bool CheckBounds();31 60 32 33 bool AddAtom(atom*Walker);34 bool DeleteAtom(atom*Walker);35 bool MoveAtom(atom*Walker);61 // not implemented yet 62 bool AddNode(Vector *Walker); 63 bool DeleteNode(Vector *Walker); 64 bool MoveNode(Vector *Walker); 36 65 }; 37 66
Note:
See TracChangeset
for help on using the changeset viewer.