License + bundled-data inventory

vibe-qc is distributed under the Mozilla Public License 2.0. The full license text lives in the repository root as LICENSE.

This page covers three related but distinct things, in the order users tend to ask:

  1. vibe-qc’s own license (your right to use it).

  2. Linked native libraries (whose licenses transitively bind any binary distribution of vibe-qc).

  3. Bundled data, basis sets, ECP libraries, and external structures / reference data fetched by vqfetch.

If you want the legal short version: vibe-qc itself is MPL 2.0 and you can use it freely in academic and commercial work. The combined binary that links FFTW3 is effectively GPL v2 (the restriction comes from FFTW, not from us); see FFTW: GPL v2 dependency below.

1. vibe-qc’s own license, MPL 2.0

vibe-qc’s source code is released under the Mozilla Public License Version 2.0. What that means in practice:

  • You can use vibe-qc in commercial and non-commercial projects.

  • If you modify vibe-qc’s own source files and redistribute them, your modifications to those files must be released under MPL 2.0. You don’t have to open-source code that merely uses vibe-qc.

  • No patent traps: MPL 2.0 includes an explicit patent grant.

  • No warranty, see the license text for the usual limitations of liability.

  • MPL 2.0 is GPL-compatible (vibe-qc has no “Incompatible With Secondary Licenses” notice), so vibe-qc source can be combined with GPL’d code into a “Larger Work” under MPL 2.0 § 3.3.

2. Linked native libraries

vibe-qc dynamically links the following native libraries at runtime. Their licenses transitively bind any binary distribution of vibe-qc.

Library

License

Source

Linkage

libint

LGPL 3.0 (library) + GPL 3.0 (compiler)

LICENSE

dynamic

libxc

MPL 2.0

COPYING

dynamic

Eigen

MPL 2.0

COPYING.MPL2

header-only

spglib

BSD 3-Clause

COPYING

dynamic

pybind11

BSD 3-Clause

LICENSE

header-only

FFTW3

GPL v2 or later (commercial alt available)

License

dynamic

libecpint

MIT

LICENSE

dynamic

libcerf (in libecpint)

MIT

LICENSE

static (in libecpint)

pugixml (in libecpint)

MIT

LICENSE.md

static (in libecpint)

BLAS, Apple Accelerate (macOS, default)

Apple SDK license (system-bundled)

shipped with macOS, no redistribution

dynamic (framework)

BLAS, OpenBLAS (Linux, recommended; system or vendored)

BSD 3-Clause

LICENSE

dynamic

BLAS, reference netlib BLAS (Linux fallback)

modified BSD

LICENSE

dynamic

LAPACK + LAPACKE, Reference-LAPACK (Linux; bundled inside OpenBLAS when vendored)

modified BSD

LICENSE

dynamic

Note on vendored OpenBLAS (opt-in via WITH_OPENBLAS=1 ./scripts/setup_native_deps.sh, see installation): when built from source into third_party/openblas/install/, the resulting libopenblas.so bundles netlib LAPACK’s Fortran sources + the LAPACKE C interface. Both inherit OpenBLAS’s BSD 3-Clause license (it is the redistributed work). Net license posture is unchanged from a system-installed OpenBLAS, fully compatible with MPL 2.0.

Compatibility summary:

  • MPL 2.0 (libxc, Eigen, vibe-qc itself), fully compatible.

  • BSD 3-Clause (spglib, pybind11, OpenBLAS), fully compatible (permissive).

  • Modified BSD (reference LAPACK / LAPACKE / netlib BLAS), fully compatible (permissive, with a no-endorsement clause).

  • MIT (libecpint, libcerf, pugixml), fully compatible (permissive).

  • LGPL 3.0 (libint library), compatible via dynamic linking, which is the LGPL’s intended use. Static linking would require either (a) supplying object files for relinking or (b) releasing the whole work under LGPL. We dynamic-link; no static-linking case exists.

  • GPL v2 or later (FFTW3), see warning below.

  • Apple SDK license (Accelerate framework, macOS-only), the framework ships with macOS, is not redistributed with vibe-qc, and is only linked when vibe-qc itself is built and run on macOS. No transitive license burden.

FFTW: GPL v2 dependency, the binary distribution caveat

This matters for you only if you want to redistribute vibe-qc binaries (or a bundled application that embeds vibe-qc). It does not affect:

  • Academic users running vibe-qc on their own data.

  • Source-code distribution of vibe-qc itself (still MPL 2.0).

  • Modifying vibe-qc and using your modified version internally.

But it does affect:

  • Anyone shipping a precompiled binary of vibe-qc (including Conda / PyPI wheels that bake in libfftw3.so), the combined binary is effectively GPL v2 or later because FFTW’s GPL terms govern the linked work.

  • Anyone wanting to embed vibe-qc in a closed-source product.

The mechanism is standard GPL-vs-MPL combination: vibe-qc’s MPL 2.0 source is GPL-compatible (no “Incompatible With Secondary Licenses” notice), so the combined work can be distributed, but recipients receive the combined work under both MPL (for the vibe-qc parts) and GPL (for the whole combined binary, because FFTW dominates).

FFTW commercial license: MIT’s Technology Licensing Office sells a non-GPL commercial FFTW license (see FFTW License page). This is an option for commercial redistribution, but the price makes it impractical for hobby projects.

Roadmap: a future minor release will add a build-time option to swap FFTW3 for pocketfft (BSD 3-Clause) or KissFFT (BSD 3-Clause) so binary distribution can be GPL-free for commercial users. Tracked as roadmap entry “FFT backend abstraction” in docs/roadmap.md (post-v1.0 milestone).

Python package dependencies

vibe-qc’s core Python dependencies (installed automatically with pip install vibe-qc) are permissively licensed and MPL-2.0-compatible:

Package

License

Use in vibe-qc

seekpath

BSD 3-Clause

canonical HPKOT band paths (Hinuma et al., Comp. Mat. Sci. 128, 140, 2017)

jsonschema

MIT

QVF manifest validation against the canonical JSON Schema

joblib

BSD 3-Clause

NEB image parallelisation (loky process pool)

Optional extras pull additional Python packages on demand (see pyproject.toml [project.optional-dependencies]):

Extra

Package

License

Use

[dispersion]

dftd3

LGPL 3.0+

optional reference D3 implementation and coverage beyond the native H-Ar range

[fetch]

optimade

MIT

federated OPTIMADE client for vqfetch

[fetch]

beautifulsoup4

MIT

HTML parsing for NIST CCCBDB / WebBook / ATcT reference-data scrapers

[fetch]

lxml

BSD 3-Clause

XML / HTML tree builder for reference-data scrapers

[ml]

scikit-learn

BSD 3-Clause

deserialises the bundled k-point spacing predictor (K8-F RandomForest model); see ML k-point predictor below

3. Bundled data

vibe-qc ships several kinds of data alongside the source:

  • Basis sets in python/vibeqc/basis_library/ (basis/ from libint upstream + custom/ for vibe-qc’s pob-* additions).

  • ECP libraries in third_party/libecpint/install/share/libecpint/xml/ (Stuttgart-Köln MDF + LANL families).

  • Reference data fetched at runtime by vqfetch (no bundled data; pulled on demand from external sources).

  • MACE foundation-model weights fetched at runtime by the optional [mace] extra (no bundled data; pulled on demand into the XDG cache). Covered in MACE below.

  • PM6 / OMx semiempirical parameters in python/vibeqc/semiempirical/methods/: Stewart PM6 values are transcribed from the published method paper; the full MOPAC-derived PM6 cache is Apache-2.0; OM1/OM2/OM3 values are transcribed from the published Dral/Thiel tables. Covered below.

  • MSINDO method parameters embedded in the INDO engine (cpp/.../methods/indo/ + python/vibeqc/semiempirical/methods/msindo.py, H-F): semiempirical parameters redistributed by permission, see MSINDO below.

  • gCP geometric-counterpoise parameters in python/vibeqc/data_library/gcp/: per-basis-set correction parameters from Kruse & Grimme 2012, transcribed from the published paper and verified against the mctc-gcp Fortran reference. Covered in gCP parameter tables below.

  • ML k-point predictor model in python/vibeqc/data_library/k8f_predictor.pkl: a bundled scikit-learn RandomForestRegressor that recommends Monkhorst-Pack KSPACING for periodic calculations, based on the Choudhary-Tavazza 2020 convergence predictor. Gated by VIBEQC_ML_KPOINTS=1. Covered in ML k-point predictor below.

  • Python fetch extras (optimade, beautifulsoup4, lxml): optional PyPI packages pulled by pip install 'vibe-qc[fetch]' for vqfetch structures and reference-data scraping. Listed in the Python package dependencies table above.

Each is covered separately.

PM6 / OMx, NDDO semiempirical parameters

vibe-qc includes an in-house implementation of the PM6 and OM1/OM2/OM3 NDDO-family executable paths. These methods are not yet production-parity validated against MOPAC or the original OMx reference implementations, but their user-facing routes are available for development, benchmarking, and guarded pre-screening workflows.

Item

Terms

vibe-qc PM6 / OMx implementation

MPL 2.0

PM6 H/C/N/O/F values transcribed from Stewart 2007

Published parameter table; cite Stewart 2007

bundled pm6_mopac_params.toml cache

Apache-2.0 MOPAC source provenance recorded in the file header

OM1/OM2/OM3 values transcribed from Dral et al. 2016 Tables 1-3

Published parameter tables; cite Dral et al. 2016

Cite (auto-surfaced in .out / .bibtex via routes.methods.pm6 / om1 / om2 / om3): Stewart, J. Mol. Model. 13, 1173 (2007), DOI 10.1007/s00894-007-0233-4; Dral et al., J. Chem. Theory Comput. 12, 1082 (2016), DOI 10.1021/acs.jctc.5b01046.

MSINDO, INDO semiempirical method (method="msindo")

vibe-qc includes an independent re-implementation of the MSINDO semiempirical INDO method (Bredow, Geudtner & Jug; © Mulliken Center for Theoretical Chemistry, University of Bonn). The engine (python/vibeqc/semiempirical/methods/msindo.py and the C++ core under cpp/include/vibeqc/semiempirical/methods/indo/) was written from the published method and copies no MSINDO source code; it is validated out-of-process against a reference MSINDO build (examples/regression/msindo/, CLAUDE.md § 10).

The bundled MSINDO parameters (orbital exponents, frozen-core, resonance, ionization-potential and anti-penetration parameters for the full H-Xe set, Z=1..54) are redistributed by permission of the copyright holder. They ship as the published datas.f parameter table in python/vibeqc/semiempirical/methods/msindo_params.json (regenerate with examples/regression/msindo/gen_msindo_params.py).

MSINDO’s optional NDDO mode is a separate parametrization (the program’s nddoparam.f, applied for H, Li-F, Na-Cl). Those overrides ship under the same permission as the published nddoparam.f table in python/vibeqc/semiempirical/methods/msindo_params_nddo.json (regenerate with examples/regression/msindo/gen_msindo_params_nddo.py).

Item

Terms

vibe-qc’s MSINDO re-implementation

MPL 2.0 (as the rest of vibe-qc)

MSINDO method + bundled parameters

Used by permission of the Mulliken Center for Theoretical Chemistry, University of Bonn (Prof. T. Bredow), under an agreement with vibe-qc’s maintainer

Cite (auto-surfaced in .out / .bibtex via routes.methods.msindo): Ahlswede & Jug, J. Comput. Chem. 20, 563 (1999) DOI; Ahlswede & Jug, J. Comput. Chem. 20, 572 (1999) DOI.

MACE, optional ML interatomic potential ([mace] extra)

method="mace" interfaces ACEsuit MACE, a pre-trained machine-learning interatomic potential, via the optional [mace] extra (pip install 'vibe-qc[mace]'). MACE is not in the default install and is not linked into the vibe-qc binary, none of the licenses below bind a normal vibe-qc distribution; they apply only to a user who opts in. (Python ≤3.13 only; see the roadmap MACE entry.)

Code, the [mace] extra pulls these Python packages:

Package

License

mace-torch

MIT

PyTorch

BSD-3-Clause

e3nn

MIT

All permissive and MPL-2.0-compatible.

Foundation-model weights, fetched on demand, never bundled. The MACE code is MIT, but the trained weights are licensed separately and download on first use into the XDG cache (~/.cache/mace/, the vqfetch-style on-demand pattern); vibe-qc ships none of them:

Model family

License

Commercial use

MACE-MP-0 / MPA-0 (materials)

MIT

✅ yes

MACE-OFF23 (organic)

ASL

❌ academic only

MACE-OMAT-0 / MATPES / MH / MDP

ASL

❌ academic only

The Academic Software License (ASL) is a GPLv2-derived non-commercial license. vibe-qc’s default model is the MIT MACE-MPA-0. ASL model families such as MACE-OFF23 are reachable only through explicit model selection and are gated behind MLIPOptions(accept_academic_license=True) or VIBEQC_ACCEPT_ASL=1, so a commercial user cannot pull them inadvertently. Unknown MACE model keys are treated as academic-only until registered with explicit provenance. Citation: a method="mace" run auto-emits the MACE method paper + the selected foundation-model paper to its .bibtex / .references, cite them in published work.

3a. Bundled basis sets

python/vibeqc/basis_library/
├── basis/         ← assembled from libint 2.13.1 upstream + custom overlay
├── custom/        ← source of truth for vibe-qc's own additions
└── README.md

Standard basis/ files inherited from libint 2.13.1

The standard .g94 files assembled into basis/ come from the 450+ basis sets that ship in the libint 2.13.1 upstream distribution at share/libint/2.13.1/basis/. We inherit libint’s distribution decisions: if libint ships a basis set, vibe-qc redistributes it under the same terms libint redistributes it under (LGPL 3.0 for the library, basis sets themselves typically inherited from the Basis Set Exchange). The runtime basis/ directory also includes the custom overlay documented below.

Citation requirement. The .g94 file headers preserve the original publication references (e.g. ANO-RCC carries a 6-line reference list naming Widmark, Roos, Malmqvist, Veryazov, Lindh). Users must cite the originating publication for any basis set used in published work, this is a community norm, not a license requirement. The vibe-qc reflexive vibeqc.print_banner() does not currently print the basis-set citation; printing it is queued as a v0.x.x roadmap item.

Per-family citation hints (extend with the .g94 file’s own header for the authoritative reference):

Family

Per-family citation

sto-Ng

Hehre, Stewart, Pople, J. Chem. Phys. 51, 2657 (1969)

6-31g family

Hehre, Ditchfield, Pople, J. Chem. Phys. 56, 2257 (1972); Hariharan, Pople, Theor. Chim. Acta 28, 213 (1973)

6-311g family

Krishnan, Binkley, Seeger, Pople, J. Chem. Phys. 72, 650 (1980)

cc-pVxZ family

Dunning, J. Chem. Phys. 90, 1007 (1989); Kendall, Dunning, Harrison, J. Chem. Phys. 96, 6796 (1992)

def2 family

Weigend, Ahlrichs, Phys. Chem. Chem. Phys. 7, 3297 (2005); Weigend, Phys. Chem. Chem. Phys. 8, 1057 (2006)

ANO-RCC family

Multiple, see the per-element references inside basis/ano-rcc.g94

RIFIT / JKFIT auxiliaries

Weigend, Phys. Chem. Chem. Phys. 8, 1057 (2006); Hellweg et al. Theor. Chem. Acc. 117, 587 (2007); Eichkorn et al. Theor. Chem. Acc. 97, 119 (1997)

custom/, vibe-qc’s own additions

The POB custom basis sets in custom/ are originated by Mike Peintinger (vibe-qc’s author / current maintainer) and Tilo Bredow’s group at the University of Bonn, either as PhD work or as collaborator-level contributions. No external license clearance is required.

File

Citation

pob-tzvp.g94

M. F. Peintinger, D. Vilela Oliveira, T. Bredow, J. Comput. Chem. 34, 451 (2013). DOI:10.1002/jcc.23153

pob-dzvp-rev2.g94

D. Vilela Oliveira, J. Laun, M. F. Peintinger, T. Bredow, J. Comput. Chem. 40, 2364 (2019). DOI:10.1002/jcc.26013

pob-tzvp-rev2.g94

J. Laun, T. Bredow, J. Comput. Chem. 42, 1064 (2021). DOI:10.1002/jcc.26521

Source URL (Bredow group archive): https://www.chemie.uni-bonn.de/bredow/de/software/pob-tzvp-tar.gz. The bundled .g94 files reproduce this archive’s content with minor formatting normalisation.

BSE-fetched and BSE-constructed basis sets (149 .g94 files)

The basissetdev branch carried 148 basis-set .g94 files in python/vibeqc/basis_library/custom/ fetched from the Basis Set Exchange (BSE) on 2026-05-08, now shipping in v0.9.0. The v0.15.x release-paper work adds one further BSE-derived Pople basis, 6-311+g3df2p.g94, constructed from exact BSE component bases because BSE 0.12 does not publish the literal 6-311+G(3df,2p) name.

Attribution, our obligations

Although the data are not copyright-encumbered, scientific attribution is mandatory. Every .g94 file shipped by vibe-qc carries a header crediting the BSE source and (where available) the originating publication. Users are required to cite the originating publication for any basis set they use in published work; the canonical references are surfaced through the citation database at python/vibeqc/output/citations/database.toml (route basis_sets).

Publisher policies for supporting information

All 148 files originate from peer-reviewed publications whose supporting information (SI) includes the basis-set parameters:

Publisher

SI redistribution policy

Representative journals

American Chemical Society (ACS)

SI is supplementary material accompanying the article; redistribution of factual data within SI is standard practice

J. Chem. Theory Comput., J. Phys. Chem., J. Am. Chem. Soc.

American Institute of Physics (AIP)

SI is part of the published record; AIP’s author rights permit reuse of factual data

J. Chem. Phys.

Wiley

SI accompanies the article; redistribution of extracted data is standard in the field

J. Comput. Chem., Int. J. Quantum Chem., Angew. Chem.

Royal Society of Chemistry (RSC)

SI is supplementary material; RSC’s author re-use rights cover factual data

Phys. Chem. Chem. Phys.

Springer / Czech Academy

SI data is part of the published record

Theor. Chem. Acc., Collect. Czech. Chem. Commun.

Per-family inventory

Family

Files

First author (year)

Journal

Publisher

Jensen pcseg-{0..4}, aug-pcseg-{0..4}

10

Jensen (2014)

JCTC

ACS

Jensen pc-{0..4}, aug-pc-{0..4}

10

Jensen (2001-2002)

J. Chem. Phys.

AIP

Pople diffuse (6-31+G**, 6-311+G**, etc.)

5

Ditchfield/Hehre/Pople (1971); Frisch/Pople/Binkley (1984)

J. Chem. Phys.

AIP

Pople RI-J auxiliary

2

Weigend (2006)

PCCP

RSC

Karlsruhe def2 3c carriers

2

Brandenburg et al. (2018)

J. Chem. Phys.

AIP

Karlsruhe dhf-* (Dirac-Hartree-Fock)

6

Weigend/Baldes (2010)

J. Chem. Phys.

AIP

Karlsruhe x2c-* (exact two-component)

3

Pollak/Weigend (2017)

JCTC

ACS

Grimme vDZP (omegaB97X-3c carrier)

1

Muller/Hansen/Grimme (2023)

J. Chem. Phys.

AIP

LANL ECP family

6

Hay/Wadt (1985)

J. Chem. Phys.

AIP

Dunning cc-pV(n+d)Z + aug-

5

Dunning/Peterson/Wilson (2001)

J. Chem. Phys.

AIP

Dunning jul-/jun-cc-pV(n+d)Z

4

Papajak/Truhlar (2010)

JCTC

ACS

Dunning cc-pCV*Z + aug-

6

Woon/Dunning (1995)

J. Chem. Phys.

AIP

ANO-RCC contracted

5

Roos et al. (2004)

J. Phys. Chem. A

ACS

ANO-R (Zobel-Widmark-Veryazov)

5

Zobel et al. (2020)

JCTC

ACS

Sadlej pVTZ / Sadlej+

2

Sadlej (1988)

Collect. Czech. Chem. Commun.

Czech Acad.

Jensen pcS-{0..3}, aug-pcS-{1,2}

6

Jensen (2008)

JCTC

ACS

Jensen pcSseg-{0..2}

3

Jensen (2015)

JCTC

ACS

Jensen pcJ-{0..3}

4

Jensen (2006)

JCTC

ACS

Sapporo-DKH3-{DZP,TZP,QZP}

3

Noro/Sekiya/Koga (2012)

Theor. Chem. Acc.

Springer

Cologne DKH2

1

Dolg et al.

-

-

SARC-DKH2 / SARC2-QZ*

3

Pantazis/Neese (2009, 2019)

JCTC

ACS

All 142 BSE-fetched files (plus 3 pob- vibe-qc files, separate): numerical data from peer-reviewed publications. Redistribution of basis-set parameters is the established norm in computational chemistry; no file is encumbered by a license that prohibits redistribution as part of a QC code.*#### SAP atomic-potential helpers

Two additional .g94 files in basis/ are not orbital basis sets, they are tabulated Gaussian expansions of the radial atomic effective potentials used by the Superposition of Atomic Potentials (SAP) initial guess (InitialGuess.SAP, see docs/roadmap.md §G2c). The .g94 container is a convenience: the same loader can read both, but consuming these files as an orbital basis would produce nonsense by design, the test suite guards against that via SAP_PREFIXES = ("sap_",) in tests/basisset_dev/test_basis_library_load.py.

File

Reference radial potential

Use

sap_helfem_large.g94

All-electron, Helfem fully-numerical atomic SCF

non-relativistic default for InitialGuess.SAP

sap_grasp_large.g94

Relativistic Dirac-Hartree-Fock, GRASP

optional default for x2c / DKH calculations

Citation:

S. Lehtola, L. Visscher, E. Engel, Efficient Implementation of the Superposition of Atomic Potentials Initial Guess for Electronic Structure Calculations in Gaussian Basis Sets, J. Chem. Phys. 152, 144105 (2020). DOI:10.1063/5.0004046

The reference is preserved verbatim in each .g94’s file header. Published, redistributable under standard scientific- data conventions; users must cite the originating publication when reporting energies obtained with the SAP initial guess.

3b. Bundled ECP libraries

third_party/libecpint/install/share/libecpint/xml/
├── ecp10mdf.xml      ← Stuttgart-Köln MDF, 10-electron core
├── ecp28mdf.xml      ← Stuttgart-Köln MDF, 28-electron core
├── ecp46mdf.xml      ← Stuttgart-Köln MDF, 46-electron core
├── ecp60mdf.xml      ← Stuttgart-Köln MDF, 60-electron core
├── ecp78mdf.xml      ← Stuttgart-Köln MDF, 78-electron core
└── lanl2dz.xml       ← Los Alamos LANL2DZ

These XML files ship inside the libecpint distribution (MIT-licensed, by Robert A. Shaw). vibe-qc inherits them by linking libecpint and pointing at libecpint’s data directory at runtime. No additional clearance or redistribution decision is made by vibe-qc, we ship what libecpint ships.

Citation requirement (community norm, not legal):

ECP family

Citation

Stuttgart-Köln MDF (ecp10mdfecp78mdf)

Originally: Andrae, Häußermann, Dolg, Stoll, Preuß, Theor. Chim. Acta 77, 123 (1990) and family. Per-element references in libecpint’s source repository.

LANL2DZ (lanl2dz)

Hay, Wadt, J. Chem. Phys. 82, 270 (1985); 299 (1985); 284 (1985).

libecpint software

R. A. Shaw, J. G. Hill, J. Chem. Phys. 147, 074108 (2017); Shaw, J. Chem. Phys. 159, 014103 (2023).

3c. Dispersion-correction source, fully native, MPL 2.0

vibe-qc ships its own implementation of the EEQ atomic-charge model (cpp/include/vibeqc/eeq_charges.hpp + cpp/src/eeq_charges{,_data}.cpp), written from the published equations in

  • Caldeweyher, Ehlert, Hansen, Neugebauer, Spicher, Bannwarth, Grimme, J. Chem. Phys. 150, 154122 (2019), supporting information.

Per-element EEQ parameter values (χ, η, κχ, γ) are scientific data transcribed from the above paper’s Table S2. Covalent radii are from Pyykkö & Atsumi, Chem. Eur. J. 15, 188 (2009). Numerical values from published scientific data are not subject to expressive copyright; vibe-qc cites the original papers in the relevant headers (cpp/src/eeq_charges_data.cpp) and in any user-facing output that quotes EEQ charges.

The Grimme-group reference Fortran implementations (multicharge, Apache-2.0; mctc-lib, LGPL-3.0-or-later) were consulted during development for cross- validation; no source from either was copied into the tree, and all files in vibe-qc carry the project’s MPL-2.0 SPDX header.

The native D3(BJ) implementation includes the H-Ar corner of the coordination-number-dependent C6 grid (1,443 active references), the D3 covalent radii, and all 156 D3(BJ) damping-parameter sets. These numerical scientific constants were extracted from simple-dftd3 revision cc9c1f634ea06ba8c283f174aa43faa08b3b98ab (LGPL-3.0-or-later). The pinned-source SHA-256 checks and provenance are in scripts/extract_d3_c6_reference.py and scripts/extract_d3bj_parameters.py; the generated files copy no Fortran implementation code. The underlying C6 model is Grimme, Antony, Ehrlich & Krieg, J. Chem. Phys. 132, 154104 (2010), and the BJ damping fits are Grimme, Ehrlich & Goerigk, J. Comput. Chem. 32, 1456 (2011), plus the fit-specific references retained in the pinned upstream TOML.

The optional dftd3 PyPI package (LGPL-3.0-or-later; see the [dispersion] extras in pyproject.toml) remains available as the independent reference implementation and supplies coverage beyond the native H-Ar range.

The optional dftd4 PyPI package (LGPL-3.0-or-later; see the [dispersion] extras in pyproject.toml) is the current path to full D4 dispersion energies via vibeqc.compute_d4 / run_b2plyp(dispersion="d4") / run_dsd_pbep86(dispersion="d4").

Both optional dftd3 and dftd4 backends are Python-side runtime dependencies only; the LGPL Fortran libraries live in their respective wheels, never in the vibe-qc tree. When a native D4 dispersion-energy backend lands (replacing the optional Python dep), it will be a clean-room reimplementation from the same paper, MPL 2.0 throughout, matching the EEQ implementation shipped today.

3d. gCP parameter tables, Kruse-Grimme 2012

The geometric counterpoise correction (gCP) is a semiempirical basis-set superposition error (BSSE) estimator. vibe-qc ships per-basis-set gCP parameter tables in python/vibeqc/data_library/gcp/, transcribed from the published method and verified against the reference Fortran implementation (mctc-gcp by S. Grimme’s group).

Basis set

File

Status

def2-SVP

def2-svp.toml

complete (H-Kr, Z=1..36)

def2-TZVP

def2-tzvp.toml

complete (H-Kr, Z=1..36)

def2-mSVP

def2-msvp.toml

complete

def2-mTZVP

def2-mtzvp.toml

complete

def2-mTZVPP

def2-mtzvpp.toml

complete

MINIS

minis.toml

complete

MINIX

minix.toml

complete

vDZP

vdzp.toml

complete

Each .toml file carries the originating publication, DOI, and redistribution terms in its [metadata] block. The gCP parameters are numerical results from a published scientific paper; their redistribution as part of a quantum-chemistry code is standard practice.

Cite (auto-surfaced in .out / .bibtex via the gCP loader): Kruse & Grimme, J. Chem. Phys. 136, 154101 (2012), DOI 10.1063/1.3700154.

3e. External data fetched by vqfetch (no bundled data)

vqfetch (the v0.8.0 external-data integration) does not bundle any external data. It pulls structures and reference data on demand from public databases, caches results locally with full provenance metadata, and surfaces the per-record license terms back to the caller.

Source

Default license per record

Attribution requirement

COD (Crystallography Open Database)

CC0 / public domain

None legally; CIF authorship is preserved in provenance

Materials Project

CC-BY 4.0

Cite Materials Project per their terms

NOMAD

CC-BY 4.0 (data); CC0 (metadata)

Cite the contributing author + NOMAD as source

OPTIMADE federation

per-provider

varies, vqfetch records the provider in provenance

NIST CCCBDB

US Government work, public domain in US

Cite NIST Standard Reference Database 101 (DOI 10.18434/T47C7Z)

The provenance contract: every vqfetch-pulled record carries the source DB, ID, URL, original DOI (where available), license string, and fetched-at timestamp. This makes per-record attribution straightforward in publications and avoids any “where did this come from” auditability gap.

vqfetch does not ship pre-fetched data. The local cache (~/.cache/vqfetch/ per XDG) is populated only by user queries. If a user republishes work containing vqfetch-pulled records, the per-record license is displayed in the SCF log and recorded in the per-run .system manifest.

3f. Semiempirical (DFTB) parameters, fully native, MPL 2.0

vibe-qc ships its own implementation of the DFTB0 / SCC-DFTB semiempirical methods (python/vibeqc/semiempirical/, cpp/src/semiempirical/), with parameter tables constructed from scratch in cpp/src/semiempirical/parameters.cpp:

  • STO exponents from Slater’s rules.

  • On-site energies from periodic-trend scaling.

  • Hubbard U from approximate per-element estimates.

  • Repulsive-pair form R⁻¹² with an original default_repulsive_A estimator.

The parameter set covers H, U (87 elements). Zero values are sourced from dftb.org parameter sets (mio, 3ob, matsci, etc.), no redistribution concern. This was confirmed by the semiempirical chat in the v0.9.0 cycle (commit 2d2c24eb).

Honest scope: these parameters are approximate, order-of-magnitude, not production-grade DFTB. Intended use is fast screening and geometry preoptimisation before HF/DFT refinement. The runtime banner and the .system manifest both record that vibe-qc is using its in-house parameter set rather than a published reference. See docs/semiempirical_stage1_design.md and docs/semiempirical_roadmap.md for the full provenance + scope writeup.

Method-paper citations (preserved per .bibtex sibling via the route methods / dftb in database.toml):

  • DFTB0, Porezag, Frauenheim, Köhler, Seifert, Kaschner, Phys. Rev. B 51, 12947 (1995).

  • SCC-DFTB, Elstner et al., Phys. Rev. B 58, 7260 (1998).

  • Slater-rule STO ζ scaffolding, Hehre, Stewart, Pople, J. Chem. Phys. 51, 2657 (1969) (STO-NG context).

The parameter tables themselves are vibe-qc’s own work and ship under MPL-2.0 alongside the rest of the in-tree implementation.

3g. ML k-point predictor (K8-F), Choudhary-Tavazza 2020

vibe-qc ships a bundled scikit-learn RandomForestRegressor at python/vibeqc/data_library/k8f_predictor.pkl. The model recommends Monkhorst-Pack KSPACING for periodic calculations via KPoints.recommend(predictor="ml"), gated by the environment variable VIBEQC_ML_KPOINTS=1.

The model is a vibe-qc original trained on a synthetic dataset built from physical heuristics (cell volumes, band-gap character, dimensionality), consistent with the scaling behaviour observed in the Choudhary & Tavazza convergence predictor. The bundled .pkl file is MPL 2.0 (as the rest of vibe-qc).

Optional Python dependency. Deserialising the model requires scikit-learn (BSD 3-Clause), which is installed on demand via pip install 'vibe-qc[ml]'. The package is imported lazily at first prediction call; without it, predictor="ml" raises a clear ImportError pointing to the [ml] extra. scikit-learn is also pulled by the [test] and [dev] extras so the bundled predictor regression tests run in CI.

Cite (auto-surfaced via routes.methods.ml_kpredictor): Choudhary, K. & Tavazza, F., Convergence and machine learning predictions of Monkhorst-Pack k-points and plane-wave cut-off in high-throughput DFT calculations, Comput. Mater. Sci. 161, 300-308 (2019), DOI 10.1016/j.commatsci.2019.02.006.

3h. qvf-writer/ toolkit: Apache-2.0 subtree + vendored ZIP/SHA-256

The qvf-writer/ directory is a self-contained, permissively licensed distribution of the QVF (Quantum Visualization Format) producer contract, provided so that any third-party quantum-chemistry code (e.g. ORCA) can emit .qvf archives without depending on vibe-qc. It is the source for the downloadable archive linked from the QVF section of the website.

  • License: Apache-2.0 (qvf-writer/LICENSE), not MPL-2.0. This is a deliberate exception to vibe-qc’s repo-wide MPL-2.0: a format reference implementation is intended for the broadest possible adoption, including linking into proprietary codes, so it ships under a permissive license with an explicit patent grant. The subtree is standalone: nothing under python/vibeqc/ or cpp/ imports it, and it imports nothing from vibe-qc.

  • The QVF specification and JSON Schema reproduced under qvf-writer/spec/ are the same canonical contract used by vibe-qc’s own writer and by vibe-view; they are byte-identical copies of python/vibeqc/output/formats/qvf_manifest.schema.json (a drift test guards the copy).

No third-party components. The C++ library builds against nothing but a C++17 standard library: the ZIP writer, the DEFLATE compressor (RFC 1951), CRC-32, SHA-256, and JSON emitter are all original Apache-2.0 code authored for this toolkit (qvf-writer/cpp/src/qvf_zip.hpp, qvf_deflate.hpp, qvf_sha256.hpp, qvf-writer/cpp/include/qvf/json.hpp). The Python reference writer depends only on the Python standard library and NumPy. There is therefore no vendored-code licensing surface to track.

Citing vibe-qc itself

A vibe-qc-specific citation will be added once the JCC release paper is published. Until then, please cite:

Plus any basis-set citation + ECP citation + functional citation for the methods you actually used. The citing guide collects the standard set.

Reporting a licensing concern

If you spot a licensing gap, an attribution that’s not being surfaced correctly, a basis set we shouldn’t be bundling, or an incompatibility we missed, please email mpei@vibe-qc.com. We take this seriously, vibe-qc is an open-source project run by one person, and getting any of this wrong has real consequences for the project’s ability to be used.