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):
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: