Semiconductor Science and Light-Emitting Diodes

An interactive companion to Chapter 3 — Basics of Optoelectronics

Author

Philippe Velha

Published

October 16, 2026

Preface

This companion follows the slides of Chapter 3: Semiconductor Science and Light-Emitting Diodes (Basics of Optoelectronics, University of Trento) section by section. The slides tell the story; this book lets you compute it. Every figure is made by a few lines of Python that you can unfold (“Show the Python”), copy and modify. The live panels (marked with a blue bar on the left) recompute directly in your browser. They need no installation.

Open in Colab  Interactive explorers in Google Colab (no installation, Google account needed).

Where this chapter sits in the course

Chapter 1 described light as a wave and Chapter 2 guided it in fibers. Chapter 3 builds the source. It starts from the band picture of a crystal, counts electrons and holes, assembles a pn junction, and ends with the light-emitting diode: its spectrum, its efficiency and how fast it can be switched. The same physics (bands, quasi-Fermi levels, injection, recombination) is the basis of laser diodes (Ch. 4) and photodetectors (Ch. 5), which are pn junctions run in the other direction.

How the book is organised

Chapter Slides What you can play with
Energy bands and holes 3–9, 33–39 Kronig–Penney bands, Fermi energy of metals, direct vs indirect gaps
Carrier statistics 10–17, 25 \(g(E)f(E)\) in the bands, \(N_c\), \(N_v\), \(n_i(T)\), intrinsic Fermi level
Doping, Fermi level and conductivity 18–32 doping explorer, compensation, degeneracy, mobility, freeze-out
The pn junction at equilibrium 40–47, 82–85 charge, field, potential and band diagram; exact Poisson solution
The diode: forward and reverse bias 48–69, 75–80 Shockley and recombination currents, ideality factor, GaAs example
Capacitance and small-signal model 70–74 \(C_\text{dep}(V)\), \(r_d\), \(C_\text{diff}\), Mott–Schottky doping profiling
LED principle, heterojunctions and materials 81–97, 114–119 bandgap engineering, alloy colour picker, lattice matching
Emission spectrum 98–109 spectrum vs temperature, \(3k_BT\) linewidth, Varshni shift
Quantum wells 110–113 finite-well solver, wavefunctions, 2D density of states
Efficiency, brightness and white LEDs 120–133, 139–143 escape cone, IQE/EQE/PCE chain, lumens, white-LED spectrum
LED types, drive circuits and speed 134–138, 144–151 fiber coupling, bias resistor, modulation bandwidth, rise time
Projects, toolbox and connections — Python packages, mini-projects, links to other chapters

Each chapter recomputes the worked examples of the slides, then offers Going deeper questions, Complements (reading), and Try it yourself exercises. A formula sheet is at the end.

NoteUnits in the code

The slides quote concentrations in cm\(^{-3}\) and mobilities in cm\(^2\) V\(^{-1}\) s\(^{-1}\), as most semiconductor texts do. The code works in SI units (m\(^{-3}\), m\(^2\) V\(^{-1}\) s\(^{-1}\)) to avoid factor-of-\(10^6\) mistakes in \(\varepsilon\), \(e\) and \(h\). Energies are in eV. Two constants convert: sl.CM3 = 1e6 (cm\(^{-3}\) → m\(^{-3}\)) and sl.CM2 = 1e-4 (cm\(^2\) → m\(^2\)). At 300 K, \(k_BT = 25.85\) meV.

TipSlide numbers

Slide numbers refer to Chapter3_2024pptx.pptx. The PDF export omits the empty slide 2, so PDF page = slide − 1 from slide 3 onwards.

Using the code

All functions live in a small, readable module, semilib.py, which you can import from your own notebooks:

import semilib as sl
sl.carriers(1e16*sl.CM3, 0, sl.MATERIALS["Si"]["ni"])   # n, p of n-type Si (m^-3)
sl.qw_finite(12e-9, 0.30, 0.067)                        # bound levels of a GaAs quantum well (eV)

See the appendix Running the notebooks for installation.