[lammps-users] Estimating Rotational diffusivity using lammps

Dear LAMMPS users,
I am trying to find out rotational diffusivity. For that I need to calculate the rotational autocorrelation function (of course by taking the moment of inertia weighted ACF).

I find a function-
compute group_id msd

which can calculate translational Diffusivity via calculating "Translational Mean Square Displacement " <r(t)^2>.

Is there any such function for estimating “Rotational Mean Square Displacement” < phi(t)^2>.

One can also use “compute vacf” command to estimate velocity-velocity autocorrelation function directly in lammps via vacf to calculate Translational diffusivity. Is there any similar command for Rotational Velocity Autocorrelation Function?

Regards and thanks in anticipation.

Mukesh Pandey

1 Like

Dear LAMMPS users,
I am trying to find out rotational diffusivity. For that I need to calculate the rotational autocorrelation function (of course by taking the moment of inertia weighted ACF).

I find a function-
compute group_id msd

which can calculate translational Diffusivity via calculating "Translational Mean Square Displacement " <r(t)^2>.

Is there any such function for estimating “Rotational Mean Square Displacement” < phi(t)^2>.

a) do you see it mentioned anywhere in the manual? All supported features of LAMMPS are documented in the manual!
b) there is no rotation of point particles, so there cannot be an equivalent of compute msd, which looks at translation of individual point particles

One can also use “compute vacf” command to estimate velocity-velocity autocorrelation function directly in lammps via vacf to calculate Translational diffusivity. Is there any similar command for Rotational Velocity Autocorrelation Function?

rotation of what? see b)

Dear Dr Axel,

Thanks for your response. I want to further clarify for your query- rotation of what?

Actually, it is for group of atoms e.g. molecules, say CO2, H2O or methane etc.

One way, as I see in the manual is via finding angular dependence of some vector quantity, say angular momentum. What I mean is, getting a trajectory i.e. set of angular momentum for each consecutive event L(t), L(t+delta), L(t=2*delta), etc and getting the scalar product between the each subsequent data point and than from there converting back to angle.

But, in all this I need to write a small code.

However, as is there a command “compute msd”, for translational diffusivity calculations, if there exists, some similar command (I hope there is some command in GROMACS, as I see the literature for estimation of “Rotational Mean Square Displacement” <phi(t)^2>), please let me know. People have of course calculated “Rotational Mean Square Displacement” < phi(t)^2> using LAMMPS, so I think there may be something like this in LAMMPS too.

Ref-“Molecular Dynamics Simulations of the Rotational and Translational Diffusion of a Janus Rod-Shaped Nanoparticle” appeared in Phys.Chem.B 2017, 121, 7133−7139 by Ali Kharazmi† and Nikolai V. Priezjev.

Thanks and regards

Mukesh Pandey

Dear Dr Axel,

[…]

However, as is there a command “compute msd”, for translational diffusivity calculations, if there exists, some similar command (I hope there is some command in

you have not been paying attention to what I wrote. compute msd works on atoms. but since those are point particles, translation is well defined but rotation does not exist (angular momentum is infinity).

the msd of (a group of) molecules is simply the average over the individual atoms, since compute msd works on atoms, there is no conflict.

but if you want to analyse the rotation of molecules, that becomes a whole different procedure and data flow. first you have to define which are the constituent atoms (which can be done via molecule IDs), then you have to group them into something that you work on, e.g. into chunks via compute chunk/atom, then you need to compute orientation (which also requires defining a consistent direction within each molecule/chunk by determining the moments of inertia), then you need to access this data, i.e. you need a per-chunk compute to compute the orientation and then the angular velocity and then the corresponding auto-correlation or mean squared rotational displacement, and only then can you compute your rotational self-diffusion value. So to say, if there is a compute msd there could easily be a similar compute for rotational diffusion is arguing with semantics instead of science.

GROMACS, as I see the literature for estimation of “Rotational Mean Square Displacement” <phi(t)^2>), please let me know. People have of course calculated “Rotational Mean Square Displacement” < phi(t)^2> using LAMMPS, so I think there may be something like this in LAMMPS too.

as I already mentioned, anything that is provided with LAMMPS is documented. if you don’t see anything in the manual, it is not there. full stop.

now, if you want to use gromacs tools for post-processing, that is quite possible. you can generate a minimal gromacs topology from a LAMMPS data file using the VMD TopoTools plugin. that functionality was conceived many years ago with the specific intent of creating a topology (and through it a .tpr file) that is just enough for post-processing with gromacs.

Ref-“Molecular Dynamics Simulations of the Rotational and Translational Diffusion of a Janus Rod-Shaped Nanoparticle” appeared in Phys.Chem.B 2017, 121, 7133−7139 by Ali Kharazmi† and Nikolai V. Priezjev.

what you describe is something that most people I know do in post-processing.

1 Like

Dear Dr Axel,
Thank you for nice clarification.
Regards
Mukesh Pandey