#### Computational Physics, FYTN03

# Projects

__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,__

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__

*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*

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? *

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:

__Pivot.java__ 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:

__pivot.cc__ 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:

__pivot.py__ 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.