Data Structures

   

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