Computational Methods in Materials Science (NANO*3600)

Code and section: NANO*3600*01

Term: Fall 2011

Instructor: Robert Wickham


Course Information


Rob Wickham
MacN 448
(519) 824-4120 × 53704

Office Hours

Monday, 11 am;
Wednesday, 3 pm


Monday, Wednesday, and Friday
8:30 am – 9:20 am
SCIE 1303/MacN 118


11:30 am – 2:20 pm
SCIE 1303

First Lab

Thursday, September 8th

Required text

An Introduction to Computer Simulation Methods: Applications to Physical Systems 3rd ed., by Gould, Tobochnik, and Christian (Pearson, 2007).

Online resources


This course is lab-centered. Thus assignments, which will be (typically) due weekly, will be closely related to activities in the lab.

Assessment Weight
Assignments and Labs 40%
Term Tests (2) 20%
Final Exam 40%

Term test dates

Friday, October 21th, in class.
Friday, November 18th, in class.

Exam date

Monday, December 12th, 8:30–10:30 am, place TBA
(A medical certificate is required if the exam is missed.)

Course Topics

Computer simulation now ranks with experiment and analytical theory as a key mode of scientific inquiry. This is clearly evident in the case of nanostructured materials, where simulation has lead to a greater fundamental understanding of materials structure, properties and design. The primary aim of this course is to enable students to begin to answer materials science questions using numerical methods, and to interpret the results of simulation.

A particular emphasis will be to develop students’ skills in reformulating physical problems as appropriate computer algorithms. Widely-used simulation tools and numerical methods, such as Molecular Dynamics and Monte Carlo simulation will be covered. By applying these tools to specific physical problems, in a hands-on discovery mode, it is hoped that students’ understanding of the physics will be enhanced. Indeed, this course will be lab-centered, and lectures and assignments will be closely related to the lab experience. This course assumes no background in programming; programming skills will be developed as the course progresses.

PART I: Tools for doing simulations (Chapters 1-3)

  • Week 1: The basics of programming. The importance of computing. Algorithm for the FallingBall; our first Java code. Object-oriented programming: Classes, methods, constructors, control structures.
  • Week 2: More on objects and classes. FallingBall object, FallingBallApp (application). How variables inside objects are stored and accessed; multiple objects. Extending classes and inheritance.
  • Week 3: Using classes in the Open Source Physics Library. Open Source Physics Library. CalculationApp, CalculationDrawApp. The BouncingBall; the AbstractSimulation class; arrays.
  • Week 4: Accuracy, error, stability. Integrating ordinary differential equations: error, accuracy. Algorithmic error, global error, round-off error, instability. Stability analysis; lessons learned.
  • Week 5: A generic ordinary differential equation (ODE) solver. The OSP ODESolver interface; FallingParticleODEApp. Implementing interfaces, graphics.

PART II: Molecular Dynamics (MD) Simulation (Chapter 8)

  • Week 6: The dynamics of many-particle systems. The challenges of simulating many-particle systems. Forms for pair potentials; Lennard-Jones potential. Reduced units. Computing accelerations, periodic boundary conditions.
  • Week 7: Some measurable quantites through MD simulation. Minimum image approximation, pbcSeparation. Mean quantities vs. instantaneous quantities; equipartition. Pressure and the equation of state for fluids; role of the pair potential. Gas, liquid and solid phase behaviour.

PART III: Probabilistic (Monte Carlo) Methods of Simulation (Chapters 11 and 15)

  • Week 8: Ising model at fixed energy. Short primer on statistical mechanics and ensemble theory; averaging. Ising model of magnetism; Demon algorithm. IsingDemon in 2D.
  • Week 9: Simulations at fixed temperature. Statistical mechanics at fixed temperature; Boltzmann factor. Averages and importance sampling; Metropolis sampling algorithm. Why does the Metropolis algorithm work?
  • Week 10: Thermodynamics of the Ising model. Behaviour of the Ising model; phase transition to ferromagnet. Correlation length.
  • Week 11: Random number generators. Random number generation algorithms are deterministic. Statistical tests of randomness.

Course Policies

Working with others

Students may discuss problems and algorithms amongst themselves but their written solutions (and codes) must not be shared with anyone. This would be an example of plagiarism.

Plagiarism is the act of appropriating the “...composition of another, or parts or passages of his [or her] writings, or the ideas or language of the same, and passing them off as the product of one’s own mind...” (Black’s Law Dictionary). A student found to have plagiarized will receive zero for the work concerned. Collaborators shown to be culpable will be subject to the same penalties.

Course and Instructor evaluation

The Department of Physics requires student assessment of all courses taught by the Department. These assessments provide essential feedback to faculty on their teaching by identifying both strengths and possible areas of improvement. In addition, annual student assessment of teaching provides part of the information used by the Department Tenure and Promotion Committee in evaluating the faculty member’s contribution in the area of teaching.

The Department’s teaching evaluation questionnaire invites student response both through numerically quantifiable data, and written student comments. In conformity with University of Guelph Faculty Policy, the Department Tenure and Promotions Committee only considers comments signed by students (choosing “I agree” in question 14). Your instructor will see all signed and unsigned comments after final grades are submitted. Written student comments may also be used in support of a nomination for internal and external teaching awards.

NOTE: No information will be passed on to the instructor until after the final grades have been submitted.