You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds a `quasi_rrho` option (CLI `--quasi-rrho`) for the vibrational
entropy.
## Why
The rigid-rotor-harmonic-oscillator entropy of a mode **diverges as its
frequency → 0**, so low-frequency modes (floppy torsions, weak/hindered
rotors, non-covalent complexes) get a spuriously large entropy — a
well-known RRHO weakness. This is also the dominant error left in
implicit-solvent free energies (#66).
## What
Grimme's quasi-RRHO ([Chem. Eur. J. 2012, 18,
9955](https://doi.org/10.1002/chem.201200497)): each mode's entropy is
interpolated between the harmonic-oscillator and free-rotor values,
weighted by `w = 1 / (1 + (100/ν)^4)`. High-frequency modes stay
harmonic; low-frequency modes approach the finite free-rotor limit.
- **`thermo/thermo.py`** — `Thermo(..., quasi_rrho=False)`;
`_compute_vibrational_entropy` uses the new `_quasi_rrho_entropy`
interpolation when enabled. The harmonic path is numerically unchanged,
so the **default preserves existing results**.
- **`thermo/api.py`, `thermo/screening.py`, `cli/thermo.py`** — thread
`quasi_rrho` through `run_thermo`, `dftbplus_thermo`, `screen`, and
`screen --quasi-rrho`.
Engine-independent (it acts on the frequencies), so it also applies to a
future xTB engine.
## Usage
```
thermo screen mols/ --solvent water --quasi-rrho
```
## Validation
- **Physics**: a molecule with 25/40 cm⁻¹ modes has its entropy reduced
by ~3.4 cal/mol/K (≈ +1 kcal/mol in G) — the spurious low-mode entropy
is tamed; a high-frequency-only case is unchanged (ΔS ≈ 0.01).
- **Real DFTB+**: ethane (lowest real vibration 277 cm⁻¹, all > 100)
gives qRRHO ≈ harmonic, and the harmonic S = 54.5 cal/mol/K matches the
experimental ~54.8 — confirming the correct mode set is used.
- Offline suite green (206 passed); real-DFTB+ integration green (54
passed, 0 skips); codecov patch fully covered.
0 commit comments