Hi,

Can some please help, how I can measure the Lindemann index for a group of atoms in lammps? I have searched in mailing list, but couldn’t find a hint.

Thank you.

Hi,

Can some please help, how I can measure the Lindemann index for a group of atoms in lammps? I have searched in mailing list, but couldn’t find a hint.

Thank you.

I think you’d need to write a new compute to calculate

that. There are several computes line centro/atom that

use an atom’s local neighborhood to calculate a value

per atom.

Steve

Couple of Qs about the Lindemann index.

I assume you want a local index, i.e. a value calculated

for each atom. Assume you have the neighbors of each

atom, within a cutoff distance. Does

the sum in the formula include all those atoms,

so it might be a different N for every atom? Or does

the user choose N and the formula is for the N closest

atoms to each central atom? What happens if an

atom does not have N neighbors within the cutoff

(e.g. it is an atom at a surface) - does that mean

it’s index is set to 0.0?

If you clarify those Qs, it should be an easy compute

to write.

Steve

Thank you for your follow-up Steve. These are good questions and I mention my opinions based on what I have read in papers.

I think:

The formula should include all the atoms. As the atoms on the surface play their role in the transition (such as a melting of a nanoparticle), they definitely should be considered.

*"r**ij* is the distance between atoms *i* and *j*, *N* is the number of atoms in the particle, and the brackets represent the ensemble average at the temperature of the sample."

As examples, I recommend you take a look at these papers and their descriptions about how they defined and used the Lindemann index:

http://scitation.aip.org/content/aip/journal/jcp/129/14/10.1063/1.2991435

http://pubs.acs.org/doi/abs/10.1021/jp053318s

http://pubs.acs.org/doi/abs/10.1021/jp8058992

Bests

X

The Lindemann implementations I’ve seen seem to be very difficult to implement in LAMMPS, as they require storing data for *every* i-j pair in the system. Some people who use LAMMPS calculate it through postprocessing.

Kristof

you may be right. Reading the forumla on the wiki

page again, it seems like is meant to be

a time average of the distance between

a particular pair of I,J atoms. I don’t see a simple

way to do that w/out keeping track of an old

neighbor list. I also don’t see how it is even computable

(within LAMMPS) over long periods of time if

atoms move far enough so that I,J are not neighbors

at a later time.

Steve

I once hacked something together using Colvars, but there were many icky things about that implementation. But it was possible within that framework.

Kristof

I’m thinking about writing another compute (for calc of a slip vector),

which needs to know info about the neighbors of an atom

at a previous time step. I.e. each atom would store

the atom IDs and coords of its N nearest neighbors at time 0,

where maybe N = 12 for fcc lattices. Can a similar

storage also be used to compute the Lindemann index?

Maybe storing the neighbor IDs and the running time-averaged

distance to them.

But I’m still unclear on the wiki-page formula how its computed

exactly. Do you define some # of neighs/atom at time

0 and carry those forward in time to get time-averaged distances

to the same neighbors over time? What if old neighbors

move away, and new neighbors move close? What if you

don’t have N neighbors? For Lindemann, is N small or

big? It would require a lot of memory if N = 50 or 100.

If someone can clarify the

explicit details, this might be do-able with code

similar to the slip vector compute.

Steve

The implementations I’ve seen (in homebrew codes) use all i-j pairs (so all possible distances are used). But the only applications of this kind calculations were for small clusters, where memory is not that much of an issue. In the literature I saw people calculating the Lindemann Index differently, just using the MSD (which, definitely in bulk systems, gives the same kind of information).

Kristof