# Physics 780.20 Computational Physics Projects

Here are some of the projects, as proposed by the students (with minor editing), from past years of 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). A good source of project ideas is the Computational Physics book by Landau and Paez. Any of the many "Exploration" problems from that book would be a good project.

• I want to model an acreating 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.
• 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 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 780 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 excell 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.