dense-Evolution / docs /api /vhd_tb.md
Tatopenn's picture
Sync mirror with GitHub main (v8.1.62): subpackage refactor, mitigation promotions, MCP server refactor
2a87ede verified
|
Raw History Blame Contribute Delete
2.73 kB

Vogl-Hjalmarson-Dow Tight-Binding (material-specific parameters)

sp3s* tight-binding Hamiltonian builder using material-specific fitted parameters -- far more accurate than harrison_tb's universal table, at the cost of needing a separately fitted parameter row per material instead of one table for everything.

Source

P. Vogl, H. P. Hjalmarson, J. D. Dow, "A Semi-empirical tight-binding theory of the electronic structure of semiconductors", J. Phys. Chem. Solids 44 (5), 365-378 (1983). Parameter values (MATERIALS) are transcribed from an independent open-source implementation, github.com/rpmuller/TightBinding (TB.py), which cites the same paper. 16 zinc-blende/diamond semiconductors included: C, Si, Ge, Sn, SiC, AlP, AlAs, AlSb, GaP, GaAs, GaSb, InP, InAs, InSb, ZnSe, ZnTe.

The method

Same Slater-Koster sp3 machinery as harrison_tb, plus one addition: an extra s* orbital per atom (5 orbitals/atom instead of 4, 10x10 Hamiltonian per unit cell instead of 8x8). s* has no literal physical meaning -- it exists purely as a fitting degree of freedom to pull the lowest conduction band down to the right energy, something a bare sp3 basis structurally cannot do (see harrison_tb's accuracy notes: it routinely misplaces the conduction-band minimum for indirect-gap materials). Each element's Material row (Esa/Epa/Esc/Epc/Essa/Essc + 7 hopping integrals Vss/Vxx/Vxy/Vsapc/Vscpa/Vssapc/Vsscpa) is fitted as a whole per material, not derived from a universal formula the way harrison_tb.ETA is.

sp3s_star_hamiltonian(kxyz, material) builds the periodic Bloch Hamiltonian directly (k in units of $2\pi/a$ along the conventional cubic axes: $\Gamma=(0,0,0)$, $X=(1,0,0)$, $L=(0.5,0.5,0.5)$). direct_gap_at_gamma reads off the gap at $\Gamma$ -- only the true fundamental gap for direct-gap materials. For indirect-gap materials (Si, Ge), the real conduction-band minimum sits off-$\Gamma$, so band_extrema_along_path(material, k_start, k_end) scans a k-space line and finds the true valence-band max / conduction-band min instead of reading only $\Gamma$.

Accuracy

Validated against real experimental gaps (GaAs, Si, Ge) -- see the Dense-Evolution-Discovery validation page for the full writeup and numbers.

::: dense_evolution.solvers.vhd_tb


See also: harrison_tb for the zero-per-material-fitting universal alternative, when the ~2-3x gap error is an acceptable tradeoff for not needing a fitted parameter row per material.