Description
This program generates the optical Bloch equations for an N-level system, as well as the C-language source code for the numerical solution of the equations via the fourth-order Runge-Kutta method. With the rotating wave on (and no wave mixing), the steady state is also calculated right in the browser: the Graph panel shows the density matrix as a function of the detuning of one of the fields, with the transit time of the atoms through the beam (γt) included as relaxation.
Controls
- To create a level, drag the level drawn in the dashed frame (top left corner of the drawing) to wherever you want, or click it to create one above the others. To delete a level, drag it back to the frame, or click it in "Erase" mode.
- Ctrl+Z undoes and Ctrl+Y redoes any change to the system (creating, deleting or dragging levels, fields, decays, population, values and parameters), together with the toolbox drawings.
- The population in the absence of fields appears as dots to the left of each level (5 dots = 100%; the last one may be only partly filled). To change it, click "Population" and then the levels: each click includes or removes the level, and the included levels share the population equally. For other values, type the number next to the level, as a decimal (0.25) or a fraction (1/3); the others adjust to add up to 1. It is toward this distribution that γt relaxes in the steady state, and it is the initial condition of the C code.
- Configure the system by setting the positions of the states (click and drag the states).
- Add the fields (Rabi frequencies) and the decays directly on the drawing: click "Fields" or "Decays" in the corner of the drawing and then two levels. To remove one, click "Erase" and then the arrow. Click the button again (or press Esc) to go back to dragging the levels.
- On the toolbar, click "Bloch Eq.".
- For the steady state, set in the "Parameters" panel the Rabi frequencies (Ω), the fixed detunings (δ) and the rate (Γ) of each decay. To choose the swept field, click "Sweep" in the corner of the drawing and then the field's arrow (it is highlighted, with the detuning label); clicking again stops sweeping it. Several swept fields represent the same laser on several transitions: the graph axis is the detuning of the first one, and each of the others has a fixed offset from it, editable in the table. Click an arrow to show or hide its value (Ω or Γ) on the drawing; the "Ω Values" and "Γ Values" buttons show all of them at once (or hide them, if all are already shown). Click a value to edit it right there. The Graph panel updates by itself and initially shows only the level populations and Im σ of the swept fields. Click the legend to show or hide curves and use "Download" to download the points.
- At the top of the Graph panel, choose the mode: "Spectrum" shows the steady state as a function of the detuning of the swept field; "Time" shows the evolution of the density matrix from the initial population, computed by 4th-order Runge-Kutta, with all the fixed detunings of the table (in Time mode there is no swept field). The integration time and step are in the "Parameters" panel; if the step is too large for stability, the calculation reduces it automatically and gives a notice below the graph.
Developers
Marco P. M. de Souza
References
M. P. M. de Souza, G. H. H. Pavão, A. A. C. de Almeida and S. S. Vianna,
The Bloch Equation Generator – SimuFísica, arXiv:2506.01108 [quant-ph] (2025).
Access link