Skip to main content

Module boundary

Module boundary 

Source
Expand description

Surfaces and interfaces for the electron loop: per-material band parameters (Fermi energy and inner potential) and the quantum-mechanical potential step.

§Energies

Inside a material, the electron’s kinetic energy is measured from the bottom of that material’s band, the convention of Kieft and Bosch, J. Phys. D: Appl. Phys. 41, 215310 (2008), doi:10.1088/0022-3727/41/21/215310, as written out by T. Verduin, Quantum Noise Effects in e-Beam Lithography and Metrology, PhD thesis, Delft University of Technology (2017), doi:10.4233/uuid:f214f594-a21f-4318-9f29-9776d60ab06c (cited below as “Verduin” with the thesis’s printed page and equation numbers). The inner potential U is the depth of that band bottom below the vacuum level, so an electron of kinetic energy E inside has E - U in vacuum. For a metal U = E_F + Φ (Fermi energy above the band bottom plus work function; Verduin p. 98 and Fig. 3.28). For a semiconductor or insulator the band bottom is the bottom of the valence band and U = W_v + E_g + χ (valence band width, band gap, electron affinity), with the Fermi level placed mid-gap, E_F = W_v + E_g / 2. That band model is cstool’s (cstool/input_data/band_structure.py, see BandStructure).

§The step

An electron crossing from a region of inner potential U into one of U' sees the step ΔU = U' - U (Verduin Eq. 3.136, p. 99; vacuum has U = 0). With θ the angle between its direction and the face normal and E_n = E cos²θ its normal energy:

  • if E_n + ΔU <= 0 it is always reflected (specularly);
  • otherwise it is transmitted with probability T = 4 s / (1 + s)², s = sqrt(1 + ΔU / E_n) (Verduin Eq. 3.145, p. 102, the plane-wave step of Eqs. 3.140-3.144), and reflected otherwise;
  • on transmission its kinetic energy becomes E + ΔU and it is refracted, conserving the momentum parallel to the face: sin θ' = sin θ / sqrt(1 + ΔU / E) (Verduin Eq. 3.139, p. 100).

The step and the refraction are ported from Nebula, source/physics/boundary_intersect.h at commit a50a8e83207980ed221ac83cfe874751d39b86a9 (https://github.com/Nebula-simulator/nebula), BSD-3-Clause, Copyright (c) 2020, Nebula-simulator; the notice is in THIRD_PARTY_LICENSES.md. Nebula’s optional empirical interface absorption (off by default there) is not ported.

§Defaults

A BandStructure is made from values the caller supplies, and it refuses an empty provenance. The one computed helper is BandStructure::free_electron_metal, which takes the Fermi energy from the free-electron relation (Verduin Eq. 3.133) and the layer’s atom density.

A small table of cited per-material parameters, BAND_DEFAULTS, covers Al, Cu, Au, W, Si and SiO2. Look an entry up with band_defaults. Each value in it names the document, table or figure, page, and the date the document was opened. A parameter with no source that could be opened has no number: the field is None and the entry’s BandDefaults::gap note says what was tried. As of 2026-10-08 the table holds:

  • Si: band gap 1.1 eV and electron affinity 4.05 eV (Robertson and Wallace 2015). No valence band width.
  • SiO2: band gap 9 eV (Robertson and Wallace 2015). No electron affinity and no valence band width.
  • Al, Cu, Au, W: nothing. No work function and no measured Fermi energy could be cited to a source that was opened.

So no entry is complete yet. BandStructure::from_defaults builds a band from an entry alone and says which parameters are missing. BandDefaults::complete takes the missing ones from the caller (with their provenance) and keeps the cited ones, and its provenance string names both. The full list of sources tried, opened or not, is in docs/data-provenance.md (rows “Per-material barrier parameters” and “Cited band defaults”).

Structs§

BandDefaults
The cited band parameters of one material. A field is None where no source that could be opened gives the value; BandDefaults::gap says what was tried. Fields that do not belong to the entry’s BandKind are always None.
BandFill
Caller-supplied values for the parameters a BandDefaults entry lacks. Leave a field None to use the cited value; a field set for a parameter the entry already cites is refused (build with BandStructure::new to replace a cited value).
BandStructure
The band parameters of one layer, with where they came from.
CitedValue
One cited band parameter.

Enums§

BandError
Errors from building a BandStructure.
BandKind
Whether a BandDefaults entry describes a metal or an insulator, i.e. which BandModel it builds.
BandModel
The band model of one material, after cstool’s band_structure class (cstool/input_data/band_structure.py at commit 0c739eb3fcc3fe5297e74c601ac4a9546db596cf, https://github.com/Nebula-simulator/cstool, BSD-3-Clause, Copyright (c) 2020, Nebula-simulator; notice in THIRD_PARTY_LICENSES.md). cstool treats semiconductors and insulators alike, and so does this type.
StepOutcome
The outcome of cross_step.

Constants§

BAND_DEFAULTS
The cited band parameters, one entry per material (see the module docs, “Defaults”). Every value cites its table or figure and page.

Functions§

band_defaults
The cited band parameters of material (a chemical formula such as "Si" or "SiO2", matched exactly), or None if the table has no entry for it.
cross_step
One electron at a face normal to x, ported from Nebula’s boundary_intersect::execute (file and commit in the module docs).
free_electron_density_per_m3
Conduction-electron density, per m³, at Fermi energy fermi_ev: Verduin Eq. 3.133 (p. 95) as printed. The inverse of free_electron_fermi_energy_ev.
free_electron_fermi_energy_ev
Free-electron Fermi energy, eV, for n conduction electrons per m³: Verduin Eq. 3.133 (p. 95), n = (2 sqrt 2 / 3π²) (m_e E_F / ħ²)^(3/2), solved for E_F, which gives E_F = (ħ² / 2 m_e) (3π² n)^(2/3). CODATA constants from crate::constants.
step_transmission
Transmission probability through a potential step delta_u_ev for an electron of normal energy normal_energy_ev = E cos²θ (Verduin Eq. 3.145, p. 102): zero when E_n + ΔU <= 0 (the electron cannot get over), else 4 s / (1 + s)² with s = sqrt(1 + ΔU / E_n). Symmetric under exchanging the two sides (s -> 1/s).