PHYS 686: Numerical Quantum Optics (Spring 2008)

Instructor: Daniel A. Steck
Office: 277 Willamette      Phone: 346-5313      email:
Office hours: WF 1-2, and by appointment (best to email first)
Course home page:

Schedule: MWF 12:00-12:50, 318 Willamette
Course reference number: 36137
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 topics from last term, such as quantum vacuum effects.

The major shift this term from the previous terms will be the focus on computer simulations. 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 90/95, although I would 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 my general use lab computers (three G5 iMacs,,,, with shared user home directories), which you can use remotely or in person. The best times for using these are “off-peak” hours, though you will obviously need to find someone to let you in the lab (256 WIL). These are the “primary” computers 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 above machines are relatively lightweight; although we will not tackle extremely computationally intensive problems in this course, you should also request an account on the UO Computing Center Cluster.

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 lab and cluster computers (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 three or four 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

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, 7 May, groups must turn in a one-page 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 Friday, 13 June. 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 student interest.


Monday Wednesday Friday
31 March
Class to be rescheduled: qualifiers
2 April
Project 1 assigned
4 April
7 April
9 April
11 April
14 April
16 April
18 April
Class to be rescheduled: Banff conference
21 April
23 April
Project 1 due; Project 2 assigned
25 April
28 April
30 April
2 May
5 May
Term project summaries due
7 May
9 May
12 May
14 May
Project 2 due
16 May
Class to be rescheduled: NW Section Meeting
19 May
21 May
23 May
26 May
No Class: Memorial Day
28 May
Class to be rescheduled: DAMOP
30 May
Class to be rescheduled: DAMOP
2 June
4 June
6 June
Term project presentations