ferric
A quantum chemistry engine written in Rust, with Python bindings and a TOML-driven command line. It computes Hartree–Fock and DFT energies and gradients, the MP2 family, coupled cluster, RPA and GW, and constrained DFT, with libint2 for the integrals.
pip install ferric # Linux x86_64, Python 3.10–3.13
Start here
Get started → Install the wheel and compute a checked number in under a minute. Then read the sharp bits that catch new users.
How-to guides → Task recipes: charged and open-shell molecules, optimization, SMILES input, QM/MM, ligand pipelines. Choosing a method maps a chemistry question to a method.
Methods → What each method family is, how to run it, how accurate it is, what it costs and what to cite.
Reference → Capabilities and validation · Input file · Python API · Examples · Rust API
| If you are | Start with |
|---|---|
| A chemist who wants numbers | Your first calculation, then Choosing a method |
| Coming from PySCF | For PySCF users |
| Working on drug-discovery workflows | End-to-end applications and QM/MM |
| A method developer | Electronic response, Architecture, Rust API |
| An automated agent | For automated agents |
Implemented ≠ validated
Working code is not a checked number. These pages describe what exists; how far each capability's numbers have been checked against an independent reference differs a lot between methods. Each one is graded individually in Capabilities and validation. Read it before relying on a result.
The idea
ferric is organized around electronic response: how the density reacts to
a perturbation. That object appears as the polarizability \( \alpha \), the
dielectric function \( \varepsilon \) and the susceptibility \( \chi \), and
three of the method families here are different ways of getting it right where
standard methods get it wrong:
- Attenuated MP2: MP2 builds dispersion from an uncoupled polarizability, which overbinds some systems (π-stacking is the classic case). Attenuating the correlation operator removes the long-range part where that error lives.
- PDEP-RPA / GW: the dielectric matrix is the density–density response. PDEP keeps only its dominant eigenmodes, a low-rank representation of the screening used by RPA correlation and the GW interaction.
- Constrained DFT: a constraint couples to the density and reads its response, building charge-localized diabatic states and their electron-transfer couplings.
Electronic response develops the argument and says which parts of it are demonstrated and which remain a design premise.
Source, license, citation
github.com/mgoldey/ferric, dual-licensed MIT / Apache-2.0. To cite ferric and the methods you used, see References and citing.