|
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 |
|
|---|
| 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];
|
|---|
| 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.