OVERTONE
OVERTONE computes anharmonic vibrational spectra with second-order vibrational perturbation theory (VPT2). It works with any calculator of the Atomic Simulation Environment (ASE), from quantum chemistry programs such as ORCA or PySCF to machine-learning potentials, on-the-fly active learning with FALCON, and variational quantum algorithms on (simulated) quantum computers.
OVERTONE provides fundamentals, overtones and combination bands, IR intensities on request, and plotted spectra including the near-IR.
Authors
Basila Bhanu Pattani Ameerjan, Mads-Peter Verner Christiansen and Wilke Dononelli
Features
- Harmonic analysis with symmetrised Hessian and Eckart projection of translations and rotations
- Quartic force field from energies or forces by finite differences in dimensionless normal coordinates
- VPT2 variants: GVPT2 (default), standard VPT2, deperturbed VPT2 and DCPT2
- Automatic detection of Fermi resonances and variational treatment, including intensity borrowing
- Coriolis contributions, linear molecules, constrained atoms (e.g. adsorbates on surfaces)
- Overtones and combination bands up to any number of quanta
- IR intensities (only computed on request, e.g. not for energy-only ML potentials)
- Lorentzian and Gaussian spectra, log scale for the near-IR, experimental reference overlay
- Hybrid schemes with separate calculators for the Hessian and the anharmonic part
- Runs on a single node or distributed over a queueing system with Shephex
Requirements
- Python 3.11 or later
- NumPy, SciPy, ASE (3.23 or later), pydantic, rich, matplotlib
Optional extras: cluster (shephex), falcon (falcon-md), tutorial (tblite) and test.
Installation
pip install overtone-vpt2
or the latest version from GitHub
pip install git+https://github.com/thequantumchemist/overtone.git
For development, clone the repository and install it in editable mode.
git clone https://github.com/thequantumchemist/overtone.git
cd overtone
pip install -e ".[test]"
pytest
Minimal example
from ase.build import molecule
from ase.optimize import BFGS
from tblite.ase import TBLite
from overtone import calculate_anharmonics
def setup_calculator():
return TBLite(method="GFN2-xTB", verbosity=0, accuracy=0.01)
atoms = molecule("H2O")
atoms.calc = setup_calculator()
BFGS(atoms).run(fmax=1e-4)
result = calculate_anharmonics(atoms, setup_calculator, "water",
derivative_source="forces", intensities=True, max_quanta=3)
result.transitions_table()
result.plot_spectrum(log=True)
Use dry_run=True to see the number of single points before starting a large
calculation, and recompute_vpt2(directory, method=...) to repeat only the
VPT2 step of a finished run with another method.
Important settings
| Parameter | Default | Meaning |
|---|---|---|
method |
"gvpt2" |
VPT2 variant ("standard", "deperturbed", "dcpt2", "gvpt2") |
derivative_source |
"energy" |
differentiate energies or analytic forces (fewer points) |
anharmonic_delta |
0.2 |
step in dimensionless normal coordinates, not in Angstrom |
stencil |
1 |
finite-difference stencil (0 to 3) |
coupling |
3 |
3 includes all cubic three-mode couplings |
harmonic_delta |
0.005 |
Cartesian step for the Hessian in Angstrom |
intensities |
False |
compute IR intensities (needs dipoles) |
max_quanta |
2 |
highest total number of quanta in the band list |
Finite differences amplify numerical noise of the energies. Converge SCF
calculations tightly (e.g. ORCA VeryTightSCF). The docstring of
calculate_anharmonics describes every parameter.
Manual
The manual (PDF) describes the installation and every function, class and parameter of OVERTONE with its default value.
Tutorial
The tutorials folder contains six examples, from a one-call workflow with
GFN2-xTB to Fermi resonances, hybrid schemes and a comparison with the
experimental near-IR spectrum of water.
The paper folder contains all calculations of the publication.
License
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
Citation
Please cite the OVERTONE paper (in preparation) when using the code.
Metadata
Release files for overtone-vpt2 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| overtone_vpt2-0.1.0.tar.gz | 81.9 kB | Without provenance | Details for overtone_vpt2-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| overtone_vpt2-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for overtone_vpt2-0.1.0-py3-none-any.whl |
Total release size: 160.4 kB
Release files / overtone_vpt2-0.1.0.tar.gz
| Download URL | overtone_vpt2-0.1.0.tar.gz |
|---|---|
| Size | 81.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5dd619da85165e960c37f2b1f144c403e1efb80334ef3964e5d97c0bcd427beb
|
|
BLAKE2b-256 checksum How to use checksums |
9708f500f9a79a928e059d965c81bc41e0ee356acaafbc09b4690a012d59a9ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / overtone_vpt2-0.1.0-py3-none-any.whl
| Download URL | overtone_vpt2-0.1.0-py3-none-any.whl |
|---|---|
| Size | 78.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f06a3a0525c43e26ed52c7dd88179f6321b958700bcb5152f1cf18b25804df4
|
|
BLAKE2b-256 checksum How to use checksums |
23cfd23230bc4acb2ae895d1435f7df90d91555866b860a9576d44002c6a856e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for overtone-vpt2 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.