Supported Configurations
Honest status of what works, what is limited, and what is not ready for production use in the current release. Three tiers:
Green – tested and fully working.
Yellow – works in limited cases; convergence may be finicky.
Red – needs testing or has a known limitation.
The corresponding root-level reference is CAPABILITIES.md.
Headline feature: non-orthogonal contact handling
The big change in this release is proper treatment of non-orthogonal
device-contact coupling in the NEGF Green’s function integrals. The
derivation is in
docs/superpowers/specs/2026-03-18-cross-term-corrections-derivation.md
and represents work going back to March; it touches every contact
implementation and both the density and DOS integrals.
The problem
When the device-contact overlap stau is non-zero, the contact
self-energy
carries terms linear and quadratic in \(E\). The previous code dropped the cross-terms generated when this expression is plugged into the device Green’s function integrals, silently treating non-orthogonal contacts as orthogonal.
What is correct now
crossTermQ and crossTermQTot methods on every surfG implementation
return the energy-dependent cross-term correction. The density and DOS
integrals (GrInt -> GrIntCross, densityComplex,
damleLowerDensity) accept and propagate the correction through the
contour. Result: correct charge / DOS / transmission on any
non-orthogonal contact setup.
Supporting work shipped at the same time
Damle analytic lower contour – one eigendecomposition plus an analytic cross-term \(\delta N\) replaces the prior deep-tail
densityComplexcall. Roughly 30-450x faster than the adaptive contour;damle_dN_warnflags cases where the lower contour holds non-trivial weight.2-probe asymptotic Sigma fit – places the deep \(\Sigma_0\) probes relative to the integration window instead of hardcoded
(-1e3, -1e4, -1e5).eigh(X @ F @ X) correctness fix –
eigh(inv(S) @ F)was silently using the upper triangle of a non-Hermitian matrix and returning wrong eigenvalues wheneverSwas non-trivial. Replaced everywhere.Production-readiness pass 1 – trimmed inaccurate and verbose docstrings and dead code across
gauNEGF/.
Green: tested and fully working
- Energy-independent NEGF
gauNEGF.scf.NEGFbase class withgauNEGF.scf.NEGF.setSigma()– constant complex self-energy plus Pulay DIIS SCF. Base SCF I/O, voltage bias, all spin treatments (restricted, unrestricted, generalized).- Energy-dependent Bethe contacts
gauNEGF.scfE.NEGFE.setContactBethe()– full Bethe lattice with the new non-orthogonal cross-term correction.- Energy-dependent 1D contacts on minimal basis
gauNEGF.scfE.NEGFE.setContact1D()withcontactFromFock=True– C2-STO3G and Au3-CRENBS converge end-to-end through the Damle lower contour, asymptotic Sigma fit, and cross-term path.- SOC for Bethe contacts
Slater-Koster spin-orbit terms are supported and tested.
- Transport
gauNEGF.transport.calculate_transmission(),gauNEGF.transport.calculate_dos(),gauNEGF.transport.calculate_current(). DOS with cross-term Q correction. Transport checkpointing.- Atomic 3D Bethe contacts
gauNEGF.surfG3D.surfGAt3D– per-atom 3D builder is fully tested.- Numerical infrastructure
inv_sqrt_general,fractional_matrix_power, JIT-compiled integrals, adaptive complex contour, Fermi search (Muller / secant / poly / bisect / predict).
Yellow: works in limited cases
- setContact1D with external alpha/beta matrices on minimal basis
Works, but convergence is finicky depending on system. Smaller test coverage than the
contactFromFock=Truepath.
Red: needs testing or has known limitations
- surfG3 (full 3D-periodic contact wrapper)
The math works independently – DOS makes sense, band diagrams plot correctly – but contact generation needs work and end-to-end testing. Do not assume converged transport results yet.
- Non-minimal basis on 1D contacts
LANL2DZ-class (double-zeta, diffuse, ECP-with-valence) breaks the S-PSD precondition of the asymptotic Sigma framework. The corresponding integration tests are deliberately skipped with this reason. Fix is k-resolved overlap regularization at the surfG construction step (planned for the next release).
TODO for the next release
End-to-end validation of
surfG3(3D-periodic contact transport on a real device, comparison to reference).K-resolved overlap regularization to lift the minimal-basis precondition on 1D contacts.
Deprecation pass on legacy
transport.pyfunctions andDOSFermiSearch.