Spring 2011

**Lectures:**
When:
MWF, 9:00am-9:50pm. Where:
PS 234 **Office
Hours:
**
When:
MWF,
1:30am-2:30pm.
Where:
PS 329

Instructor:

## SurveyI would like to plan this course according to your knowledge, experience, and interests. To facilitate this, it would be of great help if you can send me an e-mail with your answer to the following questions: |

The fundamental advantage of using computers in physics is the
ability to treat systems that cannot be solved analytically. In the
usual situation we can gain insight on the physics of a problem
studying soluble models, or limits of a problem that can be treated
exactly. However, most of the real world cases do not fall in this
category, and we need a computer to solve them. In principle we
expect the solutions to agree qualitatively with the intuition gained
by solving the simple cases (or "toy models"), but this is
not always the case. Sometimes, the numerical results defy out
intuition, and make us reshape our understanding of the problem. This
is the case of "chaos", for instance, where the dynamics of
simple classical systems gives rise to some surprising behavior.

The
purpose of this course is to introduce students to a series of
paradigmatic physical problems, using the computer to solve them.

It
will be customized according to students' interests, background and
knowledge.

Students will be able to pick a favorite topic for
their final assignments.

Prerequisites for the course are
Numerical Analysis and knowledge of a programming language (C/C++,
Matlab, Fortran, Python). **Class format:**

Each class
will be focused towards solving a physical problem, and will have the
following presentation:

- assessment (visualization or exploration)

I
am assuming that you know Numerical Analysis, and some programming
language. Also, that you have access to the lab computers, and you
know how to use them and the compilers. I am going to use C++ for the
course. This is not a programming or C++ course, though, so you are
welcome to use another language if you prefer. However, we are going
to learn how to implement numerical algorithms to solve physical
problems, and how to optimize them to make them more efficient.
Implicitly, you are going to learn C++ and some tricks.

Most of
the exercises and assignments will involve plotting functions and
data. If you don't know how to use a plotting program, you should
look at GnuPlot, freely
available in the web, and with versions for Windows and Linux.**The
grade for the course will be based on:**

final assignment (55%) [take-home]

Scale: A: (> 90%) ; B: (80-90%); C: (70-80%) ; D: (60-70%) ; F: (< 60%)

Here is a list of topics I am planning to cover.

The list is
tentative, it is not fully worked and developed.

It will be
adjusted to students' background, knowledge and interests. (That's
why I asked you to answer my survey above!)

We will not cover ALL
the topics necessarily.

- Band structure

These books are all recommended but not required.

**Introduction to Computational Physics**, M.L. De Jong, Addison-Wesley, 1991.

**The C++ Programming Language**, B. Stroustrup, Addison-Wesley, 3rd Edition (2000). The C++ bible by its prophet.

- C++ Tutorial: http://www.cplusplus.com/doc/tutorial/
- ESSL: IBM's Engineering and Scientific Subroutine Library

- Virtual Physics Links at atoms.org.uk: collection of applets and links

- Exercise 5.9: string.cc
- grid.gnuplot
- grid.py
- Simple matrix class: matrix.h
- Simple matrix class: testmatrix.cc
- Random walks and Metropolis. Exercise 10.1.: rw.cc

- Homework 2: Compare Euler's method, and velocity Verlet to solve Exercise 1.7 from the notes.
**Due Mon. Feb. 15th.** - Homework 3: Exercise 2.2 from the on-line notes.
**Due Mon. Feb. 22nd.** - Homework 4: Exercise 4.4 from the on-line notes. Use the program coded in class, and apply rigid boundary conditions.
**Due Fri. Mar. 25th.** - Homework 5: Use the program coded in class to calculate the position vs. time for two coupled oscillators. Use k1=1; k2=0.5; k3=1, and the initial conditions x1(0)=0.5; x2(0)=0; v1(0)=v2(0)=0. Fourier transform the result to obtain the normal frequencies and compare to the exact solution.
**Due Mon. April. 11th.**

more are coming soon...