Computational Physics, FYTN03








Guide to writing reports

Below is a (tentative) description of the three projects in the course. The projects are done in groups of two, with the reports written individually. The reports must be produced in pdf-format (NOTE!) and sent by e-mail to Tobias (module A project), Pawel (module B project) and Bosse (module C project). Your code must also be included in this e-mail.

NOTE: After the hand-in of the module A project report there will a compulsory code feedback session (15 minutes per group) where feedback on the code in the project report is provided by one of the assistant teachers.

Module A (Ordinary differential equations) project,

More details

NOTE: If you are using Matlab (or any similar programming-environment) you are NOT allowed to use the built-in ODE solver for the ODE-project.

How hard can I kick that football?

High school text-books tell us that the optimum angle for projectile motion is 45 degrees. However, in many sports disciplines it is rather found that one can throw a ball, spear etc farther if the angle is closer to 30 degrees. The aim of this project is to numerically investigate your favorite (or most hated) sports discipline, and include realistic effects such as air resistance. The parks of Lund will serve as crucial testing places for the modeling and numerical results.

You will learn: Numerically solving ordinary differential equations.

Suggested reading: G&N chapters 1,2, appendix A.

Spreading of disease

The spreading of disease has a different character in today's society compared hundred years ago, due our frequent relatively long-distance travels by train and airplane. In this project you will solve model equations describing the time-evolution of healthy and infected people in a population. Apart from local "interaction" within cities you will also take into account long-distance travels between cities. Different strategies for minimizing effects of a disease, such as vaccination, can be studied.

You will learn: Numerically solving ordinary differential equations.

Suggested reading: G&N chapters 1,2, appendix A. More details about disease spreading modeling: D. Brockmann, et al. Human Mobility and Spatial Disease Dynamics, Diffusion Fundamentals III, Leipziger Universitätsverlag (2009), M. Keeling, Mathematical Edidemology.

Module B (Partial differential equations) projects

More details

Help sheet for project B

How would you like your eggs done?

Indulge yourself in incredibly entertaining physics activity, such as cooking an egg. Imagine that you have to cook an egg you have never seen before in environment you hardly know, such as your friends' kitchen. This can be a daunting task if you want this egg cooked to perfection. Fortunately physics can help us precisely in dire times like that. You can analyse your problem, estimate the parameters of your equations and solve them numerically, impressing your friend and assuring a tasty meal, all without even getting close to the kitchen.

In this project you will solve heat transfer equations, simulating cooking an egg. You will need to consider appropriate boundary conditions, thermal diffusivity parameters and their inhomogeneities in design of your model. You will choose a solution method for the problem and you will discuss the stability, accuracy and speed of chosen algorithm.

You will learn: Numerically solving partial differential equations.

Suggested reading: G&N chapters 5,6,10 (note that the heat equation is the same as the Schrödinger equation in imaginary time).

Module C (Stochastic processes/Monte Carlo) project,

Reaction-diffusion - vicious walkers

More details

Many processes requires molecules to meet and react. How long does this take? In this project the aim is to, as a model for chemical reactions, simulate random walkers in a box which kill each other (vicious walkers) whenever they meet. How will the density of particles decay with time in such a system? For realistic chemical reactions, not every encounter results in a reaction - you may therefore want consider a finite probability for an encounter to result in death. Or, perhaps there are many different types of particles? Feel free to explore different scenarios.

You will learn: Simulating stochastic processes.

Suggested reading: G&N chapter 7, appendix F and G.

How do proteins fold?

More details

Biology offers many opportunities for doing interesting physics. Proteins are important players in our cells, and their functionality depends strongly on their structure. This structure in turn depends on the sequence of amino acids that make up the proteins. So how do we get from sequence to structure? In this project you will attempt to answer this question for a protein model which is used by researchers in Lund and elsewhere.

Code for the simulations is provided in four languages:
C code: pivot.c Rather inefficient but easy-to-follow C code for updating the chain with a pivot move and checking for self avoidance.
Java code: A Java class with methods for the pivot move, self avoidance check and computing the energy of any structure, plus convenient methods for input and output.
C++ code: A C++ class which the Java class was based on. About 25% faster than the Java code. Uses GSL (GNU Scientific Library) for random number generation, but any other simulation-quality RNG would work as well.
Python code: Ported from C++ to Python.

You will learn: Monte Carlo techniques.

Suggested reading: G&N chapter 8 and 12.1.

G&N=N.J. Giordano and H. Nakanishi, Computational Physics, 2nd ed.