BlochApp was written for Microsoft Windows, Version 3.1, with Borland Pascal for Windows, Version 7.0. This program simulates the semiclassical interaction of atoms with an electromagnetic field. The executable file is BlochApp.exe and requires a math coprocessor, Microsoft Windows, Version 3.0 or higher, and a SVGA monitor. A 33 MHz 486 processor or better is highly recommended. The program is principally mouse driven, but a keyboard can be used instead.
Figure: BlochApp's Opening Screen
BlochApp's opening screen is seen in Figure . There are three types of control objects in BlochApp: menus, buttons, and sliders. The main menu is located at the top of the screen and has four items. The File item allows one to open and save configurations of BlochApp as well as print the screen. The Parameters item allows one to change various atomic and numerical variables. Field allows one to specify electromagnetic field configurations. Help offers general help about the program. The upper and lower right corner plots have menus associated with them which give the user access to options specific to those plots.
In addition to the menus, there are three buttons and two sliders. One can run, stop, or reset the program with the buttons. The sliders allow one to vary the two central variables: field frequency (Freq) and amplitude (Amp). Three text readouts are located above the buttons. One exhibits the evolution time of the system, while the others show lifetimes which are calculated from the atomic variables.
The BlochApp screen has three internal windows. Each is used for a different type of analysis. The window in the upper left corner differs from the other two because data may be input into this window. The other two analyze the data calculated by the density matrix.
The window in the upper left corner displays the atomic density matrix. When the program is not running, the fields in this window may be edited to set the initial value of the density matrix. Clicking on this window allows one to toggle between a numeric and a graphical representation of the elements of the density matrix. The latter representation is the phasor picture of complex numbers while the former is the Hamiltonian view.
The window in the upper right corner displays the time--dependent probabilities of being in |1> and |2>. Holding the left mouse button down in the plot allows one to read coordinates off of the screen in the plot's scale. Holding the right mouse button down or double clicking the left mouse button in the plot reveals a menu. Both of these operations are present in the upper and lower right plots. Using this menu, the user can either change the scale of the plot or select the analysis type. This plot has three types of analysis: versus Time, versus Time, and the inversion, , versus Time.
The lower right corner window displays the Bloch vector picture. This plot's menu allows the user to change scale, frame type, and analysis type. The frame type refers to the previously discussed Rotating Frame. By selecting this menu item, one can move in or out of this frame. The scale inspector varies between two different dialog boxes depending on the analysis type. If the analysis type is three dimensional, then the scale inspector allows one to alter the magnification of the plot and the Euler angles. If the analysis type is two dimensional, then the same inspector as in the upper right hand plot appears. The analysis types are split into two classes: Time Dependent and Projections. The former has various configurations of the Bloch vector's components plotted against time. The latter contains the option to either view the Bloch vector as a three dimensional object or as a projection into a number of planes. There is also an Export 3D Data option with which the user can export all the Bloch vector information. This data could then be imported into a package like Mathematica and further analyzed.
All of the analysis plots have the capability of being cloned. This option is found in the inspector for a graph window. All of the applications in this text have this capability. When this option is selected a child window of the application is created. This window is free--standing and allows the user to rerun the program and keep a copy of a previous run for comparison. There is another option in the Inspector which allows the user to copy or paste the data in the graph window to an archive. This archive can be copied from or pasted to any graph window including a cloned window. Frequently one will want to examine how a phenomenon changes as a parameter is varied by archiving the plot after each run and pasting that archive to a cloned window. An entire series of plots can be generated for the user's perusal in this manner. The cloned window is not affected by changes in the applications; however, when an application is exited, the cloned window is destroyed. The archive is lost with each subsequent copy of data to the archive.