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.
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.
Course textbook: Modern Physics by James Rohlf, Wiley, 1994.
Laboratory Manual: Online Lab Manual and Prelab
Assignments for Modern Physics, available at
http://physics.bu.edu/ulab/modern_labs.html
Mandatory readings from the textbook:
To be read before class time on Sept. 7: Chapter 1, pp. 1 to 9.
To be read before class time on Sept. 12: Chapter 1, sections 1.3
through 1.5 on pp. 9 to 20, and the first 5 bullets in the Physics
Summary on p. 28 (up to "Electric charge is quantized", included),
which must be memorized.
To be read before class time on Sept. 14: Chapter 2, pp. 33 to 41.
To be read before class time on Sept. 19: Chapter 2, sections 2.2
through 2.4 on pp. 41 to 56, and the Physics Summary on pp. 56, 57.
The following formulas must be memorized from the summary:
 from the second bullet: f_{ g }(x) is proportional to
exp[(xa)^{2}/2σ^{2}];
 from the fourth bullet:
 from the eighth bullet: f_{MB}=C e^{E/kT};
 from the tenth bullet: df/dE is proportional to ρ(E) e^{E/kT}.
To be read before class time on Sept. 21: Chapter 3, pp. 61 through 66.
To be read before class time on Sept. 26: Chapter 3, section 3.2 on
pp. 66 to 76.
Assignments:
Assignment 1 with solutions.
Short assignment 1
to be returned in class on Sept. 14.
Assignment 2 with solutions.
Short assignment 2
to be returned in class on Sept. 26.
Assignment 3, to be returned in class
on Sept. 28.
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 3:35PM to 4:25PM.
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.