Dear Users,
I have been trying to reproduce ln(qtrans), ln(qrot), and ln(qvib) as given by the freeH script. I can reproduce the vibrational partition function well, but I cannot reproduce the translational/rotational values using the equations printed in the output. I have also tried using equations given in "Molecular Thermodynamics" by McQuarrie and Simon. I'm not sure what I am missing, but I cannot get the equations for qtrans and qrot to work. In fact, for qrot freeH says to use A*B*C whereas McQuarrie and Simon has a very similar equation but it uses the rotational temperatures instead, that equation also doesn't reproduce ln(qrot).
FreeH says it is using the following:
qtrans=(m*k*T/(2*pi))^1.5*v h/(2*pi)=1a.u.(omitted) m=mol. mass in a.u. v=vol. per mol. of ideal gas
qrot=((2*pi*kT)^3*A*B*C)^0.5/(sigma*pi) A,B,C=moments of inertia in a.u.
For qrot, I calculate the same values of A, B, and C from the inertia tensor but fail to reproduce qrot from those. Which is strange since it is simple maths from there, maybe I am missing some unit conversion?
Could you share more details about freeH, there is nothing in the manual about it.
I have an example below for a water molecule showing that I am using the equations in freeH but getting a different result. For clarity, my mass is in a.u. and I took volume to be 22.4 Lmol-1 converted to borh^3 (1.5125e+29 bohr^3).
freeH output:
----------------------------------------
eigenvalues & -vectors of inertia tensor
----------------------------------------
2.17654 6.32312 4.14658
T p ln(qtrans) ln(qrot) ln(qvib)
(K) (MPa)
298.15 0.1000000 14.94 3.77 0.00
My equations and results:
q_trans = ((mass * k * T) / (2 * pi))**1.5 * volume
q_rot = np.sqrt((2*pi*k*T)**3*A*B*C)/(sigma*pi)
BV = 0.9914
v = np.array(v[6:])*BV
top = c*h*v
bot = k*T
vexp = 1 - np.exp(-top/bot)
q_vib = np.prod(1/(1-np.exp(-(v*h*c)/(k*T))))
Rotational Moments
A = 2.17654
B = 4.14658
C = 6.32312
Partition Functions
ln(qtrans) = -1.64
ln(qrot) = -67.47
ln(qvib) = 0.0
Best,
Dempsey