Siam Quantum supports Quantum Molecular Dynamics (QMD) simulation. For the impatient, you can skip right ahead to a tutorial video on how to simulate QMD with Siam Quantum (at the end of this page); and then come back for more details.
Minimum Requirement
At the start of the QMD, Siam Quantum reads an initial 3D structure of the molecule as usual; but it also needs to know the initial velocity of the nuclei. For example,
#sq benzene-he.xyz 321g.txt -QMD
The option -QMD tells Siam Quantum to perform quantum molecular dynamics simulation for 25 steps by default, with 0.001 pico-second time step. To change the default values you can supply the option -QMDMAX and -DT, for example,
#sq benzene-he.xyz 321g.txt -QMD -QMDMAX=50 -DT=0.002
would set the maximum number of MD steps to 50, and the time step to 0.002 pico-second. The program continuously save output to the file "traj.xyz" which contains the positions of all nuclei at each time step. The file can be visualized using VMD.
Initial Velocity
However, the above commands do not tell Siam Quantum what the initial velocities of the nuclei are, so it sets all initial velocities to zero.
There are 2 ways to specify the initial velocity: a) randomly and b) by supplying velocity file.
a) To have Siam Quantum generates the velocity randomly, use the option -INITTEMP, for example,
#sq benzene-he.xyz 321g.txt -QMD -INITTEMP=300
will random all the initial velocities so that they are consistent with the temperature of 300K. More specifically, it set the speed of each nucleus to sqrt( 3kBT/m ). Then, the program randomly determines the direction of the velocity.
b) In a more delicate setup, you might need to specify the velocity of each nucleus one by one using option -INITVEL. This can be done by constructing a velocity file in XYZ format. This is identical to the 3D structure file, with one minor difference. Instead of the Cartesian coordinate X,Y,Z; the velocity file contains the Vx,Vy,Vz component in nano-meter/pico-second unit.
nm/ps is equal to km/s. For comparison, the speed of sound is approximately 0.3 nm/ps.
#sq benzene-he.xyz 321g.txt -QMD -INITVEL=benzene-he-vel.xyz
The above command asks Siam Quantum to read initial velocity from the file "benzene-he-vel.xyz". You can locate the files "benzene-he.xyz" and "benzene-he-vel.xyz" in the \examples directory. The command above should produce the result shown in the animation at the beginning of this document.
Internally, Siam Quantum perform QMD simulation by using Verlet algorithm. The total energy (potential + kinetic) should be constant (up to a few kJ/mol) during the course of the simulation.
Temperature Control
Temperature control is also possible via "velocity scaling" technique. Namely, Siam Quantum multiplies all velocities of all the nuclei by a single constant. The constant is chosen such that the average kinetic energy of the system is equal to 3/2 kB T. To maintain constant temperature, use the option -KEEPTEMP, for example
#sq benzene-he.xyz 321g.txt -QMD -INITTEMP=300 -KEEPTIMP=300
The above command not only generates the velocities randomly at 300K, it attempts to maintain the temperature at 300K afterward.
When using temperature control, the total energy will not be constant because the molecule needs to exchange energy with environment in order to maintain its temperature.
Combination with Uniform Electric Field
You can study how a molecule moves under intense electric field. Generally they tend to vibrate, rotate, or precess under applying electric field. For example,
#sq benzene.xyz 321g.txt -EF=0,0,0.01 -QMD
will simulate the motion of benzene molecule under 0.01 AU electric field in the z-direction. 1 AU is equal to 5.14x1011 V/m, which is a very high field. A typical value should be around 0.01 AU. You can look at the output file "traj.xyz"; and animate it using VMD. It really looks like a jellyfish.