Suite101

Welcome to the Neighborhood ... Hope You Don't Stay Long


© Adam Hughes

The use of a neighbor list in a classical simulation is usually the first, and often the most drastic, enhancement to computational speed that a scientists can make. This article will take a look at some of the details of employing neighbor lists in a computational problem such as the solar system simulation we have been examining.

As has been previously discussed, it is usually quite computationally costly to calculate all of the pairwise interactions in a system of discrete particles. Luckily, in most such systems, the mathematical terms which describe force field contain some term such as (1/r2) or (1/r6). These indicate that the force between two particles decays as the at a rate of r squared or r to the sixth power, where r is the distance between two particles. In this situation, it is quite feasible to exclude interactions between particles which are far enough apart to make the resulting terms negligible to the overall force "felt" by each particle. This distance, or cutoff, as it's commonly known, is usually calculated so as to maintain the energy conservation of the total system at some pre-determined level. Once determined, each particle is treated as if it only interacts with other particles which are within the cutoff distance from itself. Each particle, then, can be thought of as sitting at the center of a sphere with radius the size of the calculated cutoff distance. Any particle outside of this sphere is treated as if it does not directly interact with the particle in the center of the sphere. Any particle inside the sphere is said to be in the central particle's neighbor list, and every particle has its own, distinct neighbor list.

This would be a pretty easy, tidy solution if the neighbor lists never changed. However, as the system evolves, a particle may see some of its neighbors travel far enough to escape the neighborhood, while other outlying particles may make big enough jumps to be added to the list. For this reason, it is important to periodically update the neighbor lists present in a classical system. This procedure, unfortunately, consists of rechecking every particle's list to see which other particles should be included. Obviously, this can be quite costly, so the trick is to perform this operation as infrequently as possible while still conserving the total energy of the system. In the next article, we'll look at methods for accomplishing the best balance between accuracy and computational efficiency.

Go To Page: 1


The copyright of the article Welcome to the Neighborhood ... Hope You Don't Stay Long in Scientific Computing is owned by . Permission to republish Welcome to the Neighborhood ... Hope You Don't Stay Long in print or online must be granted by the author in writing.

Post this Article to facebook Add this Article to del.icio.us! Digg this Article furl this Article Add this Article to Reddit Add this Article to Technorati Add this Article to Newsvine Add this Article to Windows Live Add this Article to Yahoo Add this Article to StumbleUpon Add this Article to BlinkLists Add this Article to Spurl Add this Article to Google Add this Article to Ask Add this Article to Squidoo