## PHYSICS 3534: Computational Physics iII

**Level:**III

**Semester:**1

**School:**Physics

**Units:**3

**Prerequisites:**Classical Physics II, Electromagnetism II, Multivariable and Complex Calculus II, Differential Equations II

**Corequisites:**None

**Assumed Knowledge:**None

**Recommended Courses:**Physics III

**Courses that have this as a prerequisite:**None

**Requirement for Majors:**None

**Lecturer(s) in 2014:**Professor Derek Leinweber (CSSM Website, Staff Directory, Office: Physics 125) (FORTRAN Lecturer)

Dr David Ottaway (Staff Directory, Office: Oliphant 307a OR The Braggs 412)

**Syllabus:**The course covers two major programming languages, FORTRAN and MATLAB. Two thirds of the course is based on High Performance FORTRAN, with the remaining third covering MATLAB. FORTRAN is focussed towards students considering a future in Theoretical Physics especially Lattice QCD, and is a much more powerful tool than MATLAB. MATLAB is focussed towards students considering a future in Experimental Physics, and focusses on powerful techniques to analyse and visualise data. Both languages are useful for careers outside of academia as well, and the course teaches programming skills an logical techniques.

The FORTRAN component starts with an introduction to the UNIX environment and the Emacs software. It is with these tools that you will write FORTRAN code. You will then be introduced to many of the commands available in FORTRAN, which will slowly allow you to write more and more detailed code. Some packages will be introduced to solve numerical integration and differential equations. There will also be an introduction to PLPlot, the plotting package used in the course.

In the latter part of the course, there is a brief introduction to Markov Chain processes and the Ising Spin Model, a precursor to solving problems in Lattice QCD. These lectures are not based on writing code, instead they focus on programming techniques. Finally, the FORTRAN component concludes with an introduction to MPI, or running programs on multiple processors. The FORTRAN lectures intimately link with the workshops.

The MATLAB component also starts with an introduction of the commands available in MATLAB. There is a strong emphasis on performing analysis on experimental data. Plotting and visualisation techniques are a strong focus, whereas the latter parts introduce packages to perform numerical integration and differentiation and solve differential equations and boundary value problems.

**Textbook(s):**The textbook for the FORTRAN component is Metcalf, M., Reid, J., and Cohen., M,

*Fortran 95/2003 explained*, 2004, 3rd edition. This text is a reference text and has a strong index allowing students to look up code syntax with ease. It also has many commands not covered in lectures and good sections for further reading into pointers and object-orientated programming using FORTRAN. However, it is weak at explaining MPI coding. NOTE: In 2014, the textbook was allowed into the end of semester examination. This means that the purchase of the text is strongly recommended, though the lecture notes may be available from the Image and Copy Centre.

There is no recommended textbook for the MATLAB component, however the MATLAB website has an extensive help section with many examples on how to use commands along with potential coding techniques.

**Class Notes:**Notes for both sections are presented by a slideshow. The course is covered in good detail within. Most tests are at least partially open book, which allows you to bring in the notes to look up syntax if necessary. However, the notes cannot be annotated, so take care if you print a copy at the start of the semester.

**Assessment in 2014:**FORTRAN Exam (35%), MATLAB Test (20%), FORTRAN Test (15%), MATLAB Assignment (15%), 2 FORTRAN Assignments (15% total).

**Exams:**Past exams from 2005 and 2008 onwards are available on MyUni, although the 2005 exam is about Mathematica and is no longer relevant. Note that MATLAB was introduced to the course in 2010, hence the 2008 and 2009 exams contain only FORTRAN. The MATLAB assessment was moved to a mid semester test in 2014, hence no MATLAB section appears in the 2014 exam, though the 2010 to 2013 exams serve as good practice material.

Note that in the tests and exam you will be required to write

__working code__by hand.

**Workshops:**There are weekly workshops for both FORTRAN and MATLAB that do not form part of the overall assessment, although the assignments are presented and can be worked on in the workshop. During the FORTRAN workshops, students log in to the Titan supercomputer, and can do so from their own personal computers. Access to Titan is possible from home, but a very strong internet connection is required. The first few workshops deal with logging into the respective programs and learning their way around the code. Later workshops connect intimately with the lecture material, and involve programming more complicated code to solve direct physics problems. Both workshops have an emphasis on visualisation techniques. Note that some exam or test questions can refer directly to the content of the workshops, so completing them is essential for a good mark in the course.

**Advice:**Although the workshops are not for assessment, they form a crucial part of the course, and an understanding of the content is simply not possible if the workshops are not attempted. Also, it is possible to get carried away with some of the workshops, even though they are worth a small fraction of your time they are extremely time consuming to get them to a satisfactory level. Finally, the tests and exams require working code to be written by hand, of which there is no formal practice. Code needs to be written legibly and logically, so leave space between lines if you reckon you've made a mistake or want to add something new.

**Links:**Computational Physics III on Course Planner