[lammps-users] warn when atoms are too close?

I have been attempting to run damage cascades in Fe (using the Fe_mm.eam.fs potential) for some time now, and can't seem to overcome the lost atoms problem. I believe it is being caused by a PKA atom getting too close to another lattice atom, and seeing an ~infinite potential, which causes the forces to become extremely large, thus the atoms are ejected. I have tried all the usual tricks, lowering the timestep, preventing atoms from moving more than a certain distance in one timestep, fix nve/limit, fix dt/reset... but since I can't seem to prevent the atoms from getting within a very close distance, they always see the infinite part of the potential, and these tricks are useless. Is there any way lammps can warn me when two atoms are within a specified distance, so I can perhaps implement some kind of work around? I'm not sure how I would do that either (suggestions?)... it seems like it should be possible, since lammps obviously keeps track of distance between atoms, but I can't find anything in the documentation. Thanks,

Erin

Is there any way lammps can warn me when two atoms are within a specified distance, so I can perhaps implement >some kind of work around? I'm not sure how I would do that either (suggestions?)... it seems like it should be possible, >since lammps obviously keeps track of distance between atoms, but I can't find anything in the documentation. Thanks,

No, LAMMPS doesn't track this. You could always put a print statement
inside the inner loop of a pair::compute()
function and track it yourself. Damage cascades with hi-energy atoms
is all about the pair potential
and the timestep. If you've chosen these correctly you should not get
too-close approach. Or said
another way, close approaches should result in valid dynamics, not
blow-ups. I don't
know that EAM potentials are valid for hi-energy close-approaches.
I'd look at the literature
for how other people do these kinds of simulations.

Steve

thanks for the info... Maybe I didn't mean track, but lammps must compute the distance between each pair of atoms, to create the neighbor list and figure out what which element of the potential file to use, right? I think my problem is in the potential, because I can use an essentially infinitely small timestep, and still have atoms ejected. There is not enough slowing down caused by potential to stop the atom before it sees the infinite part of the potential (and I think this is the non physical aspect of it). But, we have e-mailed the creator of the potential, and he is apparently able to use this potential for damage cascasdes in MOLDY, so that is why I feel there must be some work around. Also, there is plenty of literature available showing EAM and MEAM potentials used for damage cascades. I will try the suggestions of printing out distances, and maybe stopping the simulation at that point to put in some kind of BCA or something...

Erin

sure, LAMMPS computes distances between pairs atoms, but it doesn't store
them or have a handle where you can print them out. You could write a variable
and use fix print to print the distance between 2 particular atoms as often as
you wish

Steve