Professor  Physics Department Office: Physics Research Building (PRB),
3 Cummington Mall, room 551. 
Goal of this course is to teach the basics aspects of modern physics (relativity, quantum mechanics, statistical mechanics etc.), at a level appropriate for students who intend to major in physics. Emphasis will also be put on the historical developments which led to the foundation of modern physics.
Please consult this website regularly for assignments, readings, and other course information. Please also check the syllabus for detailed information about lectures, schedule of exams, grading criteria, and many other matters related to the course.
Prerequisites:
CAS PY 251, 252 (or 211, 212) and CAS MA 124.
Corequisite: CAS MA 225.
Course textbook: Modern Physics by James Rohlf, Wiley, 1994.
Book for readings: Physics and Philosophy: The Revolution in Modern Science by Werner Heisenberg, HarperCollins, 2007.
Laboratory Manual:
Online Lab Manual and Prelab Assignments for Modern Physics,
available at
http://physics.bu.edu/ulab/modern_labs.html
Lecture notes:
Discussion on Sept. 12: notes by
Sal Pace.
Mandatory readings:
To be read before class time on Sept. 11: Rohlf, Chapter 1, pp. 1 to 6, and
Heisenberg, Chapter 4 "Quantum Theory and the Roots of Atomic
Science" (pp. 33 to 49 in the printed version of the book.)
To be read before class time on Sept. 18:
Rohlf, Chapter 1, pp. 7 to 20, up to Sect. 1.6 excluded (but you are
encouraged to read Sect. 1.6 anyway.)
To be read before class time on Sept. 25:
Rohlf, Chapter 2, pp. 33 to 54, up to "Vacuum Tubes", excluded.
Assignments:
Assignment 1 with solutions.
Short assignment 1,
to be returned in class on Sept. 18.
Assignment 2 with solutions.
Solutions to odd numbered textbook problems:
This course introduces computational techniques for the solution of research problems in physics.
The course does not assume any prior knowledge of computer programming. During the first few weeks of the course the students learn basics aspects of programming that will be sufficient to complete the homework assignments and to follow the lectures. As the course progresses the students will further develop their programming skills.
All lectures and discussion sessions will be held in the CAS Computing Laboratory, room CAS 327. The CAS Computing Laboratory is a workstation equipped room. The students will have user accounts on all the workstations and will also be able to access their accounts remotely. Lectures will be held on Tuesday and Thursday from 11AM to 12:15PM and a discussion session will be held on Friday from 4:40PM to 5:30PM.
Prerequisites are PY351 or equivalent, or consent of the instructor. But what is really needed to follow the course is a basic knowledge of multivariate calculus, of linear algebra, especially the notions of eigenvalues and eigenvectors of a matrix, and of complex numbers. It is assumed that physics majors who passed PY351, "Modern Physics", will have developed these notions, but students in different majors who have that mathematical knowledge can attend the course with profit even if they did not take PY351.
There is no required textbook: lecture notes, software and other materials for the course are distributed through a shared file system, on a server accessible to the students, in the CAS workstation classroom.
Please consult the syllabus for detailed information about lectures, exams, grading and many other matters related to the course.
After introductory lectures on the basics of computing, the course proceeds toward modern methods of computational physics. In particular the data parallel paradigm and graphics rendering are illustrated through computationally intensive applications. All of the techniques are presented in the context of specific projects. For some problems, students are asked to play the role of application scientists, working with the computer in an interactive manner to perform a variety of numerical experiments. For other problems, students are required to take an active part in designing the code that will be used for the solution. Emphasis in all cases will be on the importance that the proper formulation of a problem plays for its ultimate computational solution.

Some simple operations are implemented by parallel algorithms on a twodimensional array representing the intensity values of the pixels in a monochrome image. A relationship is established between the operations performed by computer (e.g. blurring of the image) on the discrete set of image data and fundamentals equations of mathematical physics for continuum fields (e.g. the diffusion equation). Advanced visualization software is presented. Top and bottom left: the image before and after the blurring operation, which can be interpreted as a diffusion process. 

Various methods for solving Poisson's equation are evaluated in terms of their suitability for the data parallel paradigm. Students are asked to write the code for some basic iterative methods of solution on a parallel machine. Numerical experiments are used to demonstrate the occurrence of critical slowing down. Multigrid methods and other algorithms for overcoming critical slowing down are analyzed for implementation in a data parallel environment. 

The timedependent Schrödinger equation in one space
dimension is solved by means of an algorithm that uses repeated
fast Fourier transforms in order to preserve the norm of the wave
function. The complex wave function is represented graphically by
means of a color map whereby its phase is encoded by the color
circle. Here the student is provided with code and asked to use
it as an application scientist, experimenting with a wide range of
initial data.


Stochastic algorithms (Monte Carlo methods) are introduced for the simulation of models, such as the Ising model and the Nstate Potts model, which exhibit interesting thermodynamical behavior and phase transitions. Programs for the implementation of such algorithms on a parallel machine are analyzed. Students then use these programs to perform large scale numerical experiments on phase transitions. Particular attention is given to the management of the large base of data that the simulations generate and to developing the auxiliary programs required for the analysis and interpretation of the data. 

Students are asked to write serial code for the implementation of molecular dynamics simulations. Following optimization and numerical experimentation with this code, the students and instructor collaborate to write highly efficient code for the simulation on a parallel machine. Performance for the serial and parallel modes of computation are compared and evaluated. 
Please consult the syllabus for office hours, the dates of the midterm (and final when available) exams, grading criteria, and other topics related to the course.