Rotational Dynamics of a Free Triatomic Molecule

This notebook explores the rotational dynamics of a triatomic molecule by numerically solving Euler’s equations for the free rotor to obtain the angular velocity in the body-fixed frame ω(t). Euler matrices R(Θ) are employed to express ω(t) in terms of the Euler angles and its time derivatives Θ and

Θ
. The solution of the first-order differential equation

Θ
=

Θ
(ω(t),Θ) gives the Euler angles as functions of time Θ(t). Finally, the rotation of the molecule and its fixed-coordinate frame, with respect to the space-fixed frame, is obtained by applying the time-dependent Euler rotation R(Θ(t)) to the position vector of the atoms of the molecule.
June 23, 2017—Carlos A. Arango

Importing the Data from Wolfram Language Online Repositories

ChemicalData contains physical and chemical properties of a large number of molecules. There are 266 triatomic molecules. We concentrate in water as an example.
Types of atoms ordered as a 3-vector:
In[]:=
atyp=ChemicalData["Water","VertexTypes"]
Out[]=
{O,H,H}
Atomic positions are obtained as a list of 3-vectors in units of picometers (pm):
In[]:=
aposlfpm=ChemicalData["Water","AtomPositions"]
Out[]=

-6.3259
pm
,
-25.268
pm
,
26.210
pm
,
74.277
pm
,
26.059
pm
,
17.009
pm
,
-67.951
pm
,
-0.79118
pm
,
-43.219
pm

QuantityMagnitude is employed to work only with numbers:
In[]:=
aposlf=QuantityMagnitude[aposlfpm]
Out[]=
{{-6.3259,-25.268,26.210},{74.277,26.059,17.009},{-67.951,-0.79118,-43.219}}
ElementData gives the atomic masses as quantities with units. An atomic mass can be transformed to a simple Quantity using QuantityMagnitude:
In[]:=
amass=Table[QuantityMagnitude[ElementData[ToString[atyp[[i]]],"AtomicMass"]],{i,1,Length[atyp]}]
Out[]=
{15.9994,1.00794,1.00794}
The graph of the molecule from ChemicalData will be used as the graphical object to be rotated.
The ChemicalData option "MoleculePlot" offers nice 3D graphs with a color code that makes easy to visualize molecules:
In[]:=
mplot=ChemicalData["Water","MoleculePlot"]
Out[]=
We need positions of the geometric objects that are used to build this 3D graph. An exploration in the structure of “mplot” allows us to locate the position vectors.
A list of 3-vectors gives (initial) positions of spheres and cylinders that are used to build the 3D graph of the water molecule:
In[]:=
icondmol=mplot[[1,4,1]]
Out[]=
{{-6.3259,-25.268,26.21},{74.277,26.059,17.009},{-67.951,-0.79118,-43.219},{33.9756,0.3955,21.6095},{-37.1385,-13.0296,-8.5045}}

Space-Fixed Coordinate Frame

Body-Fixed Coordinate Frame

Differential Equations for the Rigid Molecule

Solving Euler Equations for Random Initial Angular Velocities

Euler Angles and the Rotation Matrix

Differential Equation for the Euler Angles

Define the Rotating Molecule and Frame

The Graphical Representation of the Rotational Dynamics

FURTHER EXPLORATIONS
Rotational dynamics of polyatomic molecules
Rotational spectroscopy
Spherical, symmetric and asymmetric rotors
AUTHORSHIP INFORMATION
Carlos A. Arango
6/23/17