Changes in src/linkedcell.hpp [f66195:0f4538]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/linkedcell.hpp
rf66195 r0f4538 1 /*2 * linkedcell.hpp3 *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 well5 * for molecule and atom classes.6 *7 * Created on: Aug 3, 20098 * Author: heber9 */10 11 1 #ifndef LINKEDCELL_HPP_ 12 2 #define LINKEDCELL_HPP_ 13 14 using namespace std;15 16 /*********************************************** includes ***********************************/17 3 18 4 // include config.h … … 21 7 #endif 22 8 23 #include <list>9 #include "molecules.hpp" 24 10 25 #include "defs.hpp" 26 #include "vector.hpp" 11 #define LinkedAtoms list <atom *> 27 12 28 /****************************************** forward declarations *****************************/ 13 class LinkedCell { 14 public: 15 Vector max; // upper boundary 16 Vector min; // lower boundary 17 LinkedAtoms *LC; // linked cell list 18 double RADIUS; // cell edge length 19 int N[NDIM]; // number of cells per axis 20 int n[NDIM]; // temporary variable for current cell per axis 21 int index; // temporary index variable , access by index = n[0] * N[1] * N[2] + n[1] * N[2] + n[2]; 29 22 30 class PointCloud; 31 class TesselPoint; 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); 29 void GetNeighbourBounds(int lower[NDIM], int upper[NDIM]); 30 bool CheckBounds(); 32 31 33 /********************************************** definitions *********************************/ 34 35 #define LinkedNodes list<TesselPoint *> 36 37 /********************************************** declarations *******************************/ 38 39 /** Linked Cell class for containing Vectors in real space efficiently. 40 */ 41 class LinkedCell { 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]; 50 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(); 59 void GetNeighbourBounds(int lower[NDIM], int upper[NDIM]); 60 61 // not implemented yet 62 bool AddNode(Vector *Walker); 63 bool DeleteNode(Vector *Walker); 64 bool MoveNode(Vector *Walker); 32 // not implemented yet 33 bool AddAtom(atom *Walker); 34 bool DeleteAtom(atom *Walker); 35 bool MoveAtom(atom *Walker); 65 36 }; 66 37
Note:
See TracChangeset
for help on using the changeset viewer.