This repository is a Python implementation of g‑xTB accelerated by PyTorch. The theory and equations are mapped directly from the ChemRxiv preprint:
This is a preliminary version of g‑xTB, a general‑purpose semiempirical quantum mechanical method approximating ωB97M‑V/def2‑TZVPPD properties. 🚧 Dispersion(revD4) is NOT working, I implemented an algro yields indentical results as tad-dftbd4 but cannot get PBC working for now.
For an ASE interface see src/gxtb/ase_calc.py
(GxTBCalculator
).
Area | Theory ref | Module(s) | Status | Notes |
---|---|---|---|---|
Parameter loaders | My GUESS WORK | params/loader.py , params/types.py , params/schema.py |
Partial | Its based on my observation and guesses |
Coordination numbers (molecules) | doc/theory/9_cn.md |
cn.py |
Done | Smooth CN per Eq. 47 with Torch vectorization. |
q‑vSZP basis (static + dynamic) | doc/theory/7_q-vSZP_basis_set.md |
basis/qvszp.py |
Partial | Dynamic coeffs via q_eff wired; full tests pending. |
Overlap + diatomic scaling | doc/theory/8_diatomic_frame_scaled_overlap.md |
basis/overlap.py , basis/md_overlap.py , hamiltonian/overlap_tb.py |
Done | σ/π/δ scaling up to f; analytic blocks. |
EHT Hamiltonian + Wolfsberg | doc/theory/12_eht_hamiltonian.md |
hamiltonian/eht.py , hamiltonian/distance_tb.py , hamiltonian/onsite_tb.py |
Partial | Core done; EN penalty and distance polynomials present; CN‑onsite linear model. |
First‑order TB (E^(1)) | doc/theory/14_first_order_tb.md |
hamiltonian/first_order.py |
Partial | Structure present; switching functions and full parameter mapping in progress. |
Second‑order TB (isotropic) | doc/theory/15_second_order_tb.md |
hamiltonian/second_order_tb.py , scf.py |
Partial | Atomic + shell paths; shell reference populations and CN used; tests expanding. |
Anisotropic electrostatics (AES) | doc/theory/16_anisotropic_electrostatics.md |
hamiltonian/aes.py , hamiltonian/moments_builder.py |
Partial | Multipole moments and damping implemented; integration paths guarded and optional. |
Spin polarization | doc/theory/17_spin_polarization.md |
hamiltonian/spin.py , scf.py |
Done | UHF spin energy and Fock add‑on; shell magnetizations. |
Third‑order TB (E^(3)) | doc/theory/18_third_order_tb.md |
hamiltonian/third_order.py , scf.py |
Implemented but strange | Parameter mapping and tau3 matrix present; validation ongoing. |
Fourth‑order TB (E^(4)) | doc/theory/19_fourth_order_tb.md |
hamiltonian/fourth_order.py , scf.py |
Implemented but strange | Onsite Fock term and energy wired; requires tuned γ4. |
MFX exchange (long‑range) | doc/theory/20_mfx.md |
hamiltonian/mfx.py , scf.py |
Partial | γ^MFX AO build and hooks present; screening/validation pending. |
OFX exchange (onsite) | doc/theory/21_ofx.md |
hamiltonian/ofx.py , scf.py |
Done | Energy and Fock per Eqs. 155/159; Λ^0 explicit, no defaults. |
Atomic increments | doc/theory/10_atomic_energy_increment.md |
classical/increment.py |
Done | Element‑resolved constants loaded via schema. |
Semi‑classical repulsion | doc/theory/11_semi_classical_repulsion.md |
classical/repulsion.py |
Partial | Kernel implemented with CN/charge coupling; tuning/validation pending. |
Dispersion (revD4) | doc/theory/22_dft_revd4.md |
classical/dispersion.py |
Partial | Method/TOML loaders and energy path; SCF coupling off by design. |
SCF solver | doc/theory/5_kohn_sham_type_equations.md |
scf.py , hamiltonian/scf_adapter.py |
Partial | Löwdin orthogonalization, Mulliken, linear/Anderson/Broyden mixing, dynamic overlap; convergence heuristics in place. |
Nuclear gradients | doc/theory/6_nuclear_gradients.md |
grad/nuclear.py |
Implemented but felling off | Analytic gradients pending for all terms. |
PBC Area | Theory ref | Module(s) | Status | Notes |
---|---|---|---|---|
Cell/k‑point utilities | doc/theory/25_periodic_boundary_conditions.md |
pbc/cell.py , pbc/kpoints.py |
Done | Cell validation, real‑space cutoffs, Monkhorst–Pack grids. |
EHT lattice blocks | doc/theory/25 + doc/theory/12 |
pbc/bloch.py |
Partial | S(0R), H(0R) via diatomic overlaps and CN‑onsite; real‑space cutoffs. |
Bloch sums S(k), H(k) | doc/theory/25 |
pbc/bloch.py |
Done | Hermitian assembly and Γ/general k support. |
Band energy (Γ/k) | doc/theory/25 |
ase_calc.py |
Done | Symmetric orthogonalization per k; insulating filling heuristic. |
PBC SCF (k‑resolved) | doc/theory/25 |
— | Todo | Requires k‑resolved density build and Ewald‑type second‑order. |
PBC second‑order/AES | doc/theory/25 |
— | Todo | Not yet supported under PBC; guarded by explicit errors. |
PBC dispersion (D4) | doc/theory/25 + doc/theory/22 |
— | Todo | Periodic D4 pending; explicit error in ASE path. |
PBC forces/stress | doc/theory/6 + doc/theory/25 |
— | Todo | Gradient/stress machinery pending. |