PHYS 686: Computational Quantum Optics (Spring 2010)

Instructor: Daniel A. Steck
Office: 277 Willamette      Phone: 346-5313      email:
Office hours: walk-in anytime or by appointment (best to email first)
Course home page:

Schedule: MWF 11:00-11:50, 318 Willamette
Course reference number: 36900
Credits: 4
Prerequisites: PHYS 685


Course overview

This course will provide a broad overview of computational methods in physics, with a focus on problems in quantum optics, and in particular quantum measurement. We will also continue coverage of other topics in quantum optics, according to class interest.

The major shift this term from the previous terms will be the focus on computational projects. Students will work in teams (assigned by the instructor) on two assigned projects and a term project. We will cover some topics in numerical methods, such as methods for solving ODEs and parabolic PDEs. However, the projects will require a somewhat broader knowledge than what we will cover in class. You can learn these extra topics from the examples provided for the projects, from the resources posted here, from the instructor, and from other group members.

The primary language for this course will be Fortran 95, although I also encourage you to become familiar with the Octave numerical language for testing calculations before coding them in Fortran.

Computer Access

You will be given access to the qc cluster, where you will have ample resources to perform your calculations, and even to do high-performance, parallel calculations for your main project, if you choose to. All interactions with the cluster are via remote login; see the cluster page for details. You will have individual accounts, and I recommend you keep your default umask set to 022 so you can share code and data with others in the class (in particular, your teammates). This is the “primary” computer for the course in the sense that you should store the final versions of your codes there. You should also post your project writeups on web pages on these machines.

The unix environment is the de facto standard for high-performance numerical computation, and the programming examples will be for unix. Your codes must also compile and function under Unix, although you can of course run the codes wherever you like. For remote access to the cluster (say, from your personal computer), you will need a terminal application that supports secure shell (ssh), as well as an X Window server. These are all included on unix/linux and Mac OS X systems, but need to be installed on Windows systems. Contact the instructor for assistance with remote access.


Grades for the course will be based on two assigned group projects and a group term project. The relative weights will be as follows:

Assigned projects: two projects will be assigned, with about 3 weeks available to complete each project. Teams of ~3 students (assignd by the instructor) will work cooperatively to complete the projects. Groups will primarily be responsible for managing themselves, particularly regarding work-load distribution. Writeups for the projects must be prepared in LaTeX, and submitted to the instructor on paper. Writeups must also be posted on a web site prepared by each team on (special directories will be created for each team for this purpose).

Term project: The term projects will be on a topic of common interest by team members, but the topic must be approved by the instructor. The instructor can suggest problems for term projects, if necessary. By Monday, 3 May, teams must turn in a one-paragraph summary of the term project, by this point you should have cleared the topic with the instructor. Teams will present their project results in class. The writeups are due the following week, by noon on Monday, 7 June (during the nominal final-exam slot). As for the assigned projects, writeups for the term projects must be prepared in LaTeX, submitted to the instructor on paper, and posted online.

Pass/fail grading option: does not make sense due to the cooperative nature of the course work. The level of effort required to pass is essentially the same as the effort required for a good grade.


Topics to cover are listed below, along with an approximate number of lectures for each topic. Topics may change according to class interest.


Monday Wednesday Friday
29 March
Class canceled: qualifiers
31 March
Project 1 assigned
2 April
Class to be rescheduled: recruiting
5 April
7 April
9 April
12 April
14 April
16 April
19 April
21 April
Project 1 due; Project 2 assigned
23 April
26 April
Class to be rescheduled: UIUC visit
28 April
Class to be rescheduled: UIUC visit
30 April
3 May
Term project summaries due
5 May
7 May
10 May
12 May
Project 2 due
14 May
17 May
19 May
Class to be rescheduled: QELS
21 May
Class to be rescheduled: QELS
24 May
26 May
Class to be rescheduled: DAMOP
28 May
Class to be rescheduled: DAMOP
31 May
No Class: Memorial Day
2 June
4 June
Term project presentations