General Information about 780.20 Computational Physics
- Course title:
- Computational Physics
- There is no required text but there will be readings from
handouts from class and background notes posted online.
Some useful references that we'll use are:
- The lecture notes
by Morten Hjorth-Jensen from the University
of Oslo. Prof. Hjorth-Jensen's philosophy of
teaching computational physics is similar to mine and the
notes are free!
Physics: Problem Solving with Computers
by Rubin Landau and Manuel Paez is the text used in the past.
It is not required but is a useful guide.
[It is available as an "E-book" from the libary---you can view any
part in your browser but you cannot
print more than a page at a time.]
- Numerical Recipes: The Art of
by Press et al. is available in
- There are many good C++ references to choose from, including some
targeted at science and engineering applications. A good, general
reference (suitable for beginners) is
Programming by Steve Oualline (published
- The prerequisites are simply physics at least through
the undergraduate 26x series. It will be useful but not necessary
to have some experience with Mathematica,
C, fortran, or C++. The teaching strategy is to give you notebooks or
codes and have you run and then modify (or debug) them as you
follow along through worksheets.
Email Prof. Furnstahl
if you're concerned about
your preparation (e.g., if you have no experience at all).
- The plan is to start with an overview based on the first
part of the Hjorth-Jensen lecture notes and then cover
from the rest of the notes and from the Landau/Paez text
based on the instructors' prejudices
and class interest (to be
In most cases the discussion will be framed by a physics topic
such as nonlinear oscillations (e.g., chaos).
We'll be using programs written in C++ and occasionally Mathematica or
as we go along.
Some topics we will cover along the way:
- Errors and uncertainties in computations. E.g.,
one should understand how to analyze whether a calculation
is limited by the algorithm or round-off error.
We will come back to this topic repeatedly.
- Basic computational algorithms for: integration, differentiation,
differential equations, root finding. Less emphasis on
theory than on understanding how well an algorithm
should work (e.g., should the accuracy improve as 1/N2,
where N is
the number of points used) and what algorithm is appropriate for what
situation (e.g., oscillatory integrals or integrands with
singularities). In many (or most)
cases you should be using a packaged library
routine and not writing your own, so we'll learn how to use such a
library and check the results.
- What you should know about: random numbers, Monte Carlo integration
and simulation, matrix computing, and so on.
- Aspects of writing code: good programming practices;
how to test and debug a code (C++, fortran, Mathematica, or whatever);
how to tune a code to run faster.
- Aspects of a computational physics project: breaking down a
project into sub-problems; implementation issues (e.g., program design,
code conventions, makefiles); use of graphics for visualization;
- Object-oriented programming: What is it and when is it relevant for
- Using Mathematica for computational physics. This is a broad
topic, of course, and we will just touch upon aspects here.
- Computing Environment:
- The general idea is to use basic and portable tools.
- We'll use the GNU tools in a Linux environment in
Smith 2076/2082. These include g++, make, indent, gdb, gprof,
and editors (e.g., emacs, nedit). This environment can be
duplicated on a PC using Cygwin, by logging into a public Linux
machine via an X-windows program (Xwin32), or by adding Linux to
your computer ("dual booting").
- The GSL ("Gnu Scientific Library") is written in portable ANSI
C is a free numerical library.
- Mathematica is available on all platforms in the Department
and for $30/year for registered OSU students.
- Prof. Richard Furnstahl
office: 4004 Smith Lab
email: firstname.lastname@example.org or email@example.com
phone: 292-4830 (office) or 847-4026 (home)
- Daniel Bibireata
- Terry Bradley
office: 2180 Smith Lab
phone: 292-8598 (office)
- Class meets MW from 2:30pm to 4:30pm in Smith 2076/2082 (or at
another arranged time for those with conflicts).
Each period will primarily be a hands-on lab
- Office Hours:
- By appointment (asking in class is easiest) and . . .
[to be announced] (Furnstahl)
- Assigned problems [70%]
- Project [30%]
- Web Pages:
- This info:
- Course home page:
Your comments and
suggestions are appreciated.
[Math and Physical Sciences]
[Ohio State University]
Physics 780.20 Computational Physics Information.
Last modified: 10:18 am, December 28, 2005.