Physics 305: Computational Physics II
Course Instructor (Winter 2022):
Steve
McMillan
Lectures: Tu 3:30-4:50, F 1:30-2:50, Disque 704
zoom: https://drexel.zoom.us/my/slm23
Office hour: F 3:00-4:00, or by appointment
Office: Disque 815
Phone: (215) 895-2709
e-mail: slm23 (at) drexel.edu
Course Overview
This is the second in a series of hands-on "computational labs"
designed to complement the traditional "lecture/lab/recitation"
Physics instructional sequence. It is intended to be taken after
the Contemporary Physics (PHYS 113, 114, 115) or the Fundamentals
of Physics (PHYS 101, 102, 201) sequences. Other prerequisites
are MATH 210 (Ordinary Differential Equations) and PHYS 324
(Topics in Mathematical Physics), or their equivalents. It will
be assumed that the student is familiar with the Python
programming language; the course will be conducted in Python.
Familiarity with a more efficient lower-level language, such as C
or C++, may be helpful for some applications. Students will be
introduced to basic scientific programming techniques and
problem-solving strategies using examples and case studies drawn
from a variety of sources. Case studies will include the solution
of systems of simple differential equations, investigation of the
properties of chaotic systems, few-body systems in astrophysics
and/or molecular dynamics, and the time-independent Schrodinger
equation.
-
Course outline
- Programming review
- Introductory exercises
- Numerical integration of ordinary
differential equations
- Building a simple N-body code
- Some N-body applications
- Variable time steps
- Boundary-value
problems: shooting
- Boundary-value
problems: matrix methods
Text
There is no assigned text for this course. The course web site
and links therein will be the primary source. Details on much of
the computational material can be found in the text Numerical
Recipes in C, by W. Press, S. Teukolsky, W. Vetterling, and
B. Flannery (1992, Cambridge University Press). Online versions
are available at
http://numerical.recipes/book/book.html. The online
chapters come with ``nags'' that interrupt guest access, but you
can purchase a subscription, and I may place relevant excerpts on
Learn.
Topics
- Review of Python, numpy, and matplotlib
- Numerical differentiation and integration
- Overview of ODEs
- reduction to standard form
- initial-value problems
- boundary-value problems
- Integration algorithms for initial-value problems
- Euler method
- explicit and implicit methods
- Midpoint method
- Runge-Kutta-4
- applications
- refinements
- predictor-corrector schemes
- the Leapfrog integrator
- other approaches
- more on predictor-corrector schemes
- symplectic methods
- Application: N-body dynamics in astrophysics and
molecular dynamics
- direct-summation techniques
- treecodes
- the few-body problem
- Algorithms for boundary-value problems
- solving algebraic equations
- shooting
- relaxation
- Application: the one-dimensional Schrödinger equation
Evaluation
Grading will be based on roughly 6-7 homeworks. There will be no
mid-term and no formal final examination. See the course syllabus
for more information on homework format and grading rubric.
Homeworks
- Homework #1
(solutions)
- Homework #2
(solutions)
- Homework #3
(solutions)
- Homework #4
(solutions)
- Homework #5
(solutions)
- Homework #6