Computational Physics Physics 4810/7820 3 credits, 11:00-12:15pm, Duane G1B31 Web Site: http://www.colorado.edu/physics/phys4810/phys4810_sp08 Professor: Scott Parker, Duane F-815, sparker@colorado.edu, 492-3292. Office Hours: Tues 2:30-3:30pm, Wed 3:00-4:00pm, or by appointment. TA: Jianhua Cheng, Duane F-923, Jianhua.Cheng@colorado.edu, 492-6728. Office Hours: Wed 3:00-4:00pm, Thur 5:00-6:00pm, or by appointment Physics Computer Lab: Duane 116. The PCs in the lab have what you will need to do the coursework. We will occasionally meet in the computer lab for hands-on examples and discussion of the assigned projects. You will need to know the: Login:__________________ and Password:___________________ . This course will be an introduction to current research topics in computational physics including: nonlinear dynamics, wave equations (including quantum), spectral methods, random processes, Monte-Carlo methods, molecular dynamics, the Ising model, and phase transitions. We will also touch on select interdisciplinary topics such as neural nets and protein folding. Using interesting examples we will cover numerical solution of initial-value ordinary and partial differential equations, including finite-difference, spectral and Monte-Carlo methods. You will learn by doing projects that involve writing computer programs and diagnosing simulation data. Lectures and examples will help set the theoretical framework and get you started, but the real learning will take place by doing the computer projects. The course grade is based solely on these projects. Though not the main point of this course, one thing you will gain is a working knowledge of IDL (Interactive Data Language) which is a powerful tool for visualization, graphics, and data analysis. Scientists planning to do experimental work or computing will benefit enormously from a working knowledge of software of this type. CU has a site license for IDL. The software can be purchased from Karin Berglund, karin.berglund@colorado.edu, 492- 4175, Information Technology Services, see http://www.colorado.edu/its/tpsitelic/ It is recommended that you try out IDL first in the computer lab before considering purchasing a personal copy. Experience with computer programming is helpful, but not a requirement. Prerequisites are a minimum of three semesters of calculus, two semesters of calculus-based physics, and two semesters of chemistry. We will assume some familiarity with ordinary and partial differential equations. In addition, some familiarity with Schrodinger's equations and statistics (or introductory statistical mechanics) is helpful, but not a requirement. If you are unsure about your preparation for this course please discuss this with me. This is a combined course (Physics 4810 and Physics 7820). If you have any questions regarding which course to sign up for please discuss this with me. The "typical" 4810 student is a senior physics major, the typical 7820 student is a 3rd year physics grad student. Lectures will be combined. Assigned projects will be different depending on the course (assignments will be posted on the course web page). Grades will be based solely on the assigned projects and an independent research project (optional for 4810). The projects involve writing working programs, providing a listing, showing numeric and graphical results from the program, and carefully interpreting and explaining the results. Physics 4810, Option I: 8 assignments worth 100% of the total grade. Physics 4810, Option II: Do 7 of the 8 assignments worth 80% of your grade, and an independent project worth 20%. The effort for the project should be that of at least one assignment (including related reading assignments). Physics 7820: 8 assignments worth a 70% of the total grade, and an independent research project worth 30%. The effort for the independent research project should be at least that of two assignments (including related reading assignments). The textbook (Giordono) is a new text introducing a variety of current topics in computational physics. We will use this book for the physics problems and related assignments. However, Giordono’s coverage of numerical methods is too sparse, and we will be covering the numerics in a little more detail. There are four copies on reserve in the physics library. The recommended text (Numerical Recipes) is an excellent reference for numerical methods (it is used regularly in physics research). It is essentially an encyclopedia of numerical methods with a pretty good explanation of the theory behind them. Often you hear critical things about this book because it has become a standard to compare against (e.g. "the random number generator is no good"). This book will be on reserve at the library. It is recommend that anyone intending to do future work involving computer simulation or modeling purchase the book as a reference (in addition to using it for the course). Text: “Computational Physics,” N.J. Giordono, Prentice Hall (1997). Recommended Text: “Numerical Recipes: The Art of Scientific Computing,” 2nd Edition, W.H. Press, et al, Cambridge University Press (1992). As required by university policy, the class must meet during the final exam period. I will attend the American Physical Society Division of Plasma Physics the week of 11/15-11/19, so we may have a guest lecturer or a make-up lecture the following week. Any students with disabilities please notify me the first two weeks of class. Because of the project nature of this course, students are encouraged to work together and discuss problems. This includes programming issues, methods of solution and parameters to use. However, final programs and solutions should be done individually and not copied. You are free to copy and use the examples on the course web page (that is what they are intended for). As an example, it is appropriate to look at parts of each other's code (the actual computer program) and openly discuss specific program problems. An example of what is not appropriate (and would be considered plagiarism) is directly copying (either electronically or by typing) multiple lines of code, or starting with copied code and modifying it. The first week we will assign informal study groups. This will require some initiative on your part to engage in discussion outside of class. If, at any time, for any reason, you feel disadvantaged or isolated, contact me and I will discretely re-assign study groups. Please help each other learn and enjoy doing so. Helping a fellow student actually helps you learn, and research shows that working together in groups improves learning. The assignment due dates are listed below. The actual assignments will be posted on the course web page. Course Outline Week Aug 23 Chapter 1. Getting Started with IDL and the computer lab, Numerical Methods for Initial-Value Ordinary Differential Equations, Accuracy, Stability and Convergence. Read: Chapter 1, Web handouts on getting started with IDL Assignment 1, Due Sept 3 Aug 30 Chapter 3. Leapfrog and Runge-Kutta Methods, Implicit Methods, Dynamical Systems, Driven Nonlinear Pendulum, Poincare Surface of Section Plots. Read: Chapter 3 (except 3.5 and 3.6) Sept 6 Sept 6 Labor Day - no class Chapter 3 Continued. Bifurcation Diagrams, Strange Attractors, Period Doubling, Lorenz Equations, Frequency Spectra. Assignment 2, Due Sept 15 Sept 13 Chapter 6. Wave Equation, Finite Difference Methods, LaxWendroff Method, Leapfrog Method, Von Neumann Stability Analysis, Piano and Guitar Strings. Read: Chapter 6 Sept 20 Methods. Chapter 6 Continued, Frequency Spectra, Dispersion, Spectral Burger's Equation and Nonlinear Hyperbolic Systems Assignment 3, Due Sept 29 Sept 27 Chapter 7. Stochastic Processes, Random Number Sequences, Monte Carlo Integration, The Diffusion Equation, Crank-Nicholson and Monte-Carlo Methods. Read: Chapter 7 (except 7.5) Oct 4 Chapter 7 Continued. Diffusion-Limited Aggregation, Percolation, Relation to Fractals, A Forest Fire Model. Assignment 4, Due Oct 13 Oct 11 The Ising Model and Phase Transitions Read: Chapter 8 Oct 18 Molecular Dynamics Simulations, Particle-In-Cell Methods for Gravity and Plasma Problems. Read: Chapter 9 Assignment 5, Due Oct 27 Oct 25 Problems, Solutions to the Schrodinger Equation, Time Independent Shooting Methods. Read: Chapter 10 Nov 1 Chapter 10 continued, Time Dependent Schrodinger Equation using Crank-Nicholson, Spectral Methods Revisited. Assignment 6, Due Nov 10 Nov 8 Nov 15 week.) Protein Folding Read: Section 11.1 Special Topic (I will be at a meeting part of this Assignment 7, Due Nov 24 Nov 22 November 26 Thanksgiving holiday - no class. Nov 29 Neural Networks, Hopfield Model, Hebb Rule. Read: Section 11.3 Assignment 8, Due Dec 8 Dec 6 projects. Dec 8 Presentation of 10-15 minute talks on independent Last day of classes: Wednesday, December 8 Final Exam: Friday, December 17, 11:30am 10-15 minute talks on independent projects continued… Some Suggestions for Independent Research Projects 3D Visualization, isosurfaces, volume rendering, orthogonal slices, nonorthogonal coordinates, using IDL, using AVS (if you can find it running somewhere), or IBM Data Explorer called “DX”. Pick a simple application and test out these techniques on it. Carefully try out and compare two data analysis/visualization software packages, e.g. IDL and Matlab, or IDL and IBM DX, or DX and AVS, etc. Pick a program you developed in the course and port it to a massively parallel computer using message passing (such as PVM or MPI) or using High Performance Fortran or another data parallel language. Find a good journal article (seminal paper) on a numerical method of interest to you and write a working program testing the method for yourself. For example, Bak's sand pile SOC model, Gadunov’s method for Burgers equation, Chorin’s paper on Vortex-in-Cell, early papers on Particle-In-Cell plasma simulation. Take one of the assigned programs and explore object-oriented programming techniques using IDL or C++. Compare and contrast advantages/disadvantages with conventional procedural programming. Pick a computational topic in the physical sciences and report on it in detail. This could be one of the topics we discussed in class, but tracking down the journal articles and covering it in more depth. For example, quantum computing, quantum chaos, the forest fire model, etc. Pick a numerical method and carefully study numerical stability, accuracy, and convergence. Solve the wave equation or the heat equation using finite-elements. Look into how to calculate global truncation error for ODE integration schemes (see Gear). Understand and carefully explain that stability + accuracy implies convergence for integration of ODEs (see Gear). Understand and carefully explain why some first order schemes work better for shock problems than second order schemes.