Getting Started

Basic Workflow

A typical band structure calculation has three steps:

1. Choose model and parameters

using EmpiricalTightBinding

# SP3S* model with Vogl (1983) parameters for GaAs
p = get_params(SP3Sstar, Vogl1983(), "GaAs")

Available combinations depend on which parameter sources support which models:

SourceModelsMaterials
Vogl1983SP3, SP3SstarSi, Ge, GaAs, GaP, InAs, InP, ...
Jancu1998SP3D5SstarSi, Ge, GaAs, ...
Klimeck2000SP3SstarGaAs, InAs, ...

Use list_materials to see available materials:

list_materials(Vogl1983())

2. Build a k-path

# Predefined Vogl Fig.1 path: L → Γ → X → U,K → Γ
kp = vogl_kpath()

# Or a simple textbook path: L → Γ → X
kp = textbook_kpath()

# Or custom
kp = make_kpath([:L => :Γ, :Γ => :X])

See K-Paths & Brillouin Zone for details on vogl_kpath, textbook_kpath, and make_kpath.

3. Compute band structure

bands = compute_bands(SP3Sstar(), kp, p)
# Returns nk × nbands matrix, VBM aligned to 0

compute_bands returns a matrix of eigenvalues (in the same units as the input parameters), with the valence band maximum aligned to 0 by default.

Single k-point Calculation

For eigenvalues at a single k-point, use band_energies:

evals = band_energies(SP3Sstar(), [0.0, 0.0, 0.0], p)

Direct Hamiltonian Access

Use build_hamiltonian to get the Hamiltonian matrix directly:

H = build_hamiltonian(SP3Sstar(), [0.3, 0.2, 0.1], p)
# Returns Hermitian{ComplexF64} matrix