Instructor: Stephen Fahy
( s.fahy@ucc.ie )
Office: 104A Science Building,
Phone: 021-4902452
Teaching Assistant: Mahdi Shirazi
( mahdi.shirazi@tyndall.ie )
Technical Support: John O'Riordan
( j.oriordan@ucc.ie )
Robin Gillen
( R.Gillen@ucc.ie )
Lectures: Mon, 10-11am in Room G7, Kane Building
Practical: Wedn 3-6pm in Room 217, Kane Building
The principal aim of this course is to give the physics student a general introduction to the use of computational methods in the solution of physics problems in a development environment typical of that used by professional computational scientists. This course is intended to lead you to think critically about computational methods and their use in developing insight into physical problems, rather than simply exposing you to a series of computational methods.
A secondary aim is to allow the student to gain some familiarity with miscellaneous tools for the presentation of technical material in a general context (e.g., some C programming, the use of the UNIX operating systems and an X11 graphical interface, the preparation of technical material for presentation on a Web page, etc.)
So, we could categorize the computational areas touched upon in the course as follows:
Although these computer skills are an important part of what I hope you'll learn in the course, it is principally physics which I want you to learn. The formulation of a physical problem in a form suitable for solution by computational methods involves a great deal of understanding of physics itself. Sometimes, when computational methods perform poorly or fail, that is telling us something about the behaviour of the real physical system we are studying. Sometimes, things that are difficult to anticipate in advance (in a complex simulation, for example) leap out at you in a very obvious way when the computational results are examined (for example, graphically).
A good general reference for computational methods in physics is the book "Numerical Recipies" ( www.nr.com ).
In the first two weeks, we will introduce some general skills that will be needed throughout the course: e.g., some basic knowledge of UNIX, the "vi" editor , the gnuplot plotting package, some simple exercises in C (to remind you of what you've forgotten). If you want to write your programs in C++ or Fortran (the other main programming languages for heavy-duty scientific computational work), that's OK too, but we will not provide quite the same level of support for those languages in the course documentation. This is because the common language that all of you have learned (at least to some extent) is C or its more sophisticated variant, C++. In a number of assignments, you will need to use existing subroutines that are written in Fortran. The standard "Gnu" compiler can compile and link together programs consisting of subroutines written in a mixture of C, C++ and Fortran.
Although "higher-level" languages like Mathematica and Matlab could also be used to solve any of the problems we will tackle in the course and are in general extremely useful tools, we will not make use of them. They hide a great deal of the computational details that languages like C, C++ and Fortran represent explicitly and give you a different kind of experience in solving computational problems. Compiled languages (especially C and C++) remain the dominant languages worldwide for professional computational scientists and many more specialized languages mimic their syntax. Practically speaking, both C-like languages and higher-level languages, such as Mathematica or Matlab, are part of the normal toolbox of professional computational physicists.
In each of the following seven weeks, a physics problem will be analysed, using the computer. In this way, various numerical methods and computer skills will be introduced as we need them. There will be computer home-work (usually in the form of a folder of files submitted on your disk-space area of the course server, containing the appropriate computer programs, data sets, results from the application, and any general notes and comments) to be returned each week. The level of "presentation" expected in these weekly exercises will not be very high - careful organization and layout of the work as you progress is what is to be emphasized here and is an important aspect of the training provided by the course - a more complete presentation of some exercises will be required at the end of the course (see weeks 10-12).
Here is the list of problems (including problem 1 from weeks 1-2):
In the final three weeks, each student will prepare a full write-up, in the form of a simple web-page (preferred) or a pdf document, for one topic covered in the course: the non-linear driven pendulum, the noble gas cluster, the solution of the Poisson Equation (2-D) or the Hartree equations for the spherically symmetric atom. This write-up should discuss the background physics to the problem, the computational approach, show results in appropriate figures or animations, and discuss difficulties. It should be written at a level accessible to final-year undergraduate physics students. For this part of the course, it may be useful to learn a small amount of LaTex (the main scientific typesetting language) and some HTML for the production of your web-page. There is a brief online LaTex guide , a full online LaTex guide , and a short HTML Primer available on this server. For more guidance, you can consult the extensive list of on-line guides you'll find by searching "html primer" on Google, for example www.htmlprimer.com or www.htmlgoodies.com .
There will also be an in-class practical exam in the final week (see below).Each student will have file space (200 MBytes) allocated on the course server (est1.ucc.ie). Each of the machines in Kane 217 is set up so that, when you log on to it, you see your home directory on this server. So, from a functional point of view, all the machines in Kane 217 are equivalent. The student will be expected to maintain this file space in an appropriate manner, so that the course instructor can follow the progress of the students throughout the course. Private material should not be kept there. Files are date-marked automatically by last time of alteration by the system. Work for each assignment should be kept in a separate folder by each student.
It may be a good idea to keep a copy of your files on a data stick. This makes working at home or in the lab easier and also provides a personal backup of your work. You can connect a USB data stick to any of the machines in Kane 217 by inserting in one of the USB ports at the front of the machine. The file system on the data stick will be automatically mounted and a folder window will appear on your desktop when you insert the data stick. The data stick can be unmounted by clicking on the eject symbol to the right of its name.
The version of unix running on the course server and the other machines in Kane 217 is the Ubuntu distribution of linux ( http://www.ubuntu.com/). You will be able to log on to the course server from any unix machine on the internet, so you do not have to confine your work solely to the machines in Kane 217. (You can set up your own home PC or laptop to use Ubuntu or as a dual-boot machine, with both Ubuntu and Windows.)
When each assignment is due, the instructor will copy that entire folder to a work completed space for each student. The student will have no further access to the files copied to the work completed space. Grading of each assignment will be based on the work completed folder of each student.
At the end of the course, each student should have produced a simple, web-page or pdf document which will give an overview of one of the physics topics addressed in the course, along with computational results.
This course is graded entirely on the basis of continuous assessment. All continuously produced work (work completed files and web-page-based reports) will be assessed at the end of the course. In addition, during final week of term, there will be a three-hour practical examination session held in the laboratory. During this session, the student will have to solve a previously unseen computational problem and present results. There will be no end-of-year written examination.