Computational Thermo Equations¶
\(pK_a\) Equation¶
\(K_{eq}\) From \(pK_a\) of Reactant Species¶
e.g. Will ammonia and acetonitrile react?
\(k_{eq}\) is much less than 1, so we have much more reactant than product. No reaction, but ammonium will:
As a shortcut, we can also say that kinetcs favours the acid with the higher \(pK_a\), and as there’s a big difference between the two, the reactants will be favoured over the reagents
Calculating \(pK_a\) From Thermodynamics Calculations¶
Using ‘the proton exchange method’ from A universal approach for continuum solvent \(pK_a\) calculations: are we there yet? (Ho and Coote 2010), we can use a reference species with a known \(pK_a\)to act as our proton acceptor, this will give us the reference \(pK_a(\text{HRef})\).
From this point, we need to calculate \(\Delta G_{sol}\) (not to be mixed with \(\Delta G_{solv}\)
Warning
Watch your units. You’ll need your \(\Delta G_{soln}^*\) in \(J\cdot mol^{-1}\)
And now we can use the reference value to correct our calculated \(pK_a\)
Another method if using water as a proton acceptor is to use this equation, which accounts for the bulk concentration of water. Change it to \(+log[\ce{H2O}]\) if using \(\ce{OH-}\) as your proton acceptor.
Warning
If using the \(\ce{H2O/H3O+}\) cycle as your HRef, calculations seem to struggle with \(\Delta G_{solv}(\ce{H3O+})\), so the experimental value of -0.1756148
can be used instead, along with \(pK_a(\ce{HRef})=-1.7\). You could also use \(\ce{OH-/H2O}\:\:[pK_a(\ce{HRef})=14]\) instead,
ZPVE and Thermodynamics¶
The ZPVE can be calculated from the frequencies as such:
Which can then be used to calculate \(G^\circ\) from \(E^\circ\)
Where:
- \(q=\) Partition function
- \(Q_c=\) Reaction quotient \(\bigg(Q_c=\frac{[C]^c[D]^d}{[A]^a[B]^b} \text{ where: } \ce{aA + bB -> cC + dC}\bigg)\)
Reaction Constants from Thermodynamics¶
Transition State Theory¶
- \(k =\) Rate constant
- \(T =\) Temperature (K)
- \(\Delta G =\Delta G_f-\Delta G_i\)
- \(R =\) Gas constant
- \(h =\) Planck constant
- \(\kappa=\) Transmission coefficient (see To Account for Tunnelling)
Note
If not accounting for tunnelling, \(\kappa=1\)
Eyring \(\big(\ln\big(\frac{k}{T}\big)\) over \(\frac{1}{T}\big)\)¶
Arrhenius \(\big(\ln(k)\) over \(\frac{1}{T}\big)\)¶
To Account for Tunnelling¶
Note
I haven’t managed to make this work in plotting, I think I’m messing up something with how I’m handling \(\text{Im}(\nu^\ddagger)\).
Edit #1: I have figured this out… it turns out I just need to retake a basic spectroscopy unit
Edit #2: Okay, I’m not sure anymore, since the barrier height seems to not do anything
Edit #3: I made it better! I switched my constants to be in units of \(Eh\) and made the input to be in \(\kjmol\) which I convert to \(Eh\). Since the function is outputting \(\kappa(T)\), the internal units are irrelevant.
Edit #4: While experimenting with some other things in this plot, I noticed that the discontinuation between the two pieces of the piecewise functions was because I had incorrectly transcribed the function (in one piece I wrote \(\frac{1}{\alpha-\beta}\) where I should have put a \(\frac{1}{\beta-\alpha}\), so they didn’t line up properly)
Skodje-Truhlar¶
Where:
- \(V^\ddagger=\) Activation energy (this is formally \(V_0=E^\ddagger-E_i\))
- \(V=\max(V_1,0)\) (formally \(V_2\)); where \(V_1=\max\big([E_f-E_i],0\big)\)
- \(\text{Im}(\nu^\ddagger)=\) Magnitude of the imaginary frequency of the transition state
- Note that this needs to be the frequency in \(Hz\) or \(s^{-1}\), so you’ll need to convert it from \(\tilde\nu(cm^{-1})\) as \(\nu(s^{-1})=\frac{c\cdot100}{\tilde\nu(cm^{-1})^{-1}}\)
- Also note that the frequency is temperature dependent, so this can’t be extrapolated beyond the temperature of the calculation.
This gives your transmission coefficient (\(\kappa(T)\)) which can be inserted back into the Eyring–Polanyi equation
Example
A working?? example of this can be played with here on Desmos
Boltzmann Distributions (Fractional Population Distribution)¶
Note
If you’re dealing with absolute energies, the energy could be relative to each other. e.g. \(\max(w_i-w_n)\). This will solve issues with numbers overflowing if they get too big.