Development of instructional java applets for quantum optics/quantum informationwith Julio Gea-BanaclocheRequires: a bright undergraduate with experience in some high-level programming language, ideally java, but C or C++ would do. Objective: to develop some instructional java applets over the course of a summer. The first project would be to develop an applet that allows one to visualize a quantum field’s Q distribution and a qubit (two-level system) on the Bloch sphere. More details: As supplementary teaching material, Java applets are very attractive for several reasons. They are real programs (not just animations) allowing the user to interact with them, modify parameters settings, and so forth. They are ideally suited to a client-server distribution model, where the program is available in a central computer and can be run by anybody connected to that computer over the Internet, requiring no more special equipment, on the client's part, than a modern Web browser. They are also, to a large extent, machine independent: the same program, compiled once, will run on any platform that supports java, which includes all of the most popular operating systems available today. This also makes it possible, as an alternative, for the students to download the binary file (or compile the source code themselves; both will be made available) and run the program locally on their own computer. First project: Quantum field and two-level atom (qubit) visualization applet. In many problems of interest in many areas of physics one has to deal with a coupled quantized oscillator and two-level system. In quantum optics, the oscillator is a single mode of the electromagnetic field, and the two-level system is an idealized model of an atom. But one also runs into the same kind of equations when studying a mechanical nanoresonator coupled to a superconducting qubit (see, for instance, the paper cond-mat/0412392, at http://aps.arxiv.org/find). Or, the two-level system could be a quantum dot in an optical cavity... In any case, one often feels the need to get a more complete visualization of what the two systems are doing than that provided by simple two-dimensional plots of, for instance, expectation values as functions of time. The state of the two-level system is best represented as a point in a three-dimensional "Bloch sphere," and it is very useful to be able to look at the trajectory described by this point from various angles. I have, therefore, over the years, written several programs that allow me to plot this three-dimensional object and rotate it by dragging a couple of sliders on an application window. These programs, however, are machine specific-the first one I wrote for the NeXT computer, more than a decade ago, and the most recent version is for MacOS X. The first goal of this project would be to create a java version of this program. Initially, it should be able to plot data from a file; later we could try to make it so that it can actually generate the data by doing the necessary calculations (i.e., integrating the appropriate version of the Schroedinger equation). It might be interesting also to explore the possibility of having an outside program do the calculation and "pipe" the data to the java applet, preferably in real time (although this may prove too hard for a single summer project). As for the quantum oscillator, there are a number of ways to visualize its state, such as the Wigner distribution, or the Glauber Q function (sometimes called the Husimi distributions). These are functions of two parameters, which correspond roughly to the oscillator's position and momentum. The best way to visualize them would be some sort of 3-D plot, but, as this may prove too hard to get working in a reasonable time, a relatively simple alternative would be a flat color-coded altitude map. Again, I have developed a program (in objective-C) that plots such a map, and the idea would be to port it to java, and make it interactive along the lines sketched above. Here is what the current MacOS X application looks like:
|
| project index | previous project | next project |