source: molecuilder/src/linkedcell.hpp@ e8de2e

Last change on this file since e8de2e was a87d5e6, checked in by Saskia Metzler <metzler@…>, 16 years ago

new function LinkedCell::GetNeighbourBounds()

  • LinkedCell::GetNeighbourBounds() needed as atom or vector to seek nearest neighbour for must not necessarily be contained in the LinkedCell grid itself. Hence, we have to use specific bounds for the NN search which this function returns.
  • Property mode set to 100644
File size: 1001 bytes
Line 
1#ifndef LINKEDCELL_HPP_
2#define LINKEDCELL_HPP_
3
4// include config.h
5#ifdef HAVE_CONFIG_H
6#include <config.h>
7#endif
8
9#include "molecules.hpp"
10
11#define LinkedAtoms list <atom *>
12
13class 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];
22
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();
31
32 // not implemented yet
33 bool AddAtom(atom *Walker);
34 bool DeleteAtom(atom *Walker);
35 bool MoveAtom(atom *Walker);
36};
37
38#endif /*LINKEDCELL_HPP_*/
Note: See TracBrowser for help on using the repository browser.