Photonics Essentials: Chapter 3 Interactive Physics Lab ======================================================= This lab turns the equations in Chapter 3, ``Photodiodes``, into curves that can be changed directly in the browser. It complements the :doc:`ch03_diffusion_equation` derivation. .. important:: The controls below use ideal equation-based models. The modes labelled **qualitative** reproduce a measured curve's physical trends, not the book's experimental data. Use a manufacturer's data sheet for device design. Interactive curve explorer -------------------------- Choose a curve, then move any slider. The graph and calculated quantities update immediately; no Python server is required, so this works on the GitHub-hosted documentation. .. raw:: html

Loading the Chapter 3 curve explorer...

Curves and equations -------------------- The explorer includes: .. list-table:: :header-rows: 1 :widths: 22 23 55 * - Explorer mode - Chapter reference - What changes * - Carrier profile - Equations 3.5--3.11 - Diffusion coefficient, lifetime, junction concentration, generation * - Junction bands - Figure 3.1 - Built-in voltage and depletion width * - Photodiode I--V family - Figures 3.2--3.4; Equations 3.14 and 3.16 - Temperature, ideality factor, dark current, illumination * - LED semilog I--V - Figure 3.5; Equation 3.16 - Temperature, ideality factor, saturation current * - Ideal spectral cutoff - Figure 3.6; Equations 3.19--3.21 - Band-gap energy * - Rounded detector response - Figure 3.7 - Short and long absorption edges; **qualitative model** * - Absorption with depth - Figure 3.8; Equation 3.22 - Absorption coefficient * - Responsivity - Figure 3.9; Equations 3.25--3.28 - Quantum efficiency and band gap * - Antireflection response - Figure 3.10; Equations 3.29--3.32 - Film index, substrate index, thickness, design wavelength, and a **qualitative** collection envelope at the band-gap edge * - Open-circuit photovoltage - Equation 3.18 - Temperature, ideality factor, and optical generation Python physics engine --------------------- The browser controls and the notebook use the same equations implemented in ``KrakenOS/Physics/photodiode.py``. Its primary entry points are: .. code-block:: python from KrakenOS.Physics.photodiode import ( PhotodiodeParameters, excess_carrier_profile, photodiode_current_density, photovoltage, responsivity, ) parameters = PhotodiodeParameters( diffusion_cm2_s=25.0, lifetime_s=1e-6, temperature_k=300.0, ) current = photodiode_current_density( [-0.5, 0.0, 0.5], parameters=parameters, generation_cm3_s=2.5e11, ) Live Jupyter kernel ------------------- The button opens a real JupyterLite notebook backed by a Python kernel compiled for the browser with Pyodide. It runs locally on the reader's computer; GitHub Pages only serves static files. The first kernel start can take several seconds because the browser downloads Python and NumPy. .. notebooklite:: notebooks/ch03_photodiode_lab.ipynb :new_tab: True :new_tab_button_text: Open Chapter 3 in JupyterLite The notebook is intentionally separate from the instant slider explorer: the explorer is fast and works without a kernel, while the notebook exposes the Python equations for modification and further experiments.