I’m interested in computing so-called rotational diffusion constants for rigid water molecules (say TIP4P, using shake to maintain the constraints).

One of the definitions for the rotational mean-squared displacement requires access to

molecular angular velocities expressed in the instantaneous principal axes frame. Searching

in the manual it seems that such angular velocities are available only with respect to the simulation

box frame directions. On the other hand, I’ve seen that for certain calculations (body particles), lammps

does compute the principal axes internally.

Would you have any suggestions as to how to compute angular velocities in the principal axes frame?

Thanks!

Maurice

Can you clarify what you mean by “principal axes frame”?

If you define a rotating frame of reference that is always aligned with the principal axes of a rigid molecule, the angular velocity of the molecule should be zero in that frame by definition.

Giacomo

Just to clarify, what I’m trying to do is to express a given “global” vector (i.e., the COM angular velocity in the inertial frame of the simulation box described by its fixed x, y and z directions)

in terms of the system of axes formed by the principal axes of the molecule. In other words, I’m just looking for a change of basis: going from the fixed simulation-box basis (centered at the COM)

to that formed by the principal axes of the molecule.

Aspherical particles achieve this by storing/keeping track of a quaternion, as do rigid bodies. The quaternion encodes the rotation matrix relative to the box. I am not sure how to achieve a similar effect for fix shake with point particles. I suppose you could reconstruct the axes from the atom coordinates?

I’m interested in computing so-called rotational diffusion constants for rigid water molecules (say TIP4P, using shake to maintain the constraints).

One of the definitions for the rotational mean-squared displacement requires access to

molecular angular velocities expressed in the instantaneous principal axes frame. Searching

in the manual it seems that such angular velocities are available only with respect to the simulation

box frame directions. On the other hand, I’ve seen that for certain calculations (body particles), lammps

does compute the principal axes internally.

Would you have any suggestions as to how to compute angular velocities in the principal axes frame?

please have a look at compute angmom/chunk. i would expect it to be

straightforward to modify it to compute and output the angular

velocities you are looking for instead of the angular momentum.

or you could think about recovering it in post-processing by using

both, compute angmom/chunk and inertia/chunk.

axel.