The neighbor keyword

From GPUMD
Jump to navigation Jump to search

Purpose

This keyword is used to tell the code that the neighbor list should be updated when needed for a specific run.

Grammar

This keyword only requires a single parameter, which is the skin distance (the difference between the cutoff distance used in neighbor list construction and that used in force evaluation) in units of angstrom. The full command reads

   neighbor skin_distance

Examples

Example 1

If one wants to update the neighbor list with a skin distance of 1 angstrom, one can add the following command before the run keyword

   neighbor 1

Example 2

If one does not want to update the neighbor list during one run and wants to update it during the next run, one can write something like this:

   ensemble nvt_lan 300 300 100 # room temperature
   # no neighbor list updating for this run
   run 1000000
   ensemble nvt_lan 300 3000 100 # increase the temperature
   neighbor 1 # will update the neighbor list when needed
   run 1000000

Caveats

  • The code will determine when the neighbor list needs to be updated. So the user does not need to specify an updating frequency.
  • Using a larger skin distance will reduce the updating frequency, but will increase the computational cost (and memory requirement) for one updating and related calculations. We recommend using a skin distance of 1 angstrom.
  • If this keyword is absent for a run, the neighbor list will not be updated during the run. The user should decide wisely. For example, it is a waste of time to update the neighbor list when simulating a very stable solid. On the other hand, it is dangerous to choose to not update the neighbor list when it is needed.
  • The atoms are only brought back to the simulation box after updating the neighbor list.

Related keywords

  • None