This week is the first of a two week internship on computational chemistry at ASU. I am working under assistant professor Matthias Heyden who focuses on running simulations of atoms and complex chemical structures. During this first week I have learned a lot not just about chemistry, but also about the physics that govern individual atoms. Along with learning the physics behind chemicals and their interactions with one another, I have also been working on the unix terminal a lot to run basic simulations.
When I started on Monday I got a quick tour of the campus (which is massive) and got introduced to the rest of Matthias’ team. I got set up with my own desktop mac computer and account to help me run simulations and compete work. Once I was all situated, I was instructed to run some basic simulations through my terminal. These simulations would be 3-Dimensionally displayed through a software that utilizes Open-GL to show chemical and atomic interactions (the software is called VMD). To actually get all the appropriate information to run these simulations, different kinds of files need to be gathered and created. These files can then be ran in VMD to display 3-D chemical interactions. An open source software called GROMACS is used to help create these different kinds of files and has many pre-compiled processes to make the simulation process easier. For example, if you wanted to create a box filled with hydrogen atoms, then you just specify the parameters for the box and how many atoms you want. This information will output into a new file that the user then specifies.
Once Monday was done and I got familiar with VMD and GROMACS on the terminal, I was told to mathematically create a 1-Dimensional spring oscillator. This task sound easy because you could just use a sinusoidal wave to show spring oscillations, but instead I had to show the motion of the spring using basic physics principles. Matthias gave me a paper that suggested I used the Verlet Algorithm to calculate velocity and position which made the task easy.
Here is a code snippet of the algorithm implemented in python.
for i in range(int(iterations / deltatime)):
force = -k*displacment # Calculate force at time = t
displacment+= deltatime*currentvelocity + (deltatime**2/(2*mass)) * force #Determine the displacment of the mass on the spring
laterforce = -k*displacment # Determine force of t + delta t
currentvelocity+= deltatime/(2*mass) * (force + laterforce) # Calculate the new velocity
On Wednesday, I had many meetings. The first meeting that I had was between Matthias’ group and another group. Each person (besides me) presented their work and explained what they are doing. This helped me establish a better understanding of the different work that people do in the field. After that meeting, I essentially went right into another meeting which was just Matthias’ group. They broke down equations for me so I could better understand the calculations behind the chemical simulations that they run. This meeting hurt my head because of all the equations, but in the end I developed a strong understanding of the equations and their physical meaning.
On Thursday, Matthias gave me an explanation of C code that he had written that produces trajectory files simulating liquid argon. He explained the Lennard Jones potential and how it can be used to calculate the component forces of an atom. After his explanation, I ran the files that the code produced in VMD and saw the argon atoms jittering and moving calculated with real physics, which I thought was fascinating. The rest of the day I ran more simulations and analyzed the files and code that made the simulations happen.
Friday was a really interesting day. I was able to connect to ASU’s super computer, and starting on Monday I am going to be able to run much more advanced simulations. I had to set up GROMACS in my .bashrc so I could run programs on the super computer with ease. With as much computing power that a super computer has, I can only imagine the complex simulations one can run on thousands of cores.
On my off time I am building other physics simulations like water sims and gravity sims. I have also been going swimming a lot and playing Halo with my roommate.
There are no comments published yet.