N-Body Simulator - Charles Zhu
PHYS 210 PROJECTS --> here
My interests in physics are quite varied. I originally got into the faculty because I was interested in astronomy and astrophysics, but this interest has recently been supplanted by an interest in thermal physics and quantum physics. My project ideas come from a bunch of different fields:
1. I was writing a program that takes a star/ringed planet system and calculates the light emissions curve (at some user-determined wavelength range) of the system at different orbital phases of the ringed planet. The program esssentially involves a LOT of Stefan-Boltzmann and scattering/transmission integrals. I'm currently planning the third version of the model. Unfortunately, it's gotten to the point where this program requires a cluster to run in less than two hours. I'm hoping that my project could be to find ways of making this code efficient enough to run under two hours on a single PC. I'm not certain this is a possible project, partly because the base code for the program has already been programed, and partly because it may not be possible to make it go faster...
This is a great idea, but maybe not for P210. The problem is, you can't schedule success: the light might go on a week after the end of term, in which case you get a publication, but no mark. I had a theory postdoc who had done his PhD in Switzerland on a numerical problem that took a week on a Cray; then while he was working at TRIUMF he thought of an ingenious way to make it faster, and replicated his doctoral result in an hour on a MicroVAX (a minicomputer roughly equivalent to an Intel 486). It is a universal truth that ingenuity is always more powerful than brute force; but you can buy brute force and know how long it'll take, whereas ingenuity... well.... -- Jess 14:39, 20 September 2008 (PDT)
2. I once saw a quantum-waveform propagator Java applet that looked really cool. As I'm taking Q. Mech right now it may be very informative to do one myself, depending on how difficult such a project might be.
Indeed, this would be handy in P200; but you can download the code off the Internet, so your contribution would have to be adding features, making it more useful etc. For this it would be essential to have (soon!) a clear idea of (a) what's available as Open Source, and (b) exactly what you want to get it to do that it doesn't already. -- Jess 14:39, 20 September 2008 (PDT)
3. Some kind of extremely simple N-body simulator that tracks position, velocity and acceleration due only to gravity. There would need to be some kind of graphical interface to go with it, so you could see the objects as they go. Maybe make videos? I'm not sure if I'd have to program the graphical interface myself, or if I could just hook my program up to one someone else made on the Internet.
Stephan Lingemann did a great Project on this last year using Java -- see "Graphical Simulation of a N-particle System" on the Projects page -- and you could ask him if he'd like you to take his code and either port it to (e.g.) Python or (if you know Java) improve upon it -- add new features, use it to illustrate principles of statistical mechanics, adapt it to 3D or make "gravity" a 1/r^2 force rather than a uniform downward force (for adaptation to clusters of stars etc.). Lots of possibilities here. If Stephan doesn't want to share his sources, you could do the same thing "from scratch" in a different (faster) language. It was a very cool Project! -- Jess 14:39, 20 September 2008 (PDT)