From Atoms to DevicesNanoelectronic modeling, lecture by lecture

Lecture 11.3

Resonant tunneling diodes with relaxation in the reservoirs

In the lecture

  • the practical problem with the sharp emitter states of lecture 11.2: electrons cannot tunnel into the notch, and lifetimes of tens of picoseconds are unphysical in a heavily doped emitter
  • NEMO's relaxation in the reservoirs: an imaginary potential \(-i\eta\) with \(\eta = 6.6\) meV in the equilibrium emitter and collector, and the partitioning of the device into reservoirs and a central non-equilibrium (NEGF) region
  • what relaxation does: emitter states broadened beyond 6.6 meV, the central resonance almost unchanged, a single I–V peak with more current and more valley current, Urbach tails below the band edge
  • an industrial example from 1994–95: a GaAs/Al${0.4}$Ga${0.6}$As RTD where different contact treatments disagree by orders of magnitude, and an InP optical switch that NEMO matched
  • the reduction of the scattering domain that the partitioning makes possible

In this notebook

uses the realistic-doping RTD of lecture 11.2 and computes the Thomas–Fermi I–V with and without reservoir relaxation (nemo.thomas_fermi_iv(relaxation=...)), the resonance widths with the reservoir broadening (nemo.resonances(reservoir=...)), the transmission and current spectrum at 0.32, 0.42 and 0.76 V with reservoir_transmission, the share of current carried by the central resonance and by energies below the emitter band edge, the dependence on \(\eta\), and the cost argument for a small scattering domain.

Run the notebookEvery number and figure on this page comes from it. Change it, rerun it, take it further.
Run it on your own machine

The notebook needs open-nemo (Python ≥ 3.10 and a C++20 compiler; BLAS/LAPACK).

git clone https://github.com/denphi/open-nemo.git && cd open-nemo
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[notebooks]"
jupyter lab From_Atoms_to_Devices/06_resonant_tunneling_diodes/11_3_relaxation_in_the_reservoirs.ipynb
Code8 lines · cell 1
import numpy as np
import matplotlib.pyplot as plt
import opennemo as nemo
from opennemo.visualization import style

style.use(notebook=True)
H2M0 = nemo.core.units.HBAR2_2M0          # ħ²/2m₀ = 0.0381 eV nm²
EM = nemo.structures.materials.EffectiveMassMaterial

1. A practical problem with the emitter states#

Lecture 11.2 found quasi-bound states E1 and E2 in the triangular notch in front of the first barrier. The width of E1 fell exponentially with bias, to about 8 µeV in the lecture's example, a lifetime of 40 ps. The lecturer now asks two questions. First, how do electrons get into the notch at all? The hump between the notch and the emitter contact is low but tens of nanometres long, too thick to tunnel through in any reasonable time. Second, can an electron really stay coherently in the notch for 40 ps? The notch holds a sheet density of \(10^{10}\) to \(10^{12}\) electrons per cm$^2$. Electrons at that density scatter off each other and off phonons on time scales of about \(\tau = 50\) fs, so the states must be broadened by about

\[\Gamma = \frac{\hbar}{2\tau} = \frac{0.658\ \text{meV ps}}{2\times 0.05\ \text{ps}} \approx 6.6\ \text{meV},\]

nearly a thousand times more than the coherent calculation gives. The 8 µeV line is, in the lecturer's words on the slide, "incorrect physics".

The first cell rebuilds the device of lecture 11.2 (30 nm \(10^{18}\) cm$^{-3}$ contacts, 50 nm spacers, 4/5/4 nm Al${0.3}$Ga${0.7}$As/GaAs/Al${0.3}$Ga${0.7}$As) and checks the sheet density in the notch.

Code36 lines · cell 3
from opennemo.solvers.reservoir import reservoir_transmission

x_al = 0.3
gaas = EM("GaAs", 0.067, 12.9, conduction_band_edge=0.0)
algaas = EM("Al0.3Ga0.7As", 0.067 + 0.083 * x_al, 12.9 - 2.84 * x_al, conduction_band_edge=0.324)
layers = [
    nemo.Layer(gaas, 30, donors=1e18, name="emitter contact"),
    nemo.Layer(gaas, 50, donors=1e15, name="emitter spacer"),
    nemo.Layer(algaas, 4, name="barrier"),
    nemo.Layer(gaas, 5, name="well"),
    nemo.Layer(algaas, 4, name="barrier"),
    nemo.Layer(gaas, 50, donors=1e15, name="collector spacer"),
    nemo.Layer(gaas, 30, donors=1e18, name="collector contact"),
]
rtd = nemo.Heterostructure1D(layers, spacing=0.25, terminal_layers=(2, 2))
x, XB1 = rtd.x, 80.0
emitter = x < XB1
T, ETA = 300, 0.0066
V = np.round(np.arange(0.0, 0.8001, 0.01), 3)
ballistic = nemo.thomas_fermi_iv(rtd, V, T, charge="all", relaxation=None)
relaxed = nemo.thomas_fermi_iv(rtd, V, T, charge="all", relaxation=ETA, relaxation_decay=ETA)
EF = float(np.atleast_1d(relaxed["mu_left"])[0])
Ec = rtd.band_edge[None, :] + relaxed["potential"]
print(
    "largest potential difference between the two runs:",
    f"{np.abs(ballistic['potential'] - relaxed['potential']).max():.1e} eV",
)

for v in (0.32, 0.42, 0.76):
    i = int(np.argmin(abs(V - v)))
    ec = Ec[i]
    itop = int(np.argmax(np.where(emitter, ec, -1)))
    notch = emitter & (np.arange(len(x)) > itop)
    sheet = relaxed["electron_density"][i][notch].sum() * rtd.spacing * 1e-7  # cm^-2
    print(f"{v:.2f} V: sheet density between the emitter top and the barrier {sheet:.2g} cm^-2")
print(f"hbar/(2 x 50 fs) = {6.582e-16 / (2 * 50e-15) * 1e3:.2f} meV")
largest potential difference between the two runs: 0.0e+00 eV
0.32 V: sheet density between the emitter top and the barrier 3.4e+11 cm^-2
0.42 V: sheet density between the emitter top and the barrier 4.4e+11 cm^-2
0.76 V: sheet density between the emitter top and the barrier 7.6e+11 cm^-2
hbar/(2 x 50 fs) = 6.58 meV

The Thomas–Fermi potential does not depend on the relaxation (the charge model is the same), so both runs share one potential and differ only in how the current is computed. The notch holds a few times \(10^{11}\) electrons per cm$^2$, inside the range the lecture quotes.

Slide 3: how do electrons get into the notch?
Slide 3. At 0.42 V the emitter state E1 sits in a deep notch behind a long hump. The barrier is too high and too long for electrons to tunnel in from the emitter, and the computed width of 8 µeV (40 ps) is unrealistic.

2. Relaxation in the reservoirs#

NEMO (Klimeck et al., APL 1994/95) introduced a simple fix. The emitter and the collector are assumed to be in equilibrium: they are reservoirs in which so much scattering happens that the electrons are thermalised to the Fermi level of their contact. That scattering is not computed; its effect on the states is imitated by adding an imaginary potential, an optical potential, to the Hamiltonian of the reservoir sites,

\[H_{\text{res}} \;\to\; H_{\text{res}} - i\eta, \qquad \eta = \frac{\hbar}{2\tau} = 6.6\ \text{meV}.\]

A state that lives in the reservoir then decays in time and its line has a width of at least of order \(\eta\). Consequences of this construction, as the lecture lists them:

  • The reservoir Hamiltonian is non-Hermitian, so current is not conserved there. The reservoirs are only used to compute the (equilibrium) charge, never the current.
  • The current is computed in a central region, treated with the non-equilibrium Green function (NEGF) method, which sees the broadened, thermalised states of the reservoirs through their self-energies.
  • \(\eta\) is constant above the local band edge and decays below it (here exponentially over 6.6 meV), which gives the density of states an Urbach-like tail into the gap.

In open-nemo the reservoirs are the terminal_layers of the heterostructure (here contact plus spacer on each side), and thomas_fermi_iv(relaxation=η, relaxation_decay=...) or reservoir_transmission(device, potential, eta, decay) apply the model. The central region is the double barrier, extended by NEMO's default non_equilibrium=(-1, 0) by one monolayer into the emitter.

Slide 7: device partitioning into emitter reservoir, non-equilibrium central region and collector reservoir
Slide 7. Device partitioning. Emitter and collector are assumed to be in equilibrium (reservoirs with strong scattering, \(-i\eta\) with \(\eta=6.6\) meV added to the Hamiltonian); only the central region is treated as non-equilibrium. Left: traces of energies and widths with relaxation, and the I–V with and without \(\eta\).

3. Resonance widths with relaxation#

nemo.resonances(..., reservoir=(η, decay, model, non_equilibrium)) adds the same relaxation to the open-system eigenproblem, so the widths below include the reservoir broadening. The cell traces the central resonance C1 and the lowest notch state E1 with and without it.

Code34 lines · cell 9
RES = (ETA, ETA, "exponential", (-1, 0))


def c1_e1(i, reservoir):
    """(E, width) of the central state C1 and of the lowest notch state E1 at bias index i."""
    ec = Ec[i]
    r = nemo.resonances(
        rtd,
        potential=relaxed["potential"][i],
        confinement_region=(-160, 0),
        emin=ec[emitter][-1] - 0.005,
        emax=0.3,
        reservoir=reservoir,
    )
    e, g, x0 = r["energy"], r["width"], r["x0"]
    well = np.flatnonzero((x0 > XB1 + 3) & (x0 < XB1 + 10) & (g < 3e-3))
    c = well[np.argmin(e[well])] if len(well) else None
    lim = 3e-3 if reservoir is None else 0.05  # ballistic E1 is sharp; with relaxation it is >= eta
    notch = np.flatnonzero((x0 < XB1 + 3) & (e < ec[emitter].max()) & (g < lim))
    n = notch[np.argmin(e[notch])] if len(notch) else None
    pick = lambda k: (e[k], g[k]) if k is not None else (np.nan, np.nan)
    return pick(c) + pick(n)


IT = range(4, len(V), 2)
tab = {name: np.array([c1_e1(i, res) for i in IT]) for name, res in (("ballistic", None), ("relaxed", RES))}
VT = V[list(IT)]
for v in (0.32, 0.5, 0.6):
    k = int(np.argmin(abs(VT - v)))
    b, r = tab["ballistic"][k], tab["relaxed"][k]
    print(
        f"{VT[k]:.2f} V: width C1 {1e3 * b[1]:.2f} -> {1e3 * r[1]:.2f} meV;  "
        f"width E1 {1e3 * b[3]:.3g} -> {1e3 * r[3]:.3g} meV"
    )
0.32 V: width C1 0.46 -> 0.43 meV;  width E1 0.0711 -> 12 meV
0.50 V: width C1 0.37 -> 0.41 meV;  width E1 0.00433 -> 11.8 meV
0.60 V: width C1 0.41 -> 0.42 meV;  width E1 0.00143 -> 11.7 meV
Code13 lines · cell 10
fig, (a1, a2) = plt.subplots(1, 2, figsize=(10.5, 3.8))
for name, ls in (("ballistic", "--"), ("relaxed", "-")):
    t = tab[name]
    a1.plot(VT, t[:, 0], ls, color="C3", label=f"C1, {name}")
    a1.plot(VT, t[:, 2], ls, color=style.OPEN_NEMO, label=f"E1, {name}")
    a2.semilogy(VT, 1e3 * t[:, 1], ls, color="C3", label=f"C1, {name}")
    a2.semilogy(VT, 1e3 * t[:, 3], ls, color=style.OPEN_NEMO, label=f"E1, {name}")
a2.axhline(1e3 * ETA, color=style.CONTEXT, lw=1, ls=":", label="$\\eta$ = 6.6 meV")
a1.set(xlabel="Bias (V)", ylabel="Energy (eV)", title="C1 and E1 energies")
a2.set(xlabel="Bias (V)", ylabel="Width (meV)", title="C1 and E1 widths")
a1.legend(fontsize=7)
a2.legend(fontsize=7, ncol=2)
fig.tight_layout();
Figure computed by the notebook with open-nemo

With relaxation the emitter state E1 is never narrower than a little under \(2\eta\): in the reservoir the state decays at the rate \(2\eta/\hbar\), which is the width NEMO reports. The microelectronvolt lines of the coherent calculation are gone. The central resonance C1 lives in the coherent region and keeps its width of about 0.4 meV; only near the crossing with E1, where the two states mix, does it change a little (a small blip, as on the lecture's slide). Now every emitter state is broader than C1: the narrow central resonance is the filter that probes the emitter, and its width limits the current.

4. The I–V characteristic with relaxation#

Code15 lines · cell 13
Jb, Jr = ballistic["current_density"], relaxed["current_density"]
kb, kr = int(np.argmax(Jb)), int(np.argmax(Jr))
print(f"ballistic: peak {Jb[kb]:.0f} A/cm^2 at {V[kb]:.2f} V, current at 0.7 V {Jb[V == 0.7][0]:.0f} A/cm^2")
print(
    f"relaxed:   peak {Jr[kr]:.0f} A/cm^2 at {V[kr]:.2f} V, valley {Jr[kr:].min():.0f} A/cm^2 at "
    f"{V[kr + np.argmin(Jr[kr:])]:.2f} V, current at 0.7 V {Jr[V == 0.7][0]:.0f} A/cm^2"
)

fig, (a1, a2) = plt.subplots(1, 2, figsize=(10, 3.8))
for J, c, lab in ((Jb, style.CONTEXT, "ballistic, $\\eta=0$"), (Jr, style.OPEN_NEMO, "$\\eta$ = 6.6 meV")):
    a1.plot(V, J, color=c, lw=2, label=lab)
    a2.semilogy(V[1:], J[1:], color=c, lw=2, label=lab)
a1.set(xlabel="Bias (V)", ylabel="Current density (A/cm²)", title="Thomas–Fermi potential, 300 K")
a2.set(xlabel="Bias (V)", ylabel="Current density (A/cm²)", title="log scale")
a1.legend();
ballistic: peak 2403 A/cm^2 at 0.32 V, current at 0.7 V 300 A/cm^2
relaxed:   peak 6935 A/cm^2 at 0.43 V, valley 1263 A/cm^2 at 0.80 V, current at 0.7 V 1557 A/cm^2
Figure computed by the notebook with open-nemo

Relaxation changes the I–V qualitatively. The two sharp peaks of the coherent calculation merge into one broad peak at a higher bias, with a peak current almost three times larger, and the valley current is several times higher. The narrow emitter states that limited the current in the coherent picture are now broadened and filled from the thermalised reservoir, so C1 sees a continuous, much better supply.

5. Transmission and current spectrum at three biases#

The lecture compares \(T(E)\) and the current density with and without \(\eta\) at 0.32 V (C1 aligned with E2), 0.42 V (C1 aligned with E1) and 0.76 V (deep in the valley). With relaxation, reservoir_transmission returns the generalised transmission of the partitioned device; the current is again the Tsu–Esaki integral of it. The energy grid starts 0.15 eV below the emitter contact band edge to catch the current that the Urbach tails let through.

Code36 lines · cell 16
tr = nemo.Transport(rtd.hamiltonian)
kT = 8.617e-5 * T


def spectra(v):
    i = int(np.argmin(abs(V - v)))
    u = relaxed["potential"][i]
    r0 = nemo.resonances(rtd, potential=u, emin=-v, emax=0.3)
    c1, g1 = r0["energy"][0], r0["width"][0]
    rn = nemo.resonances(
        rtd, potential=u, confinement_region=(-160, 0), emin=Ec[i][emitter][-1] - 0.005, emax=0.3
    )
    seeds = [e + max(w, 1e-7) * np.linspace(-15, 15, 151) for e, w in zip(rn["energy"], rn["width"])]
    E = np.unique(np.concatenate([np.linspace(-0.15, EF + 15 * kT, 4000)] + seeds))
    E = E[E < EF + 15 * kT]
    out = dict(E=E, c1=c1, i=i)
    for name, t in (
        ("ballistic", tr.transmission(E, potential=u)),
        ("relaxed", reservoir_transmission(rtd, u, eta=ETA, decay=ETA)(E)),
    ):
        Je = rtd.current_spectrum(E, t, EF, EF - v, T)
        J = rtd.current_density(E, t, EF, EF - v, T)
        cum = np.concatenate([[0], np.cumsum(0.5 * (Je[1:] + Je[:-1]) * np.diff(E))]) / J
        at = lambda e0: cum[np.argmin(abs(E - e0))]
        out[name] = dict(T=t, J=J, cum=cum, nearC1=at(c1 + 3e-3) - at(c1 - 3e-3), below=at(0.0))
    return out


SP = {v: spectra(v) for v in (0.32, 0.42, 0.76)}
for v, s in SP.items():
    for name in ("ballistic", "relaxed"):
        d = s[name]
        print(
            f"{v:.2f} V {name:9s}: J = {d['J']:7.0f} A/cm^2, within ±3 meV of C1 {100 * d['nearC1']:5.1f}%, "
            f"below the emitter contact band edge {100 * d['below']:.2f}%"
        )
0.32 V ballistic: J =    2425 A/cm^2, within ±3 meV of C1  95.5%, below the emitter contact band edge 0.00%
0.32 V relaxed  : J =    2163 A/cm^2, within ±3 meV of C1  94.8%, below the emitter contact band edge 0.00%
0.42 V ballistic: J =     510 A/cm^2, within ±3 meV of C1  86.8%, below the emitter contact band edge 0.00%
0.42 V relaxed  : J =    6785 A/cm^2, within ±3 meV of C1  96.0%, below the emitter contact band edge 0.00%
0.76 V ballistic: J =     433 A/cm^2, within ±3 meV of C1   0.0%, below the emitter contact band edge 0.00%
0.76 V relaxed  : J =    1358 A/cm^2, within ±3 meV of C1  59.4%, below the emitter contact band edge 0.46%
Code15 lines · cell 17
fig, axes = plt.subplots(2, 3, figsize=(11, 6.4), sharey=True)
for col, (v, s) in zip(axes.T, SP.items()):
    for name, c, ls in (("ballistic", style.CONTEXT, "--"), ("relaxed", style.OPEN_NEMO, "-")):
        col[0].semilogx(s[name]["T"], s["E"], ls, color=c, label=name)
        col[1].plot(s[name]["cum"], s["E"], ls, color=c, label=name)
    for a in col:
        a.axhline(s["c1"], color="C3", lw=0.8, ls=":")
        a.axhline(0, color=style.REFERENCE, lw=0.6)
    col[0].set(title=f"{v:.2f} V", xlim=(1e-9, 2), xlabel="$T(E)$")
    col[1].set(xlabel="running integral $I(E)/I$")
axes[0, 0].set(ylabel="Energy (eV)", ylim=(-0.08, 0.35))
axes[1, 0].set(ylabel="Energy (eV)")
axes[0, 0].legend(fontsize=8)
fig.suptitle("Transmission and running current integral (dotted: C1; solid black: emitter contact band edge)")
fig.tight_layout();
Figure computed by the notebook with open-nemo
Slide 10: transmission and current density at 0.42 V and 0.76 V with and without relaxation
Slide 10. Band diagram, transmission and current density at 0.42 V (top) and 0.76 V (bottom), without (\(\eta=0\), middle column) and with \(\eta=6.6\) meV (right column). At 0.76 V relaxation lets about 20% of the current flow through C1, below the emitter band edge.

At 0.32 and 0.42 V the sharp, separate transmission features of the coherent calculation are smoothed into one broad line, and the current still flows almost entirely through C1. In the valley (0.76 V) the difference is large: without relaxation C1 lies below every emitter state and only the far-off background carries current; with relaxation a large part of the current still flows through C1, because the broadened emitter states, with their tails, reach down to it. The share of current from energies below the emitter contact band edge is small but no longer zero: those are the Urbach tails built into the decaying \(\eta\). The lecture's device has about 20% of its valley current through C1; in this device the share is larger because C1 is closer to the emitter states at 0.76 V.

6. How strong is the relaxation? Do not tune it#

The lecturer is explicit that \(\eta\) is an empirical parameter that he does not adjust to fit measurements: for typical InGaAs/InAlAs and GaAs/AlGaAs RTDs NEMO uses 6.6 meV (\(\tau=0.05\) ps) and keeps it. As an exercise he suggests changing it to see what happens:

Code12 lines · cell 21
fig, ax = plt.subplots(figsize=(6, 3.8))
for eta, c in zip((0.002, 0.0066, 0.02), style.sweep(3)):
    J = nemo.thomas_fermi_iv(rtd, V, T, charge="all", relaxation=eta, relaxation_decay=eta)["current_density"]
    k = int(np.argmax(J))
    print(
        f"eta = {1e3 * eta:4.1f} meV: peak {J[k]:6.0f} A/cm^2 at {V[k]:.2f} V, "
        f"valley {J[k:].min():5.0f} A/cm^2, PVR {J[k] / J[k:].min():.1f}"
    )
    ax.plot(V, J, color=c, lw=2, label=f"$\\eta$ = {1e3 * eta:.1f} meV")
ax.plot(V, Jb, "--", color=style.CONTEXT, label="ballistic")
ax.set(xlabel="Bias (V)", ylabel="Current density (A/cm²)", title="Sensitivity to the reservoir relaxation")
ax.legend();
eta =  2.0 meV: peak  10514 A/cm^2 at 0.42 V, valley   676 A/cm^2, PVR 15.6
eta =  6.6 meV: peak   6935 A/cm^2 at 0.43 V, valley  1263 A/cm^2, PVR 5.5
eta = 20.0 meV: peak   5531 A/cm^2 at 0.54 V, valley  3650 A/cm^2, PVR 1.5
Figure computed by the notebook with open-nemo

The choice matters. A smaller \(\eta\) (2 meV) gives a higher peak and a lower valley, a peak-to-valley ratio of 15.6; the standard 6.6 meV gives 5.5; a larger \(\eta\) (20 meV) moves the peak to higher bias and fills the valley, a ratio of only 1.5. Precisely because the valley current is so sensitive to \(\eta\), fitting it to a measurement would hide whatever physics is actually missing (contacts, band structure); a fixed, physically motivated value keeps the model honest.

7. Why the contacts matter: an industrial RTD in 1994#

The lecturer next shows work from his time at Texas Instruments and UT Dallas: a "benign" GaAs/Al${0.4}$Ga${0.6}$As RTD with 5 nm barriers and a 5 nm well, 18 nm undoped spacers, 200 nm buffers doped to \(2\times10^{15}\) cm$^{-3}$ and 20 nm contacts doped to \(2\times10^{18}\) cm$^{-3}$. The goal was a peak-to-valley ratio above 1000 (typical was 3), and the whole field was convinced that the valley current came from scattering inside the RTD: electrons emit a phonon in the well and leave below the resonance. That turned out to be wrong, because the treatment of the contacts and the band structure were missing.

Is this a 15 nm device or a 500 nm device? Three ways to model it give very different answers on the same log–log I–V plot:

  1. Flat-band end injection (the 1994 state of the art): flat contacts attached to the two ends of the structure and electrons shot coherently through the whole potential.
  2. Cut flat band: compute the potential of the whole structure, then attach a flat-band contact right before the notch and inject from there.
  3. Partitioned reservoirs (NEMO): the device split into an emitter reservoir, a central region and a collector reservoir with relaxation, as above.

The first two differ by an order of magnitude in the peak voltage and two orders of magnitude in the peak current, although both give a nice N-shaped curve. The third overlaps the measured curve, including a small shoulder that comes from C1 probing a state of the emitter notch.

Slide 17: UT Dallas GaAs/AlGaAs RTD with three contact models compared with the measured I–V
Slide 17. The 1994–95 GaAs/Al$_{0.4}$Ga$_{0.6}$As RTD (conduction band over 500 nm, left) and its I–V on log–log axes for flat-band end injection (blue), injection from a cut flat band (green) and the partitioned reservoir model (red), next to the measured oscilloscope trace.

The Thomas–Fermi model is not the end of the story. A Hartree (quantum self-consistent) potential bends the I–V over towards higher bias, a series resistance in the contacts bends it further, and the valley current needs a band structure beyond the single-band effective mass approximation, which later lectures cover.

Slide 19: density of states with emitter notch states, and Thomas–Fermi, Hartree and Hartree with series resistance against the experiment
Slide 19. Left: local density of states, with the quantized emitter states, strong scattering in the emitter and no scattering in the RTD. Right: Thomas–Fermi (green), Hartree self-consistent (blue) and Hartree plus a 2.5 Ω series resistance (red) against the measured I–V.

8. Complicated emitters, and a smaller scattering domain#

The partitioning handles emitters that wave-function methods cannot. The lecturer's example is an InP RTD with an optical window used as an optical switch (Klimeck et al., Device Research Conference 1995): the emitter contains a triangular well and many more quantised states, and the NEMO simulation, with the charge computed self-consistently in both reservoirs and the central region, reproduces the measured shoulders.

Slide 23: InP RTD optical switch, density of states and measured versus simulated I–V
Slide 23. The InP optical-switch RTD: local density of states with left and right reservoirs and many emitter states, and the measured (blue) against the simulated (red) I–V (DRC 1995, Klimeck et al.).

The partitioning has a second benefit. Scattering inside the device (phonons, alloy disorder, interface roughness) couples sites to each other, and the cost of NEGF with scattering grows from \(N^2\) to \(N^3\) in the number of sites \(N\) of the non-equilibrium region, against linear cost for the coherent recursive Green function algorithm of lecture 12. With the reservoirs assumed in equilibrium, only the central region needs the expensive treatment:

Code9 lines · cell 30
from opennemo.models.ema import _active_region

first, last = _active_region(rtd, (-1, 0))
n_all, n_mid = rtd.num_sites, last - first + 1
print(
    f"whole device {n_all} sites, central non-equilibrium region {n_mid} sites "
    f"({x[first]:.2f} to {x[last]:.2f} nm)"
)
print(f"N^3 cost ratio of scattering over the whole device vs the central region: {(n_all / n_mid) ** 3:.0f}")
whole device 692 sites, central non-equilibrium region 53 sites (79.88 to 92.88 nm)
N^3 cost ratio of scattering over the whole device vs the central region: 2226

Summary#

  • Triangular notches in the emitter confine electrons. Without relaxation their states have lifetimes of tens of picoseconds and widths of microelectronvolts, which makes no physical sense in an emitter with \(10^{11}\) electrons per cm$^2$ that scatter on a 50 fs time scale.
  • NEMO adds an empirical relaxation \(-i\eta\) (\(\eta = \hbar/2\tau = 6.6\) meV) in the emitter and collector, which are assumed to be equilibrium reservoirs. The reservoirs are non-Hermitian and used only for the charge; the current is computed in the central NEGF region, which sees thermalised, broadened states.
  • With relaxation the emitter states are broader than about 2η, the central resonance keeps its 0.4 meV, the I–V has a single larger peak and more valley current, and some current flows below the emitter band edge through Urbach tails.
  • Contact treatment changes simulated RTD currents by orders of magnitude; together with band structure it, not scattering in the well, explained the valley currents of real devices.
  • \(\eta\) is not a fitting parameter. The partitioning also shrinks the region where costly scattering calculations are needed.

Exercises#

  1. Change relaxation_decay to None (constant \(\eta\), no decay below the band edge) and recompute the relaxed I–V and the share of current below the emitter band edge at 0.76 V.
  2. Run thomas_fermi_iv with non_equilibrium=(-20, 0), moving five nanometres of the emitter notch into the coherent region. How do the I–V and the E1 width change?
  3. Add a series resistance: with a specific contact resistance \(r_s\) (Ω cm²), the external voltage is \(V_{\text{ext}} = V + J r_s\). Plot \(J\) against \(V_{\text{ext}}\) for \(r_s = 10^{-5}\) Ω cm² and explain why the peak moves and the NDR region can become multivalued.
  4. Repeat the comparison at 77 K. Which features of the ballistic I–V survive the relaxation?

Further reading#