I am inactively working on a game to aid in the teaching of Quantum Mechanics. I find that it is not good to simply rely on the author of the book and whatever notes you can write up to teach a subject. While I am capable of learning just about anything from anyone who knows the material, I don't think everyone is so blessed. I've also read that when the news is present in The Colbert Report and The Daily Show with Jon Stewart, it is retained better and longer than if it were to be presented in a standard news program like the Nightly News with Brian Williams. So to this end, I give you the development of Quantum Shooter
This was done for a Methods of Experimental Particle Physics lab. The idea was Monte Carlo integrate several functions from 0 to 1 and show the progress. We also used importance sampling to improve convergance for a single integration. I took that assignment and multi-threaded it to N threads. Once you do that, there is no meaning in the "show progress" request because not all threads will converge in exactly the same way. The final progress is graphed using ROOT. The compile command for the threaded Monte Carlo is g++ Monte\ Carlo\ Threaded.cpp -fopenmp [-O3]
Over the course of Summer 2012, I wrote a program to solve to the Cornell potiential for the strong force, V(r)=-4α/(3r)+σr. The code is provided below. It was modeled on the relaxation algorithm in Numerical Recipes 3rd edition by William H. Press et al. In the course of getting it to work better, I added a few routines that were meant to rescue the main algorithm or force it to a lower energy if it wondered off into La-La Land because the solved energy no longer agreed with the solved function. I was not really happy with them, but they are still there if you can figure out how to get it to work better together. My results for charmoinium and bottominium are provided in results.ods. The tail of charmonium comes back up so I don't believe it.
The function object is a much abused linked list with the solution, derivative of the solution, and the energy of the solution for every point between r=0 and some cutoff. It also has the behaviour of the solution after the cutoff.
The matrix object is 3x3 real matrix with ways to reassign and recall each element, test inequality, multiply and assign matrices, calculuate determinants and inversions.
The stack object is a stack of the matrix objects. The idea being that the computer partially solves the matrix from top left to bottom right and that it only stores that stack for any amount of time. And then it backsolves from bottom right to top left using the stack. The whole matrix that is being solved never exists in its entirity at any time.
Solver.pdf has the derivations of the base algorithm. The rescue functions where built on the primise that the solution would have the lowest energy possible and that they should select the combination of solutions that made the energy lower. The energy is calcuated using Sturm-Liouville Theory instead of the Hamitonian because it is what worked for hydrogen.
This is a project that was required for Thermal physics (PHYS 433) at the University of Idaho. It is written in an informal tone as I was trying to tell a story and keep the professor awake. I have a thing against scholarly papers that are so dry and boring, they could be used to cure insomnia. This project was to find the probability that a protein will fail to work given that a point mutation has occured to the associated DNA. I was not satisfied with the results and have deemed them otherwise unpublishable. The following is source code, feel free to copy, maim, mutalate, or otherwise use and modify to your heart's desire. You may use the results to your own peril, don't say I didn't warn you.
I wrote a server side application for my last web hoster, David Sarver. The application's job is take a list of log files and produce a semi-real time summary of the information contained therein. Wrapper.cpp is the program that calls Web.cpp. Web.cpp has a very slow memory leak and will be terminated once every 48 hours to release RAM. Wrapper has a pause of 3 seconds to allow you to get in edgewise to kill the wrapper if you need to after killing Web.cpp. These links are to the Ubuntu source code version. Replaceing "people.physics.tamu.edu/isarver/" with "sarverd.info/status/" will deliver the Windows version. Names.txt is the list of log files. The first line of the file is how often you want the out updated in seconds. ISarver.txt is an example log file. The first four lines contain the name of the site, the log name, the and the URL, and the display name. The rest are the logs in the format year,month,day,hour,minute,second|bytes sent to server,bytes sent from server|time to send in microseconds. Web.cpp is the source for the application itself. List.cpp is the list template used in Web.cpp. Most of it has been commented out to prevent the compiler from using the unneeded code and including it in the final program. It is very similar to the List.h and List.cpp above. The one above is a simple object, not a template and so it is only good for characters. The resulting file is used to generate the numbers on this status page.
All of the software generatable by the above source code is released under International Components for Unicode license version 1.8.1.
I wrote a clustering program for my research project for the Spring semester of 2010-2011 school year. It takes a *.pdb file with a large quantity of structures. Due to the fact that the orginial test files didn't precisly follow standard, it can only do sturctures where all of the carbon-alpha atoms must have one location, no alternative locations. The rest of the documentation can be found in the documentation written for Dr. Ytreberg. The performance for -O3 and not -O3 optimization has also been included.
Me on Orchid