# Physics 6810 Computational Physics Projects

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 theory.
• 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 field.
• 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 iteration.
• 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 perturbed energies.
• 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 time period.
• 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 through the air. On the left in Figure 4.6 the baton is shown as as two identical spheres joined by a massless bar. Each sphere has mass m and radius r, with the centers of the spheres separated by a distance L. The baton is thrown with the initial velocity (Figure 4.6 center) corresponding to a rotation about the center of the lower sphere. Problem: Write an OOP program that computes the position and velocity of the baton as a function of time. The program should
1. plot the position of each end of the baton as a function of time;
2. plot the translational kinetic energy, the rotational kinetic energy, and the potential energy of the baton, all as functions of time;
3. use several classes as building blocks so that you may change one building block without affecting the rest of the program;
4. (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 distance.
• 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 aperture.
• 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 orbit.
• 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 predator efficiency.
• 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 generator Pythia.
• 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. Subgoals:
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 neighbor interactions.
• 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 stops working.
• Study ring torsion angles in the polymer Polyaniline using a Metropolis algorithm.
• 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).
• We are 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 resonator cavity.
• 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 triangles.
• 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 Schroedinger equation 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 integrals.
• 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 curved surface.
• 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 Landau/Paez book.
• 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 self-consistently.
• 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 with interpolations.
• 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.