| Main | Overview | Data Structures | Init | Dynamics Loop | Functions | ||
Data |
|||||||
Crystal |
|||||||
| Interior | Dynamic Atoms | ||||||
| Edges | Dynamic Atoms | ||||||
| Ghosts | Atoms | ||||||
| Equilibrium State | Atoms | ||||||
| Potential, KE, Temp | Total over all nodes | ||||||
| Ground Potential, Cut_temp | Total over all nodes | ||||||
| Control | Global control info | ||||||
| Physics | Global physics info | ||||||
Atoms |
|||||||
| N, Bufsize | |||||||
| Position | |||||||
| Neighbor List | |||||||
| Species | |||||||
Dynamic Atoms |
List of atoms that take part in dynamics | ||||||
| n, bufsize | |||||||
| Position, Prev Pos | |||||||
| Neighbor List | |||||||
| Momentum | |||||||
| Species | |||||||
| Force, Potential, KE | |||||||
| Angle? | |||||||
Box |
List of particles in cubic region of space | ||||||
Direction |
One of the cardinal directions, relative to the node decomposition. | ||||||
| ZMin, YMin, XMin, XMax, YMax, ZMax | |||||||
|
dir_sign |
-1 for ZMin, YMin, XMin; 1 for ZMax, YMax, XMax. | ||||||
Other |
|||||||
Boxit |
|||||||
| Each Particle belongs to a box. | |||||||
| Each box has size of (maximum cutoff / 2). That means each atom can possibly only interact with atoms in the 8 surrounding boxes. | |||||||
| Want
outermost boxes to encompass borders...
hmm. |
|||||||
| Neighborlist generation is most efficient when boxes are Cutoff/2+eps. I think stay with this, make box code robust. | |||||||
| Cleanest and easiest to think about when boxes exactly border ROI. | |||||||
| If the cutoff-radius Rc is equal to the grid-cell side length D, the volume of the sphere of non-zero interactions around a given atom is 4/3 pi r^3, whereas the interactions are computed inside a volume (3D)^3 for local interaction subgrids. The ratio of these volumes, which is an estimate of the algorithmic efficiency of the force computation, is approximately 0.155. If the code uses 5x5x5 local subgrids and a grid size of Rc/2, the algorithmic efficiency is a much better 0.268. | |||||||
| Update neighborlists using skin | |||||||
| By monitoring grid changes? With D=Rc/2, skin of Rc/2? | |||||||
| Shared boxes are particles outside ROI but within 1 box of it. Exchange synchronizes information between nodes for these boxes | |||||||
| Excess boxes are particles more than one box outside of ROI. Exchange transfers atoms in these boxes to the neighboring node. Ignore case where atom should move beyond neighbor (that is, more than one node at a time). | |||||||
Neighbors |
Constructed from boxes | ||||||
| First order neighborlist -- | |||||||
| 2nd order neighborlist | |||||||