MaxwellBloch Documentation
MaxwellBloch is a Python package for solving the coupled Maxwell-Bloch equations describing the nonlinear propagation of near-resonant light through thermal quantised systems such as atomic vapours.
Propagation of a 4π pulse through a dense atomic vapour. The pulse immediately breaks up on entering the medium and the resultant pulses form two optical solitons each with a pulse area of 2π.
MaxwellBloch is used for theoretical research, for modelling experiments and for undergraduate and graduate teaching.
MaxwellBloch can model two, three or many-level systems with physical effects including:
Inhomogeneous broadening due to spontaneous decay,
Doppler broadening in thermal systems,
Collision dephasing,
Sub-level structure.
Modules are also available for:
Generating hyperfine structure for alkali atoms with the correct channels and angular momentum factors for coupling and decay,
Specral analysis,
Plotting and animating solutions.
Some phenomena that can be demonstrated:
Linear absorption and dispersion,
Fast light,
Slow light,
Electromagnetically Induced Transparency (EIT),
Storage and Retrieval of Light pulses,
Self-Induced Transparency (SIT) and Optical Solitons,
Matched Pulses and Simultons,
Hyperfine Pumping.
See the Examples section below for details.
Usage
- Getting Started with the Two-Level Atom
- Three-Level Atoms
- Structure and Angular Momentum
- Spectral Analysis
- Velocity Classes for Modelling Doppler Broadening in Thermal Systems
- Counter-Propagating Fields
- Plotting
- Installation
- Usage pattern
- Setup: solve a two-level absorber
field_spacetime— space-time heatmap of |Ω(z, t)|field_envelope— pulse shape at fixed zpulse_area— area theoremspectrum— frequency-domain absorptionpopulation— state populations vs timepopulation_spacetime— population heatmapcoherence— off-diagonal density matrix elements- Static PNG export
- Built-in Time Functions
- Scripts for Making Movies
Examples
- Examples Gallery
- Two-level
- Linear Absorption & Beer-Lambert Law
- Two-Level: Weak Pulse through Few Atoms
- Two-Level: Weak Pulse
- Two-Level: Weak Pulse through More Atoms
- Two-Level: Weak Pulse with Decay
- Two-Level: Weak Pulse through More Atoms with Decay
- Two-Level: Weak CW with Decay
- Two-Level: Weak CW through More Atoms with Decay
- Two-Level: Weak Square Pulse with Decay
- Self-Induced Transparency & Optical Solitons
- Area Theorem: Odd-π Instability
- Photon Echo & Coherence Time ($T_2$) Measurement
- Linear Absorption & Beer-Lambert Law
- Three-level
- Λ Configuration: EIT, CPT & Adiabatons
- Λ-Type Three-Level: Weak Pulse, No Coupling
- Λ-Type Three-Level: Weak Pulse, With Coupling
- Λ-Type Three-Level: Weak Pulse with Coupling in a Cloud — Pulse Compression
- Λ-Type Three-Level: Weak Pulse with Time-Dependent Coupling in a Cloud — Storage and Retrieval
- Λ-Type Three-Level: Coherent Population Trapping (CPT)
- Λ-Type Three-Level: Adiabatons
- V Configuration: Matched Pulses & Simultons
- V-Type Three-Level: 0.5π Sech Pulse, 0.5π Coupling
- V-Type Three-Level: 0.5π Sech Pulse, 1.5π Coupling — Simulton Propagation
- V-Type Three-Level: √2π Sech Pulse, √2π Coupling
- V-Type Three-Level: √8π Sech Pulse, √8π Coupling
- V-Type Three-Level: √18π Sech Pulse, √18π Coupling
- V-Type Three-Level: Solitons form Simulton
- V-Type Three-Level: Weak CW, √2π Coupling: Optical Surfer
- V-Type Three-Level: Weak CW, √4π Coupling: Double Optical Surfer
- Ladder (Ξ) Configuration: EIT, Autler-Townes & Rydberg
- Λ Configuration: EIT, CPT & Adiabatons
- Hyperfine Structure
Support
API Reference