QC Thermochemistry turns optimized geometries and their harmonic frequencies into thermodynamic functions over temperature. For every structure it computes the zero-point energy, enthalpy, entropy, Gibbs energy, and heat capacity of the ideal gas, optionally with quasi-RRHO corrections that keep soft torsions from dominating the entropy. Species with a known standard enthalpy of formation also get two-range NASA-7 polynomials, written as a Cantera species entry. It is the step between a frequency calculation and kinetics or reactor modeling, and runs on CPU.
How a run works
- Each SDF record (or mol block) is one optimized structure. Its
molecule_indexandstructure_indextags join it to its rows in the uploadedvibrations.csv, the frequency table from the same calculation. - Isotope masses and the moments of inertia come from the geometry, so the rotor type is detected automatically: atoms, linear molecules, and nonlinear molecules are each treated correctly.
- On every temperature of the grid (298.15 K is always included), the worker adds the translational (Sackur–Tetrode at the chosen pressure), rotational, vibrational, and electronic-spin contributions. Enthalpy includes the zero-point energy and RT; heat capacity is the temperature derivative of that enthalpy.
- A structure that fails gets a row with its error in the summary, and the rest of the run continues.
Choosing the low-frequency treatment
- Quasi-RRHO (S + H), the default: below the damping frequency ω₀ (100 cm⁻¹ by default), each mode's entropy blends toward a free rotor (Grimme, 2012) and its energy toward RT/2 (Li and Head-Gordon, 2015). This is the treatment GoodVibes popularized, and it avoids the very large entropies harmonic oscillators give to soft modes.
- Quasi-RRHO (S only) applies the entropy correction and keeps the harmonic enthalpy.
- Harmonic (RRHO) treats every mode as a harmonic oscillator.
A frequency scale multiplies every wavenumber before the thermochemistry, for example a method-specific zero-point scale factor. Imaginary modes are negative wavenumbers in the table; by default they are dropped and counted for each structure, which is the usual convention for a transition state's reaction coordinate. You can make them fail the structure instead.
Getting the frequencies
- From xTB / CREST: run its frequencies mode and use
structures.sdfwithvibrations.csv. By default xtb optimizes first. To keep a transition state, run the Hessian at the input geometry instead. - From PySCF Electronic Structure: its frequency mode writes
geometries.sdfandvibrations.csv. It computes the Hessian at the geometry it is given, so optimize first (or chain an optimization into it) unless the structure is already a stationary point.
In a workflow, connect those outputs straight to this tool's molecules and vibrations inputs.
Symmetry number and multiplicity
Each molecule has a row for its rotational symmetry number σ (for example 2 for water, 3 for ammonia, 12 for methane) and its spin multiplicity, which sets the electronic entropy R ln(multiplicity). Blank cells use σ = 1 and the multiplicity implied by the structure's unpaired-electron tag. Symmetry numbers are not detected from the geometry, so set them for symmetric molecules: a wrong σ shifts the entropy by R ln σ.
NASA-7 polynomials for Cantera
Absolute quantum chemical energies are not enthalpies of formation, so polynomials are only fitted for molecules where you enter ΔHf(298). For each, the lowest-G conformer is fitted with two NASA-7 ranges that meet at a common temperature with continuous Cp and slope, anchored so that H equals ΔHf and S equals the computed entropy at 298.15 K. The species go into mechanism/primary.yaml, a Cantera YAML file you can merge into a mechanism or pass to Cantera. The fit's largest errors in Cp, H, and S against the statistical-mechanics values are in nasa_fit.csv.
Reading the results
thermo.csv: one row per species and temperature, withh,g(kJ/mol, the electronic energy plus the thermal correction, when the structure carries its energy),sandcp(J/mol/K), and the correctionsh_corr,g_corr, andzpe. The columns and units are what Transition-State-Theory Rate Calculator reads as species thermochemistry.summary.csv: one row per structure, with its rotor type, σ, multiplicity, mode counts, imaginary modes, lowest frequency, and the values at 298.15 K.mechanism/primary.yamlandnasa_fit.csv: the NASA-7 species and their fit errors.metadata.json: the settings and units of the run.
Limits and not covered
The model is the ideal gas with rigid rotors and (quasi-)harmonic oscillators. Hindered-rotor treatments, anharmonic or VPT2 corrections, conformer mixing into one species, and automatic symmetry detection are not part of this tool, and enthalpies of formation are not estimated: for estimated thermochemistry from structure use Group-Contribution Properties and NASA / Cantera Species Builder.
Related tools
Compute frequencies with xTB / CREST or PySCF Electronic Structure, turn reactant and transition-state thermochemistry into rate constants with Transition-State-Theory Rate Calculator, and run reactors with the polynomials in Cantera.