Computing standard thermodynamic properties of reactions#

Written by Allan Leal (ETH Zurich) on Jan 21th, 2022

Attention

Always make sure you are using the latest version of Reaktoro. Otherwise, some new features documented on this website will not work on your machine and you may receive unintuitive errors. Follow these update instructions to get the latest version of Reaktoro!

This tutorial demonstrates the use of Reaktoro for the computation of standard thermodynamic properties of a chemical reaction such as:

  • the equilibrium constant of reaction, Kr

  • the standard Gibbs energy of reaction, Ξ”Gr∘

  • the standard Helmholtz energy of reaction, Ξ”Ar∘

  • the standard enthalpy of reaction, Ξ”Hr∘

  • the standard internal energy of reaction, Ξ”Ur∘

  • the standard entropy of reaction, Ξ”Sr∘

  • the standard volume of reaction, Ξ”Vr∘

  • the standard heat capacity (constant pressure) of reaction, Ξ”CP,r∘

  • the standard heat capacity (constant volume) of reaction, Ξ”CV,r∘

Reaktoro computes these reaction properties using the standard thermodynamic properties of the reacting species at a given temperature and pressure. For example, consider the reaction

2A+3B=C.

The standard Gibbs energy of this reaction is computed using

Ξ”Gr∘=GCβˆ˜βˆ’2GAβˆ˜βˆ’3GB∘.

This rationale (stoichiometric property contribution from product species minus the contribution of reactant species) can be applied to all other standard thermodynamic properties (e.g., Ξ”Hr∘) and every reaction.

The equilibrium constant of the reaction is defined as:

ln⁑Kr=βˆ’Ξ”Gm∘RT

but it’s often handled in logarithm base 10, lg⁑Kr=ln⁑Kr/ln⁑10.

It’s very easy to compute these reaction properties in Reaktoro as shown next:

from reaktoro import *

db = PhreeqcDatabase("phreeqc.dat")

rxn = db.reaction("H+ + OH- = H2O")

rprops = rxn.props(25.0, "C", 1.0, "atm")
print(rprops)
+------------------------------------------------+-------------+-------------+
| Property                                       |       Value |        Unit |
+------------------------------------------------+-------------+-------------+
| Temperature                                    |    298.1500 |           K |
| Pressure                                       |      1.0132 |         bar |
| Equilibrium Constant (log base 10)             |     13.9948 |           - |
| Delta Standard Gibbs Energy                    | -79882.1698 |       J/mol |
| Delta Standard Enthalpy                        | -56358.9238 |       J/mol |
| Delta Standard Volume                          |  2.2208e-05 |      m3/mol |
| Delta Standard Volume (Temperature Derivative) |  0.0000e+00 |  m3/(mol*K) |
| Delta Standard Volume (Pressure Derivative)    |  0.0000e+00 | m3/(mol*Pa) |
| Delta Standard Isobaric Heat Capacity          |    189.6441 |   J/(mol*K) |
| Delta Standard Isochoric Heat Capacity         |    189.6441 |   J/(mol*K) |
| Delta Standard Internal Energy                 | -56361.1740 |       J/mol |
| Delta Standard Entropy                         |     78.8974 |   J/(mol*K) |
| Delta Standard Helmholtz Energy                | -79884.4200 |       J/mol |
+------------------------------------------------+-------------+-------------+

Another more complicated example (mineral dissolution reaction):

rxn = db.reaction("Kaolinite + 6*H+ = H2O + 2*H4SiO4 + 2*Al+3")

rprops = rxn.props(40.0, "C", 1.0, "atm")
print(rprops)
+------------------------------------------------+--------------+-------------+
| Property                                       |        Value |        Unit |
+------------------------------------------------+--------------+-------------+
| Temperature                                    |     313.1500 |           K |
| Pressure                                       |       1.0132 |         bar |
| Equilibrium Constant (log base 10)             |       6.1956 |           - |
| Delta Standard Gibbs Energy                    |  -37143.5851 |       J/mol |
| Delta Standard Enthalpy                        | -147695.2000 |       J/mol |
| Delta Standard Volume                          |  -6.6423e-05 |      m3/mol |
| Delta Standard Volume (Temperature Derivative) |   0.0000e+00 |  m3/(mol*K) |
| Delta Standard Volume (Pressure Derivative)    |   0.0000e+00 | m3/(mol*Pa) |
| Delta Standard Isobaric Heat Capacity          |       0.0000 |   J/(mol*K) |
| Delta Standard Isochoric Heat Capacity         |       0.0000 |   J/(mol*K) |
| Delta Standard Internal Energy                 | -147688.4696 |       J/mol |
| Delta Standard Entropy                         |    -353.0309 |   J/(mol*K) |
| Delta Standard Helmholtz Energy                |  -37136.8547 |       J/mol |
+------------------------------------------------+--------------+-------------+

That’s it! As long as you specify species names that exists in the database, you are free to define your reaction as you wish.