average steinhardt order parameter

Hi, all,
I am using " compute orientorder/atom command" to compute the steinhardt order parameter. If I want to average the steinhardt order parameter over the central atom and its neighbors within specified distance, do you have suggestions on which command to use? Thanks in advance!

Best regards,


As far as I know this cannot be done directly in LAMMPS right now. I’m working on a compute that does exactly this. When it’s finished I’ll send it to you and add a pull request to the git repository :slight_smile:


Hi, Anders,
Thanks! Please let us know when you implement this feature.
Best regards,

Are you saying you want the final value for each atom

to be the average over that atom and its neighbor’s values,

ditto for every atom? So a smeared out kind of averaging?



That seems like a strange thing to do. Also, there is more than one way to do the averaging, because the underlying quantities are vectors of length 2*l+1. Do you want to average the components and then compute the scalar norms, or average the scalar norms. There is currently work underway to calculate the scalar product of the vectors of a pair of neighbor atoms. Is that what you are after?


Aidan, I’ve implemented that quantity where you compute 2l+1 values per atom and for each nnn neighbors you compute the scalar product between the pairs of atoms.

You can take a look at my implementation here (the name will be different though): https://github.com/andeplane/compute-steinhardt

Is this the same as you mentioned?


Yes, this looks like the method that was previously mentioned on this list as the ten Wolde criterion for identifying atoms in a cluster. Luis Gustavo Vieira Gonçalves (copied) is working on an implementation that achieves the same thing as your code in a somewhat more general way by adding an option to compute coord/atom that counts coordination based on scalar product between a pair of atoms lying in a certain range. The per-atom vectors are generated by adding an option to compute orientorder/atom.

Hi, everyone! I finished the coding and I will begin tests on Monday. should I send you the proposed manual entries for the modified computes?

You can send it to me, or you can post a pull request on github, whichever you prefer. I also recommend that you and Anders look at each others codes. There are good features of both that can be merged in to a single version. Since both of you understand the final goal better than me, you should be able to decide what is best.