The focus of Biophysics II is molecular simulation methods. Molecular simulation is different from other simulation methods because it is the simulation of discrete particles, usually atoms. The atoms are represented as point masses. One important area of molecular simulation is molecular dynamics (MD). MD is the prediction of the trajectories of classical point masses in space as a function of time. These trajectories are created by solving the classical equations of motion as determined by Newton's Equation F=ma.
Lectures 1-4: These lectures focus on
the numerical solution of Ordinary Differential Equations or
ODE's. Numerical solutions to ODE's are important because the
classical equations of motion, viz., Newton's Equation F=ma, is a
type of Ordinary Differential Equation. After learning this
material, you should be able to
1. Take an ODE and create a
numerical finite difference algorithm to solve that ODE on a
computer.
2. Understand what is meant by the
accuracy of a numerical finite difference ODE
algorithm.
3. Understand what is meant by the
stability of a numerical finite difference ODE
algorithm.
4. Convert a higher-order ODE to a system of
first order ODEs.
5. Write down and implement the most common
finite difference methods used to solve MD problems: Verlet,
Leap-Frog, and Velocity Verlet. These can be applied to many
ODEs, not just MD.
6. Use the method of Tuckerman, Berne,
and Martyna to generate time-reversible, symplectic integrators
for MD.
Verlet.C: A C++ program that implements the Verlet algorithm to solve the Harmonic Oscillator problem. To run this program, it must first be compiled. To compile this program, download it to a file called "Verlet.C". On most machines, the following command will work to compile this program: "g++ Verlet.C -o Verlet -lm". This command should produce an executable file called "Verlet". This file can be run from the command line: "./Verlet 0.01". This will run the Verlet program with a time-step of 0.01 and output the results to standard output. To plot the results, the output should first be placed into a file. This can be done on Unix-based machines with the following command: "./Verlet 0.01 > Verlet.out". This will place the output into a file "Verlet.out", which can be plotted.
A C++ program to implement the velocity Verlet algorithm is presented here. It exists in several files:
On most machines this code can be compiled with the command:
This will produce an executable file "vvlj" that can be run from the command line.
Assignment01: The objective of this assignment is to gain some experience in coding and running a simple numerical ODE solver.
The starting files needed for assignment 02: a.start, b.start, c.start and d.start. These files contain binary starting files with 4000 particles, 1000 particles, 100 particles, and 10 particles respectively.