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:
vibe-qc’s own license (your right to use it).
Linked native libraries (whose licenses transitively bind any binary distribution of vibe-qc).
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 |
|---|---|---|---|
LGPL 3.0 (library) + GPL 3.0 (compiler) |
dynamic |
||
MPL 2.0 |
dynamic |
||
MPL 2.0 |
header-only |
||
BSD 3-Clause |
dynamic |
||
BSD 3-Clause |
header-only |
||
GPL v2 or later (commercial alt available) |
dynamic |
||
MIT |
dynamic |
||
libcerf (in libecpint) |
MIT |
static (in libecpint) |
|
pugixml (in libecpint) |
MIT |
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 |
dynamic |
|
BLAS, reference netlib BLAS (Linux fallback) |
modified BSD |
dynamic |
|
LAPACK + LAPACKE, Reference-LAPACK (Linux; bundled inside OpenBLAS when vendored) |
modified BSD |
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 |
|---|---|---|
BSD 3-Clause |
canonical HPKOT band paths (Hinuma et al., Comp. Mat. Sci. 128, 140, 2017) |
|
MIT |
QVF manifest validation against the canonical JSON Schema |
|
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 |
|---|---|---|---|
|
LGPL 3.0+ |
optional reference D3 implementation and coverage beyond the native H-Ar range |
|
|
MIT |
federated OPTIMADE client for |
|
|
MIT |
HTML parsing for NIST CCCBDB / WebBook / ATcT reference-data scrapers |
|
|
BSD 3-Clause |
XML / HTML tree builder for reference-data scrapers |
|
|
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 byVIBEQC_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]'forvqfetchstructures 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 |
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 |
|---|---|
MIT |
|
BSD-3-Clause |
|
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 |
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 |
|---|---|
|
M. F. Peintinger, D. Vilela Oliveira, T. Bredow, J. Comput. Chem. 34, 451 (2013). DOI:10.1002/jcc.23153 |
|
D. Vilela Oliveira, J. Laun, M. F. Peintinger, T. Bredow, J. Comput. Chem. 40, 2364 (2019). DOI:10.1002/jcc.26013 |
|
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.
Legal basis for redistribution¶
Basis-set parameters, lists of Gaussian exponents and contraction coefficients, are numerical data, not creative expression. Under U.S. copyright law, facts and data are not copyrightable (Feist Publications, Inc. v. Rural Telephone Service Co., 499 U.S. 340 (1991)). The BSE project itself states this explicitly in its documentation: the basis-set parameters are scientific data extracted from the peer-reviewed literature and are treated as public-domain facts; the BSE’s BSD-3-Clause license covers the software (the website, API, and curation infrastructure), not the numerical data.
This is the established norm in computational chemistry: every major quantum-chemistry code (PySCF, Psi4, NWChem, ORCA, Gaussian, Q-Chem, Molpro, GAMESS) redistributes basis-set parameters obtained from the BSE or directly from the originating publications without separate licensing agreements.
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 |
|---|---|---|
|
All-electron, Helfem fully-numerical atomic SCF |
non-relativistic default for |
|
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 ( |
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 ( |
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 |
|
complete (H-Kr, Z=1..36) |
def2-TZVP |
|
complete (H-Kr, Z=1..36) |
def2-mSVP |
|
complete |
def2-mTZVP |
|
complete |
def2-mTZVPP |
|
complete |
MINIS |
|
complete |
MINIX |
|
complete |
vDZP |
|
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 |
CC-BY 4.0 |
Cite Materials Project per their terms |
|
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 |
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_Aestimator.
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 underpython/vibeqc/orcpp/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 ofpython/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:
Repository: https://gitlab.peintinger.com/mpei/vibeqc
Version + DOI: per the
CITATION.cfffile in the repository root.
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.