#### 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. For module A and C your project results
will be in the form of a written report, with the reports written individually. The
reports must be produced in pdf-format (NOTE!) and sent by e-mail to Tobias
(module A project), and Bosse (module C project). Your code must also be included in this e-mail. For module B, you will present your results orally (15 minutes presentations per group) and send your code(s) by e-mail to Tobias and Bosse.

### 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:
S&S chapters 1,2, 5 and 6. 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:
S&S chapters 1,2, 5 and 6. 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__

*Restoration of images using PDEs*

Equations originating from physics have recently founds their way to other areas. One, possibly surprising, application is that of restoring art or images (image restoration, or, image inpainting).

To understand how PDE equations from physics can help in image restoration,
consider an image which has been sabotaged by graffiti painters. Can we fill
in the missing region without any information of what is missing? This may
seem like a hopeless task, but partial differential equations (PDEs) are here
to save the day! PDE-based methods are based on propagating the information (typically, intensity values and gradients) at the boundaries of the missing region inwards. The propagation is performed by solving a PDE with specified boundary conditions.

Your task is to download/create, and sabotage by yourself, an image of your
own choice. Then try out, and attempt to improve(!), upon existing PDE-based
method for image restoration. Since, you know the "answer" (the original
image) you can test out how good your method was.

For those of you using python for your projects,
here is simple example script on how one can import a grayscale image: __getintensity.py__

You will learn: Numerically solving partial
differential equations.

Suggested reading: S&S chapters 10 and 11. 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: S&S chapters 12-17,20. 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: S&S chapters 12-17,20. G&N chapter 8 and 12.1.

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