Professional Documents
Culture Documents
School of Physics
1 Introduction
COSC 3011/3911 Scientific Computing is a 6-credit point unit available to Senior students in a variety of
degree programs, and is a core unit in the Computational Science (COSC) major. This unit provides a
Senior-level treatment of problem solving using computers, with applications in physics and related areas of
science. Students will learn to apply a variety of numerical schemes for solving ordinary and partial
differential equations. Emphasis is placed on the suitability of particular methods to particular problems, and
on the understanding of numerical accuracy and stability. The module will involve a mix of lectures and
computational lab sessions. All coding is done in MATLAB and basic programming experience is assumed.
Students enrolled in the Advanced unit/module encounter a selection of more challenging laboratory and
assignment questions, and the written examination contains a question for Advanced students only. The lab
sessions, assignments, and project provide practical experience in scientific programming and in
implementing numerical methods to solve science problems.
of the accuracy and stability of those methods. Advanced students are expected to gain a deeper
understanding and the ability to understand more complex and/or new methods. A core aim is to train you to
implement the methods in code yourself in MATLAB. To this end, much of the course is spent in hands-on
problem solving in the lab, and in the project, which provides an opportunity to test your skills on new
problems and methods.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Understanding of the different types of numerical error (rounding and range error, and local
and global truncation error), and the ability to estimate when these errors become important in
numerical calculations.
Understanding of the general form of the Ordinary Differential Equations (ODEs) describing
dynamics problems, and an ability to solve these problems numerically using Eulers method
and other elementary methods.
Understanding of non-dimensionalisation, and the ability to non-dimensionalise new problems.
Understanding of, and the ability to implement, elementary methods for numerical solution of
dynamics ODEs.
Understanding of, and the ability to implement, the Verlet method for numerical solution of
dynamics ODEs. Appreciation of this method as an example of a symplectic integrator.
Understanding of the general coupled first order form for ODEs appropriate for numerical
solution, and the ability to convert a higher order ODE into this form (and vice versa).
Understanding of Taylor series methods including the ability to derive a second order
Runge-Kutta scheme, and the ability to implement fourth order Runge-Kutta (RK4) in code.
Understanding of, and ability to implement, an adaptive time-stepping integration method.
Understanding of stiff ODEs, and the ability to solve them using implicit schemes.
Understanding of and ability to use a modularised form of RK4 to solve a range of problems.
Understanding of ODE two-point boundary value problems including eigenvalue problems, and
understanding of their solution using finite differencing and relaxation (via power iteration or
inverse power iteration), and the ability to implement these methods. Understanding of the use
of deflation and Successive Over Relaxation (SOR) to solve these problems.
Understanding of the classification of PDEs and associated Initial Value Problems (IVPs) and
Boundary Value Problems (BVPs).
Understanding of the form and properties of parabolic PDES, in particular the diffusion
equation, and the ability to implement and solve 1-D and 2-D diffusion problems using
Forward-Time Centred Space (FTCS) discretisation and time-stepping.
Understanding of the numerical stability of the FTCS scheme for the diffusion equation based
on the matrix approach.
Understanding of the form and properties of hyperbolic PDEs, in particular the wave equation
and advection equations.
Recognition of the failure of the FTCS method in application to the advection equation, and
understanding of and ability to implement the Lax and method for numerical solution.
Understanding of, and ability to analytically apply, von Neumann stability analysis to linear
numerical schemes.
Understanding of, and ability to implement, the Lax-Wendroff method for numerical solution of
linear and nonlinear advection equation. Understanding of these methods as FTCS
discretisations of advection-diffusion equations.
Understanding of the properties of, and an ability to derive, a fluid model for traffic, and the
ability to numerically solve IVPs for this model using nonlinear Lax-Wendroff.
Understanding of the form and properties of elliptic PDEs, in particular the Laplace and
Poisson equations.
Understanding of, and ability to implement the Jacobi, Gauss-Seidel, and Successive
19. Understanding of, and ability to implement the Jacobi, Gauss-Seidel, and Successive
Over-Relaxation (SOR) methods for numerical solution of elliptic PDEs. Understanding of, and
the ability to implement Fourier methods for the solution of elliptic PDEs.
20. Understanding of the convergence rates for the numerical methods of solution of elliptic PDEs.
21. Understanding of the order and accuracy of PDE solution methods, and understanding of, and
ability to implement implicit schemes. Understanding of stencils.
22. Understanding of issues in solution of nonlinear PDEs, and other more general PDEs.
A2.
B Information Literacy
B1.
B2.
B3.
B5.
C Communication
C1.
C2.
C4.
C5.
Learning
Outcomes
C6.
E2.
E4.
Set achievable and realistic goals and monitor and evaluate progress
towards these goals.
1 Understanding science
2 Scientific knowledge
2.1
3.3
3.4
4 Communication
4.1
Learning
Outcomes
5.2
5.3
3 Study Commitment
This module consists of 10 lectures, 10 labs, the work associated with them, and a three-week project. A
suggested study commitment might be as follows:
In class activities
Hours
Independent Study
Hours
10
30
Total
40
Assignments (2 @ 4 hr each)
Project
30
Exam Preparation
8.5
Total
61.5
Study Tips
You are in control of your own study strategy, and as an adult learner it is up to you to devise a study plan
that best suits you. If you attend classes regularly you should gain a good understanding of the course
work. Our experience indicates that not all students attend lectures regularly and this has a considerable
negative impact on their exam preparation and performance.
Good study habits are also very important - we offer some suggestions on our Learning Physics web page
(http://sydney.edu.au/science/physics/current/learningphysics.shtml).
A/Prof
Mike
Wheatland
m.wheatland@physics.usyd.edu.au
Teaching
Staff
A/Prof
Mike
Wheatland
Room
m.wheatland@physics.usyd.edu.au
H90
Rm
223
Phone
Note
9351
5965
Computational
Physics and
Scientific
Computing
6 Learning Resources
Reference (Normal and Advanced)
There is no textbook for the unit.
The book Numerical Methods for Physics (Second Edition) by Alejandro Garcia is a recommended
reference, and sections of this text are followed by parts of the unit. However, the unit contains additional
material and the lecture presentation is self-contained. Students are not expected to buy this book, but
copies are available at the Co-op bookshop, and have been placed in the 2-hour collection at the SciTech
Library.
The recommended reference on numerical methods is the Numerical Recipes: The Art of Scientific
Computing series (second edition) by Press, Teukolsky, Vetterling, and Flannery. Chapters of these books
are available for download (subject to some restrictions) at www.nrbook.com.au, and copies have been
placed in the 2-hour collection at the SciTech Library.
This unit uses MATLAB for computation, and basic programming experience in MATLAB is assumed.
MATLAB is available on the computers in the Computational Physics Laboratory (Room 177 in
Carslaw). Swipe-card access to the Computational Physics Lab is provided to all students during normal
building hours. University ICT provides student access to MATLAB on and off campus on personally-owned
computers (see http://sydney.edu.au/ict/student/software/download.shtml for details). I If you wish to
purchase your own copy of MATLAB, a student version is available from the Co-op bookshop for $100,
including documentation on DVD.
A recommended reference on MATLAB programming is Essential MATLAB for Scientists and Engineers by
Hahn and Valentine. This book is available from the university library as an electronic resource, and
chapters of the book may be downloaded free of charge. The second chapter, covering MATLAB
Fundamentals, is available directly from the eLearning pages for this subject. A variety of reference material
is also available online for MATLAB, including the documentation accessible via the help browser command
in MATLAB or online at the MathWorks site ( www.mathworks.com).
If you lack programming experience, I recommend that you work through a section of a suitable reference
(i.e. a text) covering the basics of programming, in your own time. It is important to try a lot of examples:
attempt any exercises in the reference. Chapter 2 of Numerical Methods for Physics by Garcia is one
option. More coverage is provided by chapter 2 of Essential MATLAB for Scientists and Engineers by Hahn
and Valentine. The first Lab in week 1 is a MATLAB refresher using examples from this chapter .
COURSE CONTENT (Normal/Advanced)
The following outline lists the topics covered each week in the lectures and labs, the science problems used
to illustrate the topics, and lists the relevant sections of the recommended references. Material unique to the
COSC3011/3911 unit is flagged.
Week 1
Lectures/labs: Review of MATLAB; Types of numerical error rounding and range error, truncation error;
An introduction to Computational Science (COSC3x11); Numerical error and floating point revisited
(COSC3x11); Review of matrix algebra (COSC3x11)
Science problem:
Refs: Hahn & Valentine chapter 2; Numerical Recipes sections 1.3, 2.1, 2.11, 20.1; Garcia section 1.5.
Week 2
Lectures/labs: Ordinary Differential Equations or ODEs dynamics problems; Non-dimensionalisation;
Eulers method for dynamics; Local and global truncation error; The midpoint and Euler-Cromer methods for
dynamics (COSC3x11)
Science problem: Projectile motion
Refs: Garcia sections 1.2. 1.4, 1.5, and 2.1; Numerical Recipes sections 1.3, 2.1, 2.11, 20.1
Week 3
Lectures/labs: Dynamical ODEs continued the Kepler problem; Non-dimensionalisation of the problem;
Elementary numerical methods applied to the problem; The Verlet method; Properties of the Verlet method;
Verlet and symplecticity (COSC3x11)
Science problem: Keplerian orbits
Refs: Garcia section 3.1; Numerical Recipes section 5.7
Week 4
Lectures/labs: General form of ODEs for numerical solution; Runge-Kutta (Taylor series) methods; Fourth
order Runge-Kutta (RK4); Deriving second order Runge-Kutta (RK2); Adaptive time steps (COSC3x11);
Stiff problems the implicit Backwards Euler method (COSC3x11)
Science problem: Simple pendulum
Refs: Garcia sections 2.1, 3.2, and 3.3; Numerical Recipes sections 16.0, 16.1, 16.2, 16.6
Week 5
Lectures/labs: Modularizing RK4; Two-point BVPs and solution via finite differencing and relaxation;
Eigenvalue problems; The quantum SHO (direct solution and solution for the ground state by inverse power
iteration); Deflation, and application to the quantum SHO (COSC3x11); Accelerated convergence by
over-relaxation (COSC3x11)
Science problems: stationary states of a quantum system
7 Assessment Tasks
You are responsible for understanding the University policy regarding assessment and
examination, which can be found in the University Policy Register at
http://sydney.edu.au/policies/
To achieve good results, students in physics must be able to express themselves accurately by clear,
efficient use of the English language in their written work. Spelling, grammar, punctuation and correct use of
language will be taken into account when written reports and examination work are assessed. You should
refer to the Universitys WriteSite (http://writesite.elearn.usyd.edu.au/) if you are looking for guidance on
grammar and other aspects of academic and professional writing.
Assessment
Assessment of this unit of study is based on an understanding of the Course Content
demonstrated in a combination of assessments - a final examination, project, computational
laboratory work, and assignments spaced through the semester.
Note that a result is returned for the entire unit of study, not this module separately.
Late Assignments
Assessments submitted late without permission will incur an immediate late penalty equal
to 10% of the maximum mark. 24 hours later a further 20% penalty will be imposed for
assignments between 1 and 7 days late, with extra 20% penalties imposed after each one
week period from the due date until the assessment is submitted or submissions are closed.
For example, on an assessment given a mark of 7/10, the penalty would be 1 mark if
submitted up to 24 hours late, resulting in a final mark of 6/10. If the assessment is
submitted up to 1 week late, the final mark would be 4/10. An assessment will not
ordinarily be accepted after a solution for the assessment is released or marked assessments
are returned to other students.
Percentage
Mark
Assignment 1
Due Date
Learning Outcomes
12.5
Week 6
Friday, 17 April 2015
1, 2, 3, 4, 5, 6, 7, 8, 9
Assignment 2
12.5
Week 11
Monday, 18 May 2015
Laboratory
10
Weekly (weeks: 1, 2, 3,
4, 5, 6, 7, 8, 9 and 10)
Project
25
Week 13
Friday, 05 June 2015
Final
Examination
35
Exam Period
Pre-lab online
quizzes
Weekly
Laboratory
The first laboratory session is a refresher in MATLAB, based on chapter 2 of Hahn and Valentine, Essential
MATLAB for Scientists and Engineers. This Lab is mandatory. The laboratory sessions from weeks 2-10
consist of sets of exercises requiring you to modify the codes introduced in the lectures (available via the
eLearning site), and to write your own codes. The tasks involve implementing numerical methods and
solving science problems. The laboratory sessions support the lecture material, and are a crucial part of the
unit. Students work in pairs, with assistance from tutors and a supervisor. You will be provided with
swipe-card access to the Computational Physics Laboratory (Room 177 in Carslaw) which will give you
access during normal building hours. This will provide you with additional time using the lab computers to
work on your assignments, and more generally to practice your skills and use the computers for work in
other modules. You will be given your own computer account so that you can work independently on
assignments, and as needed through semester.
The lab sessions account for 10% of the course. The mark is based on satisfactory completion of the
exercises for each week. The work must be done during the lab class: work done outside the lab class time
will not be marked. The tutor or supervisor will assess completion of the exercises, and record this during
the laboratory class. You must get the tutor or supervisor to sign off on your work and record a mark to
receive the marks for the week. It is your responsibility to do this.
You are required to keep a logbook recording the results of your computations. Your logbook need only be
handwritten, but should include brief answers to the exercises in the laboratory sessions so that a tutor can
determine that you have satisfactorily completed the exercises. Include relevant derivations, numerical
results, explanatory text, and sketches of any important graphs. The tutor or supervisor will determine and
record completion of the exercises based on discussion with you and reference to your logbook, during the
class. You need to supply the logbook.
Project
The project is a substantial part of the COSC3011/3911 unit, involving three weeks of work (there are no
lectures or labs in weeks 11-13, to allow work on the project), and comprising 25% of the mark. The project
is due Friday 5 June at 5pm, i.e. the end of week 13, and should be handed in to the Physics Office, Room
210. A one paragraph summary of the project topic is due Friday 22 May, i.e. the end of week 11. You may
revise the topic at a later date, but failure to submit a one-paragraph summary on time may result in a
deduction of 5% from your project mark. The one-paragraph summary should be e-mailed to the lecturer
(m.wheatland@physics.usyd.edu.au).
Project scope and the choice of a topic: The project is an opportunity for you to extend the skills
developed in the laboratory sessions, and to pursue your own interests. You are encouraged to design your
own topic, using your general scientific knowledge, or by drawing on one of the suggestions below.
However, please ensure that the scientific model you are solving makes sense. Do not construct your own
model, unless you are sure that it is correct. The project must use MATLAB and should apply and/or extend
upon the material covered in lectures. The project must involve numerical solution of ODEs or PDEs. The
project should be associated with a problem in science, although the emphasis may be more towards the
science or towards the numerical methods applied. The report must provide references, listing any
resources or materials used. The one-paragraph summary (due 22 May) is a chance to obtain initial
feedback via e-mail about the suitability and difficulty of your chosen topic. The summary should be
e-mailed to the lecturer, who will provide some preliminary advice, recommendations for reading, etc.
However, after that initial feedback the project choice and the work itself should be your own. The level of
help provided in the lab sessions is not provided for the project work.
Assessment of the project is via a written report that should be not more than 10 pages in length, excluding
appendices. It may be shorter. The report should introduce the scientific area, explain the modelling and
numerical methods applied, and present a discussion of the results obtained. You should include, as an
appendix to the report, all relevant MATLAB codes. If you use codes other than ones you write yourself, this
must be acknowledged and explained. The lecturer will provide examples of excellent past student project
reports for inspection during the Computational lab sessions.
As part of your project submission, you may perform a demonstration of your codes in the laboratory during
week 13. Please arrange with the lecturer if you want to do this.
The recommended references on numerical methods (Garcia and Numerical Recipes) are possible sources
of material for interesting problems. However, you are expected to do additional reading and research to
identify and learn about a topic. Your report must cite all references you have consulted. Your project topic
could be a (significant) extension of one or more of the laboratory exercises, or a scientific system not
considered in the course. As starting points, the lecturer will take a number of books with suitable topics to
the Computational lab sessions.
Past student projects have covered diverse topics including the motion of charged particles in specified
electromagnetic fields (orbit theory), solution of the Black-Scholes equation describing financial markets, the
three-body problem for orbital motion, solution of Burgers equation describing nonlinear advection, solution
of the Korteweg-de Vries equation describing solitons, solution of the wave equation in 2-D to describe a
vibrating drum skin, multigrid methods, the Generalised Minimum Residual method, and Chebyshev
methods. Other possibilities include modeling the spread of a disease, modeling the evolution of the age
structure of a population (using a more realistic model than the Leslie model), investigating a particular
nonlinear system, and investigating symplectic methods.
Details of report assessment: The report is assessed according to: clarity of presentation (20%);
understanding of topic and methods (30%); quality of results (30%), difficulty/novelty of topic (10%); and on
a brief self-reflective statement (10%). Note that the difficulty/novelty category rewards projects involving a
significant extension beyond the course material.
The emphasis in assessment is on the quality of the work and not the quantity. A report may be significantly
shorter than 10 pages and receive high marks. Two crucial points are that that the science problem should
make sense, and that you must correctly implement numerical methods. Do not invent your own model for a
system unless you are certain that it provides a sensible description. It is important to get your codes to work
correctly, and to provide evidence that the codes work correctly, e.g. in application to simple test cases. If
there is aberrant behaviour, you need to work out what is going wrong.
Marks will be awarded in the different categories according to the general guidelines given in the table
below. Note that not all of the points listed may be relevant for a given project, depending on the topic and
methods chosen.
Projects submitted late without permission are subject to the same late policy as assignments.
Final Examination
The written exam is a one-hour exam. The exam is held in an exam room and is not a practical test in
the lab. The emphasis is on the formal/theory aspects of the unit, i.e. numerical methods, including the
stability and accuracy of the methods, the application to science problems, and aspects of basic science
modeling. It is a closed book exam: no notes may be taken into the exam room.
You will be asked to write descriptive answers to questions, to explain physical principles and to answer
quantitative questions, all aimed at demonstrating your progress in achieving the goals of the unit. An ability
to memorise formulae and manipulate them without understanding the associated concepts will not be
rewarded. Proof of identification is required at all examinations. Note that you must bring your own
non-programmable calculator to the examination. See the University policy on calculators at
http://www.usyd.edu.au/current_students/student_administration/examinations/students.shtml#calculators
https://sydney.edu.au/science/physics/local/acadhonesty.shtml.