Summer Internship in Computational Physics
I completed this summer research project with Dr. Tobochnik during the summer of 2001.
Journal Topics:
- Concepts behind the Boltzmann Machine Experiment from AJP article
- The Boltzmann Machine Application written in Java
- The Boltzmann Machine Applet and teaching methodology
- The original MD program and how we made it more efficient
- Concepts involved in Erik’s program
- Concepts involved in the piston experiment
- Programming of the piston application
Concepts behind the Boltzmann Machine Experiment from AJP article
In an article from the American Journal of Physics, there is a simple machine that was built in order to experimentally derive the Boltzmann Equation—an equation used in statistical mechanics and thermal physics. Between the two platforms, there is a hill with a smooth slope. Rubber bands act like a boxing ring keeping balls contained on each platform. There are two types of balls used inside the apparatus—large ones and small ones. The large ones have internal motors that allow them to move randomly about their own platform. Each platform has a single large motorized ball that is confined to that platform. There are also small balls. These balls are similar to ping-pong balls and move randomly according to their contact with the larger balls. It is also important to note that the smaller balls may pass over the transition between the two platforms. This is accomplished by making the rubber bands over the hill high enough to allow the smaller balls to pass through freely, but tall enough to keep the larger balls on their respective sides. The smaller balls are driven up the hill using the energy that they gain from collisions from the large ball on the lower platform. The use their kinetic energy and exchange it for the potential energy needed to climb the hill.
It turns out that if the system is allowed to reach equilibrium, the number of balls on the lower platform divided by the number of balls on the higher platform will reach a constant value. This ratio is called the Boltzmann Ratio. It is not a constant; however, it is a number that varies with the potential difference, or the height of the hill between the two platforms. The Boltzmann Equation tells us the trend in the relationship between the two quantities—the potential difference and the Boltzmann Ratio. With many tedious trials of varying the potential difference by using a different sized hill, and recording the ratio as an average over time, the Boltzmann Equation can be verified. This is one of the simplest ways to verify the Boltzmann Equation by experiment. The equation is extremely common throughout thermal physics and statistical mechanics.
The Boltzmann Machine Application written in Java
We wrote a Java Application complete with a graphical display to simulate the apparatus used by the author of the article in the American Journal of physics. Our application uses force equations to dictate the motion of the particles as they travel about a diagram designed to represent the apparatus. The diagram is a large rectangle with a vertical line through the center splitting the rectangle into two smaller rectangles. The rectangle to the left of the divider represents the lower platform, and the one to the right represents the higher platform. The line in the center represents the hill or the transition between the two platforms. As the particles travel from right to left, they are given a boost to simulate going down a hill. As they travel left to right, they are slowed to simulate going up a hill. Rather than having a motorized ball on each platform, we decided to use the walls to give random velocities. Overall this produces the same effect and is much less complicated to implement. The random velocities are normalized to preserve the constant energy of the system. Using a Maxwell-Boltzmann distribution does this normalization. The graphical display is in one pop-up window and in the other is a control frame that allows the user to monitor the system. He can change the height of the hill as well as recording the temperature and energy of the system. This graphical display allows the user to set up an experiment and record results just as a scientist working with the actual apparatus would.
The Boltzmann Machine Applet and teaching methodology
I believe that the best way to learn scientific concepts is to obtain them experimentally. This fosters the learning process by forcing the student to rationalize what is happening in the experiment. To make the application widely available, we have converted it to a Java applet that can be run in any web browser. This Java applet will be imbedded in a web page to be used in a classroom or home setting. We have also created a series of web pages that contain reports on the application and how to use it. Learning to use the applet can be complicated—these instructional web pages make the process much easier. The web pages also contain questions that students are asked to answer based on their experiments.
The original MD program and how we made it more efficient
The original MD program was written using names assigned to each variable. Instead of doing the storage this way, we thought that the program might be more efficient written using arrays instead. To test our hypothesis, we re-wrote the entire program using arrays that store the variables. Arrays are an important concept in computer science, and have their advantages and disadvantages. They are excellent for storing data that needs to be accessed randomly, meaning that the computer can look and instantly pull up any value that it needs rather than searching through all of them. This lead to an impressive performance increase. In order to measure the performance increase, we timed how long it took the simulation to complete 60 simulation seconds. In the original MD program, it took 60 percent longer than the newer and improved version. This should seem like a great improvement already, but when our simulations already can take days to complete, this increase is even more substantial. Instead of a simulation taking 2 days to run, it now takes slightly less than one day! In the future, one can only imagine that faster computers will facilitate this type of research to a great degree. In fact, the physics department at Kalamazoo College has purchased a super computer to be used in research. The computer is the equivalent of 16 gigahertz! It has eight tower cases and each tower case has two 1 GHz processors. I helped to install and configure this computer, but we haven’t actually run any programs on the machine yet.
Concepts involved in Erik’s program
Erik Snyder was working on his SIP this summer in the same lab. He explained his program to me, and I am writing about it here because it is very closely related to the work that Mike and I were doing. Erik was testing the energy dissipated in the settling of granular materials. Imagine dropping a bag of sand and hearing it make a thud sound as it stops dead when it hits the floor. A single grain of sand, however will bounce off of a hard surface. How can these contradictions occur? Here is how it happens. The lower grains of sand bounce and run into the grains of sand on top of them. This is not a perfect collision, so the grains of sand lose energy in the collision, and since the particles are traveling in opposite directions, their velocities almost cancel each other out. Thus, as the bag of sand hits the floor, there are millions of collisions between sand particles that add to the total effect of the bag making a thump sound as it hits the floor. This is an easy concept to grasp; however actually knowing what each particle of sand is doing is not. For this purpose, Erik wrote a computer program to simulate the whole process. He simplified the grains of sand to round ball bearings, and changed the simulation to two-dimensional instead of three-dimensional. Running just a few seconds of this simplified simulation still takes several hours. Erik’s goal is to match the results of an actually experiment done by a colleague of Dr. Tobochnik’s. Once he has achieved this goal, he can be reasonably certain that his simulation is an accurate one.
Concepts involved in the piston experiment
Another one of our projects was to determine the effect of a piston on a closed experiment. We set up a simulation with a box full of ball bearings, and the right wall moving as a sine function to minimum and maximum amplitudes. This machine was then monitored to determine how energy was added to the system. We had several theories about the system before we even started to do the programming for the simulation. We thought first that the system would stay at the same energy level because the energy added when the piston is moving out should be the same as the energy removed when the piston is moving out. Then we thought that the piston would be hitting more balls on its way in than on its way out, and would cause the energy level to increase. This theory turned out to be correct. We wrote the program and did the simulation and found that the energy added followed an exponential curve. The curve was not fit easily by an exponential fit because of small fluctuations as well as large fluctuations in slope. We have an un-tested hypothesis that the large fluctuations in slope are due to phase changes such as the balls changing from a liquid to a gas configuration.
Programming of the piston application
The piston application was relatively easy to program because we simply modified the original MD program. We already had the option in the program to move a wall. We simply had to program in at what rate to change the movement of the wall and which wall to move. This was an interesting process because we made several mistakes that resulted in various problems. Since the program updates itself in small, but not infinitely small time intervals, situations are possible in which a ball can escape it’s container because it is on one side of the box at one time interval, and then out of the box at the next. Once a ball escapes, it keeps its initial trajectory and continues forever. This causes a problem because the energy of the escaped ball does not change in the way it should, it simply keeps a constant energy. To fix this problem, we had to adjust the speed of the wall-piston to be small enough as to not allow the balls to escape.
Reflective Final Paper
At “K”, I have learned theory. I’ve learned about important scientific discoveries of the past, and how their creators came to the group of theories and natural laws that we take for granted today. Colleges all around the world teach this theory because it is an important base to any education in the sciences. With physics, learning and teaching these theories can be both part of an education and eventually an entire career. An internship however is designed to bridge the gap between school and a career. It provides a transition for a young person. This summer, my internship with Dr. Tobochnik of the physics and computer science departments helped me to think about my career goals as well as reflecting back on how my coursework has lead me in this direction so far. I found that I was as much in control of my experience this summer as anyone. There was a lot of freedom for exploring my interests—this was an important factor in selecting the internship.
I became more proficient in the Java programming language as well as more familiar with the physics concepts involved in writing a complete simulation. I worked with Michael Mayers, a senior physics major, on most of my projects. He was a great help in learning along the way and made the entire process much less stressful. It was still extremely challenging because of the unpredictability involved when writing complicated simulations. I think that I handled the internship very well in this respect because I found people to help me when I was having trouble. My coursework at “K” was an important foundation to being able to be successful at this internship.
During the summer, I have also considered various career options. The main issue seems to be one between theoretical work in physics and going a step further to apply the theoretical work to some more practical situations. The work I was doing over the summer was definitely in the first category, but, I think that in order to be satisfied, I will have to find some kind of job that combines both of these types of careers. I’m not sure where exactly to start looking for this type of career, but I am happy that I have made this decision because I believe that it will lead me in the right direction.
My learning objectives were fulfilled based on the goals that my professor and I wrote at the beginning of the summer. I wanted to gain experience in both related fields—computer science and physics. This goal was accomplished through the completion of various programming projects. I also wanted to gain experience in setting up and running the Beowulf Computing cluster. This was accomplished to a lesser degree because the shipment of the computer was delayed. We didn’t actually receive the super computer until the last week of my internship. I read through a large portion of the manual and helped set up the computer, but I didn’t get any experience in using the computer or its maintenance.
Overall, I was pleased with my selection of this internship. It was rewarding to work with an experienced professor as well as several upper level physics and computer science students. However, I will probably look for something slightly different for next summer to allow me to explore different areas of the two fields and help to lead me in a direction that suits my interests and abilities.
As it relates to the five dimensions, I have found that it helped with each of them at least indirectly. Lifelong learning has the connotation of a person who is learning for his own benefit. This was how I felt for much of the internship. There was not a lot of pressure on me to produce a product; rather I was there for my ownmohj8uhj benefit in learning as much as I could. Of course it relates to career readiness, but I found that the internship also related to leadership because Michael and I had to decide who would be in charge of each project and making sure that we addressed all possible issues.
Overall, I feel that the internship was an invaluable tool that will lead me to pursue further career options and will lead me in the correct direction in pursuing those options. I will look for a similar experience for next summer prior to my study abroad trip in late August.
|