May 12
The next step is to figure out what days and hours I want to work in the summer and get all my paperwork completed for the process.
May 11
We presented our posters! Everything went well.
May 10
I met briefly with Dorland to pick up my poster and discuss how to explain the last part of it, which describes the spectra. There's a chance that no one will even ask about it, but it is better to be prepared.
May 8-9
I worked on and finished my poster. I met with Dorland to show the plots I made and ensure that they were good and I sent him a draft of my poster for corrections. The final poster is shown below:
May 7
We met again to discuss what to do with my poster. We decided that I should focus on the physics, and less on the computation which I discussed more in the paper. I won't have time to do any runs for the poster, so we decided the best course of action would be to add lots of plots to show what I am trying to describe in my poster. Later, after the project, it would be a good idea to also make plots with the real data, but for a poster, cartoons provide a cleared image. I spent some time installing and looking into the program VisIt, which can be very useful for creating plots from data. However, for this particular poster, since I am not using real data, I decided it would be easier just to make the necessary plots using graphing calculators and Matlab.
May 6
We met with Dorland to figure out the rest of the collision operator calculation and to discuss our poster. We spent most of the time expanding the collision operator in the Hermite basis to prove that it simplifies the operator. Our work is shown below:
We are also meeting tomorrow to finish this and to discuss posters and what to do with the project moving forward.
May 4
Joey and I met to work through the collision operator calculation that Dorland wanted us to check. We weren't able to finish it because we couldn't figure out how to do the integration by parts, but we have an idea of what to try next and we are either going to try again or we will meet with Dorland to figure it out.
May 1
I added my part to the intro and conclusion. I was then in charge of editing the intro and conclusion and making sure the sections were cohesive, and checking that all the Latex equations were correct for everyone. After proofreading and minor corrections, I submitted the paper.
April 30
I met with Dorland to discuss the collision operator and the directions for my paper. We spent a long time proving that the Laguerre functions do in fact simplify the collision operator, and the same holds true for the Hermite functions. Our work is shown below:
I then met in the evening with the guys so that we could all finish working on our paper and put all of our work together. We typed it up in Latex and finished our sections, but we still have to finish combining it all and writing the intro and the conclusions.
April 29
I spoke with Dorland and he sent out an email to all four of us detailing what parts of our work he thinks each of us should focus on in our paper. My section is as follows:
1. Explain ExB velocity and its significance
2. Present Alfven wave equations
3. Slow mode equations (presentation)
4. Collision operator has HL as eigenfunctions
5. Expected spectral signatures of turbulence
We are each doing an individual section of the paper, and then working together to put the sections together and write the intro and conclusions. Since the guys are all focusing on the mathematical and computational methods surrounding the project, I will need to write my section so that it ties all of the pieces of the project together and explains the physical significance behind what we're doing. Specifically, I need to focus a lot on the fact that the Hermite-Laguerre functions are eigenfunctions of the collision operator, and thus greatly simplify the calculations that must be done if we work in the HL basis. This aspect is very important to both Michael and Joey's projects, which focus on the HL basis.
In order to better understand the collision operator, I read some of Anjor's thesis describing it. The collision operator is present in the slow mode equations to account for the collisions between plasma, specifically at small scales where the collisions have a more significant effect on the system, and the eigenfunctions of the collision operator are Hermite polynomials, simplifying calculations.
April 27
Dorland and I were considering meeting today but were not able to, so we are meeting again soon to discuss the paper and what to do moving forward.
April 25
Met with Dorland in Toll and discussed the derivation of the Kolmogorov spectrum.
Plot above demonstrates energy per wave number for a turbulent fluid (this is generic, for a fluid, not necessarily for plasma, but the derivation here is important in order to figure out the different spectra for plasma and be able to study them). At a low wave number (thus high wavelength), energy is entering the system (we call this region the stirring region), and at a high wave number (low wavelength), energy is being dissipated from the system (damping), so we do not look at these regions because they behave differently from the rest of the system. For wave numbers in the region in between (called the inertial range), energy is transferred between wavelengths at a constant rate. Thus, at the inertial range, on the plot of the spectrum we see a constant slope. Since energy at a wavelength is proportional to v2 and the rate is v/l, then the rate of energy change is v2*v/l = v3/l = c , with c being a constant, as explained previously. Thus, v is proportional to (l)1/3. From there, it follows that the energy is proportional to v2 = (l)2/3. We inverse this for energy at a wave number to get (l)-2/3, and then the energy PER wavelength is (l)-5/3. This is the slope that we expect for the energy spectrum for a turbulent fluid. We can look at the spectra for turbulent plasma, and similarly, the slope will be some k-p. However, this p may have a different value than 5/3, and the aim of the project is to predict, calculate, and explain what the spectral p value actually is.
April 18
I met with Dr. Dorland and we talked about the types of waves that affect plasma turbulence. There are two types of waves that we want to look at and be able to understand. If we take the magnetic field lines in our system to be directed in the z direction, on the large scale the plasma particles are moving following these field lines. Alfvén waves are perturbations in the magnetic field lines perpendicular to the z direction. The field lines are incompressible from the Alfvén waves - thus, all the field lines perturb and move together in phase. The plasma particles move following the Alfvén waves with an E x B velocity. This can be seen in the following image: The Alfvén waves fluctuate off the main z direction magnetic field line, and the particles are nearly on the magnetic field line, but drift slightly off due to the E x B velocity, and move with helical motion.
The other type of wave that we examine are slow mode waves. These are density fluctuations along the magnetic field lines, and the waves are out of phase on adjacent lines. Thus, there are areas where the plasma particles are compressed, and areas where the particles are expanded, and this causes fluctuations of the magnetic field along the z direction. The slow mode waves move on top of the Alfvén waves. Although these waves and fluctuations occur, this is only on the smaller scale, which our system examines. On a larger scale, the magnetic field is still practically straight in the z direction, but when looking at a local area, there are perturbations on the lines. There are both Alfvén and slow mode waves at many different wavelengths and angles, and they all interact and interfere. Thus, in reality, our system is much more complex than just simple idealized waves, but all of the complex behaviors result from these wave interactions.
April 13
Dorland and I met to discuss more theory behind plasma turbulence. Within the presence of a magnetic and electric field, plasma particles have a special kind of motion called E x B velocity. Within our model, the magnetic field is directed only in the z direction, and thus the plasma travels following the wave lines in the z direction. If we assume there is no electric field, and the magnetic field is B = B0z-hat, then we can use
the equations
and solve for the velocities in each of the x, y, and z components. We find that the z component of the velocity is constant, and the velocities in the x and y velocities are harmonic with equations
Thus, we .find the motion to be circular and periodic in the xy plane and constant in the z direction, and the total velocity to be helical.
Now, we consider the situation with E ≠ 0, such as with the case where
E = E0y-hat. Although there is an additional electric field component, we .find that the y and z components of the velocities stay the same. However, for the y component, we get
This is similar to the vy in when E = 0, but with an additional E x B component. This term, known as the E x B drift velocity, is found to be
In this case, the motion of the plasma particle is still helical, but with an additional drift in the x direction. We find that this property of the E x B velocity holds true for all situations - the drift velocity is always perpendicular to the directions of the magnetic and electric fields. In addition, the E x B velocity is the same for all particles in the same conditions. Plasma particles with different mass and charge in the same magnetic and electric fields will still move with the same E x B drift velocity.
April 10
Still examining the GUI code and trying to figure out how to change the linear fit. I've been consulting tutorials on python and the matplotlib library to figure out what specific parts of the code do.
April 7
In order to check out a copy of the GUI I had to do the following command:
svn co svn://gk.umd.edu/jake/branches/GandalfGui
It then appeared in my directory with two binary data files, a python file, and a .ui (user interface) file, but I was not initially able to run it. I first had to figure out how to run the python script, and figured out that I need to type:
python (name of gui file) (name of .nc file)
However, when I tried to run it, I got the following error message:
from PyQt4.uic import loadUiType
ImportError: No module named PyQt4.uic
I looked up the error message but couldn't find a successful solution for it. It suggested the the PyQt4 library, which is necessary for the code to run, was not installed, but it definitely should have been installed on kendall. I emailed Dorland about it and he suggested that I may be using the wrong version of Python, but I checked and I was running Python 2.7. Eventually Dr. Dorland found a solution- I had to add this line to the end of my .bashrc file:
export PATH="/opt/anaconda2/bin:$PATH"
and the GUI then ran without a problem.
April 4
Met again with Dorland today, and he answered the questions I had aboult the makefile. In the future, I should use the nvcc compiler because I will need it for GPUs. We looked through the Gandalf makefile in detail and figured out what it did and what files it updated, because I will have to use this makefile in the future. We then used Gandalf to run a sample data set, and then looked at the output on the GUI Jake created. I do not yet have access to the GUI but Dorland will send me information for how to check out a copy of it. The GUI plots energies and creates a linear fit for them. One thing that would be beneficial to do would be to edit the GUI so that the fit is better.
Additionally, if I am working on the project on a computer that is not kendall, I will have to download a Subversion client in order to update my work. If I am just on kendall I will not need to.
April 3
I read about make using this article. I then followed this tutorial to try to make my own makefile. Initially it did not work, but I was able to resolve the problem by adding the tab character in front of the recipes instead of the spaces that they had. Arthur had mentioned that he had made his own makefile code, so for extra practice I looked at his (which I can access through the cluster) and used it to make my own. His code included stdio.h as a prerequisite for one of the .c files, but when I tried to do that I encountered an error. We looked through his code and found an error, and figured out that you do not need to include stdio.h as a prerequisite in the makefile. In addition, his code used nvcc instead of cc, because nvcc is a compiler that works for GPUs. Although make still executed when using nvcc, I got this warning: "nvcc warning : The 'compute_10' and 'sm_10' architectures are deprecated, and may be removed in a future release." When I changed nvcc to just cc in the makefile code, this warning went away. The make still runs, so it doesn't seem to be a major issue right now, but I need to see if it will become important in the future.
March 31
I researched software environments for Latex. Texshop is not available for Windows, but according to various online forums, Texworks is the equivalent, and was specifically designed to imitate Texshop. I downloaded Texworks and tried to create a simple article, but the program would not let me compile and view it as a pdf. After some research, I figured out I need to download Texlive in order to create the pdf from the tex files. I downloaded Texlive (which took like 4 hours!! and multiple attempts because my computer kept accidentally shutting off), and after some fiddling managed to connect Texworks and Texlive and got my tex file to save as a pdf. :)
I also looked into Subversion, but I wasn't really sure what to do with it. I consulted with Arthur, and he said he didn't know either - he had downloaded the Subversion client, but did not know where to go from there. I am going to talk to Dorland and figure out whether I have to download it and where to go from there.
March 30
I met with Dorland to discuss my progress and figure out what tasks I should begin. He cleared up a few of my questions on the idea of an adiabatic invariant, which I discuss in the previous entry.
For my project, one of the unix operations I need to become familiar with is the GNU make function. He explained what it does and why it is so useful, and I will need to start using it because it is necessary for my own work.
In order to be able to properly write papers, Latex is used. I have used Latex back in middle school, so I have some familiarity with it, though I have not used it in a long time so I will need to refresh my memory. Dorland suggested downloading Texshop for a Mac, but I have Windows so I need to see if it works on Windows or if there is an equivalent software I need to download for my computer.
Additionally, I will be using Subversion to keep track of all revisions of my work. It is a predecessor to Github, which we used a little bit last semester, and is in some ways similar.
The code that I will be working with will be using the Python language, so I will need to begin to learn it and will gradually become more comfortable coding in Python. One of the libraries that is important to my project in order to create charts is matplotlib, which is similiar to plotlib but uses Matlab code, which is preferable but sometimes has minor discrepancies from plotlib.
Spring Break
Dorland gave me access to his cluster and I was able to successfully SSH onto kendall (the computer). I looked around and was able to see Anjor's files, and I looked at some of them, but I did not run any of the code yet or do anything like that.
An adiabatic invariant is the value in a harmonic system that remains constant if the system is changed gradually in some way much more slowly than the period of the system. The adiabatic invariant is equal to the area of the phase space of the system. I didn't know what a phase space is, so I looked it up, and it is defined as the space of all possible states of a system - thus both all the possible positions of the system and all of the possible momenta. The area of this space will remain constant if the system is changed slowly. An adiabatic invariant is called an "action."
Helpful article on adiabatic invariants
March 16
I met with Dorland and we discussed some more mathematical concepts that will be relevant to my project. We discussed adiabatic invariants, and will research this topic more on my own. In addition, I will do more research into BBGKY heirarchy, which we began discussing.
One mathematical method that is used a lot in physics, and is used in the thesis that I will be referencing, is changing variable in order to get rid of unit conversions. By using variables that are in terms of other variables and are unitless, complex differential equations can become much simpler to solve. As an example, we solved this problem with a simple mass attached to a spring.
March 14
My meeting with Dr. Dorland was rescheduled to Thursday due to the snow day.
After contacting IT, I was finally able to figure out Glue. Every student automatically has a Glue account, so I just have to SSH onto glue.umd.edu.
March 10
We met with Dorland as a group and had some more discussion on the different ways of modeling functions. Specifically, we discussed polynomials, Haar wavelets, and Fourier transforms, and the benefits and problems with using each.
The data itself can be used to evaluate and model something, but it is purely local - it is impossible to extrapolate accurately past a set of data points and you cannot integrate the data, so it does not have many uses besides looking at specific values.
Polynomials are a quick way to create approximations, and can be very accurate, but may be challenging to integrate or differentiate. In addition, they work well on a smaller scale, but would need a lot of terms in order to be able to model a more complicated function on a more global setting.
Fourier transforms, on the other hand, are mostly global, and are integrable and differentiable. This makes them useful for looking at a function on a large scale, but they cannot be used to find the values at a specific point and to look at local behavior.
We also discussed Haar wavelets in detail. Their biggest use is with data compression, but there have not been methods developed with would make Haar wavelets particularly good for function modeling. The alternative methods are all better than Haar for that purpose.
From now on, we will be meeting independently with Dr. Dorland. He also asked us to try to get a Glue login so that we can access his cluster.
March 6
Today we once again met with Dorland as a group for an hour. Instead of just discussing theory, we worked on solving a specific problem to better understand the ideas he's presented in previous discussions.
These are pictures of the work that we did. We were given a differential equation that we did not initially know the actual solution to, and we had to try to find a way to model it. We saw that the second derivative was proportional to the function itself, f, and we decided it to approach it by modeling it with a polynomial, called g. We made an estimation for what g was, using three variables, a0, a1, and a2, and then plugged this guess function into the original differential equation. Since g is a guess function and most likely doesn't equal f, instead of the differential equation with g =0, we set it equal to R, the residual function. We then decided to solve this problem by setting R=0 at three points: -0.5, 0, and 0.5. We then used Matlab to solve this system of equations to find a0, a1, and a2. We plugged these values back into g and graphed g. We then graphed the actual value of f, which Dr. Dorland gave to us, and we saw that g was a very good estimation for f. We discussed Gaussian quadrature, which is a method for improving this estimation. By changing the guess polynomial, as well as the values of x for which the residual is 0, we can attain an even better estimation for f.
The Matlab code we used to solve the system of equations for a0, a1, and a2.
The graph of the real exponential function f and the guess polynomial g.
March 4
We met with Dorland as a group again today. We reviewed the linear algebra concepts from last time and discussed the idea of transformation of bases. We discussed the questions that we had about the problem from last week and he cleared up our confusion regarding the dimensions. Basically, looking at each value as a different dimension is basically just a different way of approaching and looking at the idea of dimensions. This perspective is particularly useful when you are dealing with a lot of dimensions, which can be hard to visualize and represent in a different way. This way is the most convenient and understandable, so he was introducing us to it.
February 28
We arrived at the room for our meeting but then we got an email from Dorland saying that he had to cancel at the last minute. He also explained that the basis he gave us was not completely correct and would not give exactly the solution that he thought it would, but he gave us a suggestion for how to approach it and told us to see what we could come up with. We spent some more time discussing it and found a solution, but we had the problems from yesterday and we weren't sure if the solution was correct or trivial, so we are saving these questions for our next meeting.
February 27
The four of us met to work on the problem before our meeting tomorrow with Dorland. We all tried to approach it in different ways and bounced ideas off each other, but we were slightly confused about the problem. We found a way to multiply and add the different dimensions in order to get all but one equal to 0, but we were confused about this approach to the problem. It seems like a trivial way to transform the function and we weren't sure how valid this approach was and what exactly it meant. It seems odd that you can just add dimensions, because when typically looking at different dimensions, you can't really add them since they are pointing in different directions and representing different things. We discussed these problems and decided to ask Dorland about this tomorrow.
February 25
We met with Dr. Dorland for three hours today. We spent most of the time going over some mathematical concepts that he thought would be beneficial for all of us to understand. Although we will each be working on a different project, they will all be closely related and we all will need to understand the same mathematical concepts in which all of our projects are grounded. Today's discussion was mostly focused on linear algebra, most of which I already knew, but Dr. Dorland provided an interesting new way of looking and understanding it. We spent some time discussing basis functions and the idea of transforming bases. This can be very beneficial when working with complex physics problems, because certain calculations can be very challenging in one basis but much more simplified and understandable in a different basis. Therefore, a set of data can be converted from one basis to another, which is easier to work in, then the computations can be done to the data, then it can be changed to a different basis to do a different set of calculations, and so on until all of the calculations have been completed in their respective simplest bases, and then the data is changed to whatever basis it is easiest to understand it in.
We ended our meeting by looking at a specific problem, which we did not finish solving and Dr. Dorland left it for us to try to complete before our next meeting on Tuesday the 28th. We took an 8-dimensional system with integers 0-7 and the function sin(2πx/8) and tired to convert it to a different basis that would simplify this function. Our goal was to be able to have each dimension besides 1 equal to zero.
February 18
I sent Dr. Dorland an email with which project I am most interested in working on. I am most interested in the last project he described, which deals with examining the slope change in the plasma chart that he showed us, and modeling it so that it can run in a number of hours instead of taking days. He did not describe exactly what we would be doing in too much detail, but he mentioned that I would be both writing code and running it.
February 17
We came to Dr. Dorland's office hours this afternoon and met with him for about an hour. He spent some time describing the potential projects we could be working on, so that we could consider them and decide what we are most interested in.
Dr. Dorland's research involves the study of plasma. Specifically, he studies turbulence within nuclear fusion reactors, particularly within a tokamak. The plasma inside such a reactor must be at extremely high temperatures in order for the reactor to function at any level of efficiency, but if the plasma approaches or touches the wall of the reactor, which is extremely cool by comparison, it will rapidly cool down, creating turbulence and rendering the reactor inefficient. This is an issue that is currently being worked on to model and solve.
Dr. Dorland explained that the plasma inside a nuclear reactor can be very accurately modeled by the plasma found in outer space. A reactor is very expensive and difficult to build and run, whereas we have years of satellite data measuring astronomical plasma. Therefore, we can use astrophysical turbulence data to study and model plasma.
Some of the projects that Dr. Dorland proposed for us involve simulating the fusion reactor, and some involve space plasma. One of the issues is that they use different codes, and some of them are very old, and take a long time and lots of computing power to run. Some of the projects involve converting the old code to a new, quicker code, which is written in a different language and takes advantage of GPUs in order to run the simulations.
After our meeting, the four of us met to discuss which projects we were most interested in, and we will all send Dr. Dorland an email describing what we want to work on. In addition, we scheduled our next meeting with Dr. Dorland.
February 14
We still haven't gotten a response but Arthur and Michael have both individually spoken with Dr. Dorland, and he told them to send him another email, so we are emailing him again.
February 9
Our entire group emailed Dr. Dorland to schedule a meeting and we are currently waiting for a response. We also asked for supplementary material that we could research before the meeting.
FIRST SEMESTER
Put a file on Github repository from HONRPHYS on cluster
git init
git add filename
git commit -m "message"
git push origin master
Update your HONRPHYS repository on cluster
git init
git pull origin master
If this error appears: The requested URL returned error: 403 Forbidden while accessing
Had to do this like 5 different times because I kept getting errors but basically, have to change link for cloning from HTML to SSH
git remote rm origin
git remote add origin git@github.com:grafova/REPOSITORY.git
Running C++ code
g++ filename.cpp
./a.out
Some Operators
&variable
gives the memory address of the variable
*variable
called pointer, opens memory location pointed at by pointer, or if variable is location, points to value
"\n"
Ends the line
Using Root
cd CMSSW_5_3_30
cmsenv
cd testroot
root (make sure did XLaunch)
.x filename
.quit