Thermodynamics
Available since Sierra v1.5.0.
The ThermodynamicsInput
can be used to straightforwardly calculate gas-phase thermodynamic quantities.
The results of a ThermodynamicsInput
calculation are stored in the ThermodynamicsResult
object.
Example
The following examples demonstrate how to perform a thermodynamics calculation:
import sierra
from sierra.inputs import *
water = Molecule(pubchem="water")
# Calculate thermodynamic properties for water at GFN1-xTB level of theory
thermo_inp = ThermodynamicsInput(molecule=water, method=XTBMethod(model="GFN1"))
thermo_result = sierra.run(thermo_inp)
print("Thermodynamic properties for water:")
#> Thermodynamic properties for water:
print(thermo_result.gibbs_free_energy_total)
#> -5.767088376824507
print(thermo_result.heat_capacity)
#> 9.620470386724576e-06
ThermodynamicsInput
Fields
method
-
The computational method for this call
- Type: One of: [MethodBase, CustomMethod, XTBMethod, HFMethod, DFTMethod, EMFTMethod, OrbNetMethod]
molecule
-
The molecule the result is computed with
- Type: Molecule
pressure
-
The pressure for which thermodynamic quantities are calculated.
- Type: PressureQuantity
- Default: "3.4e-09 hartree/bohr**3"
temperature
-
The temperature for which thermodynamic quantities are calculated.
- Type: TemperatureQuantity
- Default: "300 kelvin"
details
-
Additional detail parameters to supply to the computation
Detail Fields
energy_threshold
-
threshold for energy convergence
- Type: Optional[float]
result_contract
-
- Type: SingleResultContract
store_extras
-
This field determines the amount of output that is kept in the 'extras' field in addition to the requirements of the contract. 'True' will lead to storing all available information and 'False' will lead to storing no information beyond the requirements of the contract. Alternatively, a list of field names can be provided that shall be stored.
- Type: One of: [bool, List[str]]
- Default: False
ThermodynamicsResult
Note that for each field labeled *_correction
, there is a corresponding field *_total
. E.g: internal_energy_correction
and internal_energy_total
. In each case, the *_total
value is the sum of the correction and the reference_energy
.
Fields
All the fields in ThermodynamicsInput and the following:
enthalpy_correction
-
The enthalpy (H) of the system, relative to the 'reference_energy'.
- Type: EnergyQuantity
entropy
-
The total entropy (S) of the system.
- Type: EntropyQuantity
extras
-
Additional key/value pairs generated during the computation.
- Type: Mapping[str, Any]
- Default: {}
gibbs_free_energy_correction
-
The Gibbs free energy, G = H - TS, relative to the 'reference_energy'.
- Type: EnergyQuantity
heat_capacity
-
The heat capacity at constant pressure.
- Type: EntropyQuantity
internal_energy_correction
-
The internal energy (U) of the system, relative to the 'reference_energy'.
- Type: EnergyQuantity
reference_energy
-
The energy on top of which thermodynamic contributions of the energy are added. Usually, this is the electronic energy.
- Type: EnergyQuantity
zero_point_energy_correction
-
The zero-point vibrational energy of the system, i.e. the energy due to molecular motion at zero Kelvin, relative to the 'reference_energy'.
- Type: EnergyQuantity
internal_energy_total
-
The total internal energy of the system,
U = reference_energy + internal_energy_correction
.- Type:
EnergyQuantity
- Type:
enthalpy_total
-
The total enthalpy (H) of the system,
H = reference_energy + enthalpy_correction
.- Type:
EnergyQuantity
- Type:
gibbs_free_energy_total
-
The total Gibbs free energy,
G = reference_energy + gibbs_free_energy_correction
.- Type:
EnergyQuantity
- Type:
zero_point_energy_total
-
For consistency, this value is defined as
ZPE = reference_energy + zero_point_energy_correction
.- Type:
EnergyQuantity
- Type: