[lammps-users] knowing surroundig atoms ID of a given atom (NEB method)


I am trying to automatize the NEB method for study the energy barrier of vacancies in a FCC metal.

The idea is to pick a random atom, get its coordinates and remove it. Then identify all the nearest neighbors and run the NEB method for each of them migrating in the vacancy spot in order to get the vacancy migration energy barrier. My questions are basically 2:

  1. Is there a better algorithm to perform a NEB method on a vacancy multiple times?
  2. Is there a way to get the ID of all the nearest neighbors of a given atom far from the boundaries?

Thank you.



I would suggest doing this externally to LAMMPS with a script (e.g. Python) which uses LAMMPS thru its library interface.

There are library calls which can get the neighbors of an atom.
Then you could remove the central atom (create vacancy), create a NEB group for the surrounding atoms.
Then do a loop where you invoke NEB (through the lib interface) for each of the neighbor atoms with the end state (in a file written by the driver script) being defined
as putting that neighbor atom at the vacancy site.

If you get this to work, please consider contributing the python script driver. It would be a useful tool to have in the LAMMPS distro.