vibe-qc

Quantum chemistry for molecules and solids.

vibe-qc is a Python + C++17 electronic-structure code. The molecular stack — Hartree-Fock, density-functional theory, Møller-Plesset theory, analytic gradients, D3(BJ) dispersion — is validated against PySCF to machine precision. The periodic stack delivers 1D / 2D / 3D Hartree-Fock and Kohn-Sham DFT with Monkhorst-Pack k-meshes, Ewald-summed Madelung, band structure and density of states, and is growing toward CRYSTAL-style crystalline-orbital calculations at full-SCF accuracy.

Built on libint (Gaussian integrals), libxc (500+ XC functionals), and spglib (crystal symmetry). Licensed MPL-2.0.

Current release: 0.11.1 — Sun’s Stingray

The site you’re looking at renders the release branch — the fast-forward-only public snapshot. main is at a higher X.Y.dev0 development version; see release_process for the branch model. Per-release codenames (Scientist + Animal, loosely tied to whatever shipped) are catalogued in the release-codenames roadmap entry.

💚 vibe-qc is funded by individual sponsors

vibe-qc is built and maintained by one person in evenings and weekends, on personal hardware, with no institutional backing. If the project is useful to you — or if you think the Cyclic Cluster Model reaching CCSD(T) on an open-source code is worth existing — please consider supporting it via GitHub Sponsors (recurring monthly, zero fees) or Ko-fi (one-time, no GitHub account required). Every sponsorship directly funds the Claude Max subscription that drives day-to-day development, the self-hosted server behind vibe-qc.com, and — most urgently — bigger hardware: the project currently develops on a single Apple M2 laptop, and that’s what caps every regression test, CI benchmark, and CRYSTAL-Tutorial port to small systems. Smallest single actionable item right now: the NIST Crystal Data SRD 3 single-user subscription at $200/year — fully fundable by one sponsor for a year, and unlocks programmatic access to a curated crystallographic database for the v2.x CCM reference work. See the support page for the full pitch and the near-/long-term hardware goals; public sponsors are listed on the sponsors page.

✅ New in v0.11.0 (Sun’s Stingray)

v0.11.0 brings implicit solvation to the molecular stack: CPCM / COSMO continuum solvation now works with effective core potentials, so heavy-element chemistry in solution is a single run_job call. The solvation surface ships its full citation trail (Tomasi’s 2005 continuum-models review and the Lange–Herbert switching-Gaussian cavity), assembled automatically into every job’s .bibtex. The release also extends the periodic semiempirical stack with an end-to-end periodic PM6 tutorial, and consolidates the QVF visualization format with a complete file-format tutorial.

The periodic Gaussian-density-fitting (GDF) parity chain (compcell + multi-k + AFT) remains the in-progress flagship — it is held to PySCF KRHF.density_fit() parity as the only gate and is not yet closed; the shipping periodic surface stays the Ewald-3D and BIPOLE routes. See the roadmap for the deferral chain and docs/handover_gdf_v0_11_2026_05_29.md for the precise state.

See CHANGELOG for the full notes.

For the current open-issues list (workarounds, regression-test pointers, status of each known bug), see troubleshooting and the issue tracker.

Install

git clone https://gitlab.peintinger.com/mpei/vibeqc.git
cd vibeqc
./scripts/install.sh                 # native deps + venv + pip install + banner

install.sh accepts --dev (main), --branch NAME (any branch or tag), and other knobs — see installation.md for the full surface and the manual setup_native_deps.sh recipe. git clone lands you on the latest tagged release (the project’s default branch is release, which fast-forwards from each new tag); add --dev for bleeding-edge main or --branch vX.Y.Z to pin a specific tag for reproducibility.

setup_native_deps.sh builds and installs every native dependency (libint, libxc, spglib, FFTW3, libecpint) into third_party/ and populates the bundled basis library. Re-running is a no-op if everything’s already built. Full per-platform dependency lists (macOS / Arch / Manjaro / Debian / Ubuntu) are in installation.

Your first calculation

Make a working directory outside the repo — vibe-qc writes its outputs into the current working directory, and you don’t want .out / .molden / .traj files landing inside the source tree:

mkdir -p ~/vibeqc-runs/water
cd ~/vibeqc-runs/water

Save the following as water.py in that directory (any filename works — vibe-qc just runs whatever Python you point it at):

from vibeqc import Atom, Molecule, run_job

mol = Molecule([
    Atom(8, [ 0.0,  0.00,  0.00]),
    Atom(1, [ 0.0,  1.43, -0.98]),
    Atom(1, [ 0.0, -1.43, -0.98]),
])

run_job(
    mol,
    basis="6-31g*",
    method="rks",
    functional="PBE",
    dispersion="d3bj",
    optimize=True,
    output="water",
)

Run it with the virtual-env’s Python (the one pip install populated above, not your system python3). Since you’re no longer in the repo, give the full path:

~/path/to/vibeqc/.venv/bin/python water.py

Replace ~/path/to/vibeqc/ with wherever git clone landed. That ~3-second run produces three files in ~/vibeqc-runs/water/:

  • water.out — banner, SCF trace, energy breakdown, orbital table, HOMO-LUMO gap, Mulliken / Löwdin charges, Mayer bond orders, dipole, and wall-clock timings.

  • water.molden — molecular orbitals for Avogadro / Jmol.

  • water.traj — ASE trajectory for the optimization, viewable with ase gui water.traj.

Tip

Skip the path prefix. Activate the venv once per shell session and the path resolves automatically — works from any directory:

source ~/path/to/vibeqc/.venv/bin/activate    # bash / zsh
python water.py                                # uses the venv's python

Deactivate with deactivate when you’re done.

Common mistake: ModuleNotFoundError: No module named 'vibeqc' means you ran the wrong Python. Either give the full ~/path/to/vibeqc/.venv/bin/python path or activate the venv first. The bare .venv/bin/python shorthand only works when your shell is sitting inside the repo.

See quickstart for a 30-minute end-to-end walkthrough (HF, periodic SCF, orbital cube), running for the full “how to invoke vibe-qc scripts” reference (venv, threading, output capture, SSH workflows), good practices for the working conventions nobody tells you (file layout, naming, when to trust a number), the tour for the wider API surface (run_job, ASE Calculator, logging, custom basis sets, tests), or dive into the tutorials for worked examples.

Capabilities today

Molecular. Restricted and unrestricted HF / KS-DFT with analytic nuclear gradients. The full libxc functional library — LDA, GGAs, hybrids, the τ-dependent meta-GGA family (TPSS, M06-2X, SCAN, r²SCAN), and the first range-separated hybrid (ωB97X). Møller-Plesset theory (MP2 / UMP2 / RI-MP2 / SCS-MP2 / SOS-MP2) and the B2PLYP / DSD-PBEP86 double hybrids. Non-mean-field wavefunction methods — Full CI, selected CI, DMRG, variational 2-RDM — via vibeqc.solvers. Density fitting with the RIJK and RIJCOSX Fock-build kernels (RIJCOSX validated to 0.13 mHa vs ORCA 6.1.1). Effective core potentials for heavy-element chemistry. CPCM / COSMO implicit solvation. Grimme D3(BJ) / D4 dispersion. 142 bundled basis sets plus the solid-state pob-* family. All validated against PySCF and ORCA.

Periodic. 1D / 2D / 3D PeriodicSystem geometry, Monkhorst-Pack k-meshes with IBZ reduction. Γ-only RHF and KS-DFT — including hybrids — via native Gaussian density fitting; multi-k closed-shell RHF / KS-DFT via 3D Ewald. Fermi-Dirac smearing for metals. The CRYSTAL-gauge BIPOLE periodic-RHF parity workstream. Band structure and density-of-states plotters. Gaussian cube + extended-XYZ + POSCAR + XSF / BXSF writers.

Tooling. OpenMP parallelism throughout. Pre-flight memory budget estimator. ASE Calculator integration for geometry optimization and vibrational frequencies. Automatic per-job citation files (.bibtex / .references). The vibe-view interactive 3D viewer for structure / orbitals / densities / bands / spectra / trajectories out of every .qvf archive. The vq queue for remote job submission.

See the feature matrix for details and the roadmap for what’s next.

Where to go next

Getting started

Status

vibe-qc is pre-release software. Molecular HF/DFT/MP2 is stable and production-ready for small-to-medium systems; periodic calculations converge cleanly in the molecular-limit regime and are being hardened for tight-cell bulk work. Follow the roadmap for what’s shipping next.

Licensed under the Mozilla Public License 2.0. Source at gitlab.peintinger.com/mpei/vibeqc.

Feedback and bug reports

Found a bug, have a feature request, or want to send a patch? The decision tree lives in CONTRIBUTING.md. The short version: