issue with displace_atoms: atom displaced but there is an atom

Hi all,

I am facing some problem with the displace_atoms command.
In few words, I work on bcc Fe crystal (ppp conditions). I am testing the voronoi/atom compute to see if I am able to identify vacancies and interstitials. That works fine, I understood how to locate them. However, during some tests I was performing, I observed some unexpected behavior of the displace_atoms command.

In order to test voronoi, what I do is simple, I select an atom from the lattice and I displace it. This way I know when I create a vacancy and an interstitial.

I proceed as follows:

region PKA block (v_xPKA-v_delta) (v_xPKA+v_delta) (v_yPKA-v_delta) (v_yPKA+v_delta) (v_zPKA-v_delta) (v_zPKA+v_delta)
group PKA region PKA

displace_atoms PKA move 1.0 1.0 1.0 units box

write_dump all xyz

where xPKA, yPKA… are variable defined elsewhere.

What I observe is that sometimes, in the place where there should be no atom (because I displaced it), there is one. However, owing to the voronoi, I find that there is a vacancy just where the atom was displaced, which is what is expected.

So it is contradictory, there is a vacancy and a lattice atom at the same place.
But it is not always like this. Sometimes it works well and we can see that the atom has indeed moved and there is a vacancy in its place.

Is it a bug of the displace_atoms command or is there something that I am missing ?

Could anyone help me please ?

With best regards,

You are displacing a group of atoms (PKA). Does the

group always have a single atom in it?

If you are shifting a chunk of atoms on a lattice,

some could end up where previous ones were.

You can also debug yourself, by putting “write_dump”

commands immediately before and after your

displace_atoms command. Then look at the coords

of the atoms in the 2 files.


Dear Steve,

I had the same idea. After a careful inspection with VMD, I can say that the displace_atoms command works well. The atom is correctly displaced, leaving a vacancy. What is wrong is my code to manipulate the data coming from Voronoi to calculate the coordinates of interstitials and vacancies. It places the vacancy close to the atom that I displace, but not exactly where it should be. That’s why I got confused.
Sorry for the inconvenience.