Here are some of the projects, as proposed by the students (with minor
editing), from past years of 6810/780.20 Computational Physics.
Grad student and undergrad projects are mixed together (the most
sophisticated projects are by grad students working on a thesis
project). The eTextBook A
Survey of Computational Physics by Landau,
Paez, and Bordeianu is a good
source of projects (e.g., any of the Explorations).
I'm thinking of working on the problem 6.5/ Monte Carlo Integration by Stone
Throwing from the book "A Survey of Computational Physics" for the project.
I'll start with the 2-D implementation in the book, then (if time permits)
I'll generalize it to 3-D.
For my project I would like to consider the reflection and transmission
of monochromatic light through many (more than 2) thin film interfaces, of
varying thicknesses and refractive indices, possible including absorption
terms of each material.
for my project I'd like
to calculate the form factor, structure factor, and intensity for a given
h,k,l reflection of a material. I would like to find the best plane for the
material (highest intensity) and then plot the corresponding unit cell.
The project I was thinking of doing is putting an electron with a definite
position and momentum in a 1 dimensional region of space. The behavior
is found by solving the time dependent Schrodinger equation, as described in
chapter 18 (Landau/Paez).
I think I will do my project on Bernstein's Inequality from Probability
Learning to program on a GPU.
For my project I am thinking about working with the heat equation and
solving it with a finite difference method. It would likely involve some
sort of graphical output (e.g. heat map). To make the project more
interesting, I am considering one or more of the following: (a) time
dependent boundary conditions (e.g. sinusoidal heating) (b) comparing
transfer of heat over different boundary shapes (c) considering material
where the thermal conductivity may change after a certain temperature or
time (such as a phase transition).
What I have been thinking of doing for my project is generating a 3-D vector
plot of the electric field outside and inside a spherical shell with a
non-uniform charge distribution by numerically solving Laplace's equation
for the potential and then taking the negative gradient for the electric
For my project, I'm looking into doing something with fluid simulation,
particularly either with shallow wave simulation or with the Navier-Stokes equations.
I was thinking about solving a modified Langevin equation for two
superparamagnetic beads suspended in a low Reynold's number fluid and
subject to an external magnetic field specified by the user over a user
specified time interval. The program would use small time steps to solve
the differential equation and move the beads the appropriate amount each
For my project, I was thinking about creating a program that models the
electric potential for electrodes/plates inside a cylinder given their
initial conditions. Maybe add electrons/ a magnetic field if I'm able to.
- For my project I would like to add perturbations to a Hamiltonian and then
diagonalize the new matrix in order to solve for the
- For my project I plan on making a GUI to illustrate random walks.
For my final project, I think I'll be working on the time dependent
Schrodinger equation. I will explore the time evolution of a wave function
of a particle crossing a barrier.
I currently plan on expanding the Two Predators, One Prey exploration from A
Survey of Computational Physics. I would like to potentially add more
predators and prey in order to create a more complete ecosystem. I am also
trying to think of other things I could do with this project.
- The first program will generate a Sierpinski gasket.
The second program, and more to the point of the project, will use the box
counting method to find the dimension of an any 2d fractal with only one
fractal dimension associated with it.
I was thinking about a program where a user
could enter a redshift and some parameters to find the age of the universe
at that redshift.
I want to do
something involving half-lives of atoms. I am not fully sure what I want to
do with it, maybe simulate multiple atoms and plot how long each atom took
to decay, and plot what percentage of the matter was lost in each subsequent
My project will be on special relativity.
I am planning on have a program composed of a couple of smaller programs. 2
such 'small' programs will be time dilation and length contraction. A larger
3rd program; given 2 objects passing each other, and information objects,
get the information about the system. i.e. how fast the first object
observes the second, how long they are passing each other, etc.
For my project I will be writing a code that will solve RLC circuits using
differential equations. If time permits, I will try to include a section
that creates new circuits based on inputs from the user.
I am writing a program to analyze data that I get in my research. It will
be entirely or mostly in Igor. I basically have 600 + spectra with 100 +
lines and will be doing a non-linear fit to four parameters.
- Landau and Paez 4.8 "Trajectory of a Thrown Baton (Problem)".
We wish to describe the trajectory of a baton that spins as it travels
air. On the left in Figure 4.6 the baton is shown as as two identical
by a massless bar. Each sphere has mass m and radius r, with the centers of
spheres separated by a distance L. The baton is thrown with the initial
(Figure 4.6 center) corresponding to a rotation about the center of the
Problem: Write an OOP program that computes the position and velocity of the
baton as a function of time. The program should
- plot the position of each end of the baton as a function of time;
- plot the translational kinetic energy, the rotational kinetic energy, and
potential energy of the baton, all as functions of time;
- use several classes as building blocks so that you may change one
block without affecting the rest of the program;
- (optional) then be extended to solve for the motion of a baton with an
additional lead weight at its center.
I plan to simulate the locking of several modes of an oscilator to a well
defined phase relationship. This concept is exploited in the generation of
ultra short coherent light pulses.
- I would like to make a simple code to model a shock wave propagating
through the interstellar medium. This is mainly going to be a hydrodynamic
model that outputs the temperature and density in space.
I plan to transfer
some Fortran code over to C++. The code finds the best fit values for
omega_matter and omega_lamda (dark energy) given the current ideas for
cosmology. This involves various functions such as finding the luminosity
I would like write a program that will simulate a protein such as RNA
polymerase searching a strand of DNA. Polymerase searches by sliding
on DNA strand (1-D random walk) and sometimes by breaking away from
DNA and reattaching elsewhere (2-D or 3-D random walk). I would like
to find the "time" it takes to find it's final binding site.
I plan to do a project
I found in the Paul Harrison's "Computational Methods..." book in
class, having to do with multiple-stage launch vehicles. It is project 4.2
in that particular book: Show how the model for the trajectory of rockets
can be extended to include multiple-stage rockets. This will also include
using Newton's inverse square law for the gravity calculation.
I would like to write a code that simulates the XY-model with an sinusoidal
external magnetic field using the Metropolis algorithm.
- For my project I have decided that I would like to write a program
that calculates the Fraunhofer Diffraction integral for a number of
different apertures from which the user can choose. I would also like it to
make an intensity plot as a function of two spatial dimensions for each
- I want to create a stable two body system of masses, rotating about the
other. I will then send a massive body by them and see how the orbits are
perturbed. I plan to have an animation scheme associated with it. I will
first tackle it in 2-D then if time permits I will try 3-D.
My idea for a project is a program that reads in parameters related to the
energy densities of the universe and its curvature and returns the current
expansion factor of the universe and the eventual fate of the universe.
- I would like
to try to do something along the line of simulating the trajectory of a
spacecraft traveling between two planets.
- I would be looking at planetary orbits for cases where gravity was different
than 1/r^2. Ideally, I would use a user inputted gravity law and animate the
- Use the video game engine Unity to simulate a solar system (a sun and
planets) modeled on Newton's law of universal gravitation.
I was looking through the Landau ebook and found a section (12.19) talking
about the Lotka-Volterra model for population density and interactions
between competing species.
There's a North American lizard species with three types of inherited mating
strategies for males, which work out like rock-paper-scissors; so one year
you'll have a lot of orange males, and the next a lot of blue, etc. There's
also different genetic strategies for female egg-laying which do better in
different weather conditions (drought or not).
I propose modeling the numbers of different colors of lizards as a function
of time, using an adaptation of the competitive Lotka-Volterra equations and
population density-weighted matrices derived from Punnett Squares.
I choose the predator vs prey exploration problem in the
computational text book, solving it all the way through to
My project will be mainly calculating the number of gluinos that should be
detected at the LHC based on my advisor's model. I will use the event
Using data produced in the lab for the molecules known as astrophysical
weeds, I would like to write a program that could predict what the spectrum
for these molecules would look like in a specific environment. The
parameters involved are temperature, density, turbulence, and velocity
relative to the earth.
The rough idea for my project right now is to study simple magnetic
Hamiltonians (Ising, Heisenberg, and to explore anisotropic and
Dzyaloshinskii-Moriya terms) with Monte Carlo methods. In particular, I
would like to study different updating schemes, such as the Wolff Algorithm.
I have been told (without proof!) by other members of my group that methods
such as the Wolff algorithm do not work for DM or Anisotropic terms. It
would be nice to show this for myself.
For my 6810 project I would like to write my own Frequency-resolved Optical
Gating (FROG) algorithm for reconstructing electric fields of ultrashort
pulses from "auto-spectrograms." I was thinking I could create a fake
ultra-short pulse electric field, create a fake "auto-spectrogram," and then
use the algorithm to reconstruct the ultra-short pulse electric field from
the spectrogram. I could generate error plots between the reconstruction and
exact pulse to help analyze how well my algorithm worked.
- I am going to do the first problem at the end of chapter 14
(variational monte carlo) for my project.
- I want to model an accreting binary star system. Mainly its orbit,
not really so much the fact that if one star gets too massive it will explode
as a cataclysmic binary.
- Goal: testing the validity of central limit theorem when using a Gaussian
distribution to approximate a binomial distribution.
1. Generate random number data sets with binomial distribution. (GSL) Do
it with several different n*p values close to 5.
2. Plot each data set. Compare it with the corresponding N( n*p,
n*p*(1-p) ) curve.
3. Calculate SSE (sum of squares of error) for each data set.
4. Plot the SSE vs. n*p.
I am planning on doing my final project on the
movement of particles with an interacting Lennard-Jones Potential.
I would like to implement a Markov Chain Monte Carlo integrator, possibly
parallelized or distributed, for my project.
- I am planning on solving a set of coupled differential equations
for a system of harmonic oscillators.
My goal is to simulate the two-dimensional Ising model with next-nearest
- My primary goal is to map out the different wave
functions for different potentials and show that for fairly deep wells
they all look very similar down to V0= -inf (like a decaying
exponential). I then want to do a little computer speculating on how
these procedures break down and stop giving good approximations as the
radius of the well gets really small. Also to compare the approximated
ground state energy to the binding energy as Rwell shrinks. Then show
this fact on a graph, for a fixed 'b', around what radius this procedure
- Study ring torsion angles in the polymer Polyaniline using a
- Proton - heavy ion scattering based on the Glauber model.
- Solving the 9 coupled integral equations that are the generalized
version of the bosonic STM equation.
- I plan to write a program (most likely for
MATLAB) that would calculate the pulse broadening, dispersion effects, etc.
resulting from sending an ultra-short laser pulse through a some optical
device (for example, propagating through a block of some optical glass, a
prism pair or grating pair).
using the Fermi space telescope to detect gamma rays produced by dark matter
annihilations. Since little is known about dark matter, there are many
models out there describing its mass and other important characteristics.
To test our fitting procedures, we perform several "pseudo-experiments"
where we fit monte carlo data several times to get statistics on how our fit
has biased the parameter we were trying to extract.
So for my project, I was thinking about taking our existing fitting code and
modifying it to look at how well we can extract a specific variable we are
interested in right now. Also, I'll be generating some monte carlo data
using new models.
- Simulating the behavior of a laser gain medium in a
- For my project I will try to use a Monte Carlo simulation
to calculate the Helmholtz free energy of the Lennard-Jones fluid.
- Implementation of the 3D Ising model on a simple cubic lattice.
- To find the pressure distribution numerically in a one-dimesional
flow field using the Sisko viscosity model (includes power law and upper
Newtonian regions). The flow advances by
displacing a polymeric substrate (described by PVT data).
- I would like to work with fractals. Two that caught my eye in
particular are Barnsley's Fern (which is mentioned in Landau and Paez),
and Pythagoras' Tree. The first is easier to realize computationally
and programmatically, as it is definied as a collection of points, but
Pythagoras' Tree consists of successive rounds of squares and
- The purpose of this project is to analyze some simple
perturbations of the Earth's orbit due to the gravitational presence of
another planet in the system, building on the differential equation
routines from class.
- Compare the GSL VEGAS monte carlo integration routine to calculate
a number of 4 dimensional integrals for a thesis project with the
DVegas routine. I would like to do a side-by-side comparison and see
if the DVegas routine provides any improvement in time required to do
the integral as well as the number of function calls necessary to
provide a given accuracy.
- Study the expectation value
of the distance of two points picked at random in an n-dimensional box.
- Write a code to produce and analyze the Sierpinski gasket, as described in
Landau and Paez.
- The project is to try and simulate what we do in our lab. That
is, we interact atoms in a gas state with high intensity laser fields
and then study the electron specta. I want to start simple by
assuming a semi-realistic potential with a constant electric field
term. I will need to find a practical means to solve the
and then extract the info that I want. This will be an on-going
project for me. Ultimately, I want to make it as near and exact
recreation to our experiments as possible. Including the fact that
the E field is not constant, but rather ultra-short pulsed.
- I will be working on Monte Carlo Integration techniques for my
project. This is mainly for me to get used to Monte Carlo integrations
and will help me with my research work. My plan is to look at 2 or 3
different techniques of Monte Carlo integration selecting possibly an
integral that I will have to do for research. I will use the different
techniques and check the relative error between the two. I may also do
several integrals with different features such as singualarities to see
which one works best for speed and accuracy for different types of
- My project is to monitor some chemical reactions in a cell. There
are seven reactions and we know the rates of concentration change which
depend on concentrations of all components. I applied Euler, RK2 and
RK4 differential equation routines to check the time evolution of some
reactant R. The strange part is that in Euler method, the concentration
decreases, but in RK4, it increases.
- Calculate the scattering of Cs atoms deflected by a gold atom
- Compute the evolution of the KdeV soliton, as described in Sect.
28.6 of Landau and Paez.
- To write a program to fit scintillation detector 'data' from neutron
capture. Create simulated noisy data a using GSL routine for a
randomized Gaussian distribution and use fitting routines.
- To get the energy structure of some small molecule or simple
polymer chain, such as -(CH0-(CH)-(CH)- polymer. First, I need to make
a Hamiltonian for the chain. And we can make use of Bloch's theorm for
the polymer, because it is repeated monomer chain. Moreover, we have
only two kinds of atoms, Carbon, and Hydrogen. (Still, not easy
problem). We can use the wavefunctions of Carbon and Hydrogen. To check
the error, I will increase the dimension of Hilbert space and observe
and compare the result.
- Write a code to find eigenvalues and
eigenvectors for an n dimensional symmetric matrix that arises in a physics
education study. Uncertainties will be studied by adding random noise
to matrix elements.
- I am going to implement the 2-D solitons, as described in the
- Write a program in C that will solve a set of coupled differential
equations using the constant step size fourth order Runge-Kutta method.
Attempt to make the code more efficient then the current fortran 77
code that I have been using to do the same thing.
- Motion of a wave packet in arbitrary one dimensional potential.
Allow the user specify the initial wave packet (not only
Gaussian) and the potential.
- I'm going to complete the c code for computing the correlation function
for the harmonic oscillator problem. I'll test it by computing the ground
state wave function for the h.o. I'll also do a brief analysis of how
things change with scaling of the action (ie, accepting about 50% of the
paths tested), with mass, and with the coefficient in front of the
potential term (omega).
- As my project for the 6810 course, I would like to modify a program
that I have written for my research, which is a Langevin dynamics
simulation code. My goals are to split the one file into several files,
use structures (or classes) to pass arguments to functions, and
use make files to run the program.
- The project is to write a code to carry out density functional
theory for a system of fermions with short-range interactions in an
external confining potential, as described by Furnstahl and Puglia.
The code will diagonalize the Kohn-Sham Hamiltonian in a harmonic
oscillator basis and solve for the Kohn-Sham potential
- Write a code to implement the renormalization group differential
equation applied to 1S0 nucleon-nucleon scattering.
- Simulate a gaussian wave packet traveling through a slit.
- I am working on RNA folding problem, where I need to do a complex contour
integration to calculate the partition function. I have already done this
in mathematica. But this is very badly written code. I would
like to improve on that, with some nice user interface.
I would like to do a project that ties in to my research. There are several
possible differential equations that describe behavior in arrays of
Josephson Junctions (depending on material parameters, bias methods, bias
regimes, etc.). I want to describe the solutions to some of these,
numerically. Specifically, I want to obtain plots of time-averaged voltage
across the junctions as a function of bias parameters and/or external
fields. I would like to write simple routines myself to solve the
differential equations (Euler for first order, etc.), and compare those
results to those obtained by using the gsl routines. I will probably use
those from the gsl routines, but I thought it might be instrumental to
convince myself that writing everything from scratch is not the best way to
go (though instrumental in the beginning). I may want to fit the final data
Gait analysis allows biomechanists to analyse how people walk and move.
Gait data takes the form of several positions of markers in 3 space and
ground reaction forces on the floor. These positions are in a global
coordinate system with respect to the room that the data was taken in. The
data needs to be transformed into a anatomical coordinate system so that the
positions of the markers translate to positions of body parts with respect
to one another. Then this data can be analyzed in 3 space using inverse
dynamics equations to find angles of flexion in joints. I planned to write
a program in C++ to input an Excel file full of gait data and do this
analysis. I planned on plotting knee and hip flexion over one gait cycle.
As far as my project goes I was thinking about extending a project I worked
on in the computational course at NYU I took. For this project I
investigated Euler's eqns for governing hydrodynamic flow in 1d for things
like the shock tube. I was thinking about extending this into higher
dimensions and exploring other initial conditions.
Your comments and
suggestions are appreciated.
[Math and Physical Sciences]
[Ohio State University]
OSU Physics: Physics 6810 Computational Physics.
Last modified: 09:20 am, February 20, 2017.