Christopher Plumberg
Research Log, MSU Summer REU Program, 2008

June 5, 2008
    Today, we learned how to work with HTML  And now, I am supposed to make a change to my page.  I don't have any images or links to put on here yet.  Just to experiment, here is a link to Montana's homepage.  Also, here is a link to the first plot I successfully made after a LOT of programming: Initial Conditions for Solar Magnetic Fields in Corona.  Wow.  My hands are tingling.

June 6, 2008
     I made a notable contribution to mathematical physics, which I have named after myself.  Although I have had little cause to utilize this operator, it is good to have it in my name.  This operator, known as the Plumbergian, consists of applying the Laplacian operator 10 times to a scalar function f.  In shorthand, the Plumbergian operator is written "del-20 f".

June 9, 2008
     Dr. Kankelborg is still out of town today, so I am taking the opportunity to familiarize myself with the Perl programming language, and if I have time, review some HTML.  The reading goes pretty quickly, partly because the book is written well, and partly because I am beginning to pick up on the basics of new programming languages pretty quickly, since in the lowest-level programs, they seem to have much in common.  I expect that I will return to my specific research project tomorrow.

June 10, 2008
     Well, Dr. Kankelborg got back today, so I was able to catch up with him on some of the next steps that my research can take.  I continued to work on Perl, and began investigating PDL, which I will hopefully begin tomorrow.  The primary thing absorbing my attention at the moment is the homework set he assigned to me; it is proving to be very difficult, but I am excited to see if I can find out a good answer (there are different ways of doing this problem).  I will keep you, my captive audience, posted on any future, more interesting developments.

June 11, 2008
     I spent a number of hours on the difficult problem, but to no avail; when I went to ask Dr. Kankelborg for help, he showed me a way that was very simple and straightforward, and which afterwards I thought to myself that I should have seen.  Alas, I find success and failure to both be part of the learning process, and that is indeed why I am here.  I will continue to persevere with my remaining tasks this summer.
     On a brighter note, I had the privilege of meeting Craig DeForest (via telecast), Dr. Kankelborg's co-developer of the software which I will be using a lot this summer, FLUX.  We discussed some of my progress so far in programming languages, and (among other things) what would be a reasonable project for me to focus on in my remaining time here this summer.  We settled on discussing and modeling (with FLUX) a distribution of magnetic field lines which resembles (and receives its name from) a Conestoga Wagon.  I have a paper (coauthored by Drs. Kankelborg and DeForest) on this topic which I will read tomorrow, and an additional paper on the Voronoi method, a way to tessellate the plane perpendicular to a set of magnetic field lines in such a way that the magnetic flux carried by each is distributed appropriately and smoothly (FLUX uses this technique).
     More to follow on these papers and progress made tomorrow in Perl and PDL.

June 12, 2008
     I spent today primarily in attendance of our first lecture on Lang's Encyclopedia of the Sun, and reading the articles that I mentioned yesterday.  The first gave me an appreciation for the Voronoi method (discussed yesterday), and the second deepened my understanding of the dynamics of the system which I will be using FLUX to model.
     Tomorrow I hope to bounce some questions off of Dr. Kankelborg in regards to some of these articles to ensure that I understand the physics involved; I also plan to spend tomorrow and (hopefully) part of the weekend in mastering Perl and PDL.  I have been advised not to try to achieve mastery of these languages, since there is simply too much to do so in just a few days, so I believe that I will settle for a familiarity with the basic concepts involved, and then learn whatever else I need to as I go.

June 13, 2008
     I continued to work on mastery of Perl and PDL.  Only a little bit farther to go.  Talking to Dr. Kankelborg about my project, we were able to find in the Devore and Antiochos article (which discusses the previous work in modeling the Conestoga Wagon phenomenon) the exact conditions under which the model was run; it will be a (relatively) simple matter to translate this into something that FLUX can use.
     I also spent a bit of the weekend reviewing some concepts which were a bit iffy for me, including convolution integrals and Legendre transformations, and reviewing some material from earlier this week.

June 16, 2008
     This morning, I wrapped up my self-directed crash course in Perl and PDL.  We decided today that the next major step that I need to take is to work to get one of Dan Bruder's simpler programs/test cases for FLUX up and running, to ascertain that everything is working correctly.  After that, we also need to take care of getting FLUX installed on helios.
     However, after a lot of struggling and trying various options, I was not able to get any of Dan's programs to run.  Dr. Kankelborg was not able to get anything run either.

June 17, 2008
     I spent today catching up on a lot of miscellaneous tasks that I need to finish up on my computer.  I also spent some time thinking about a problem which has occupied my mind in my spare time (when I'm not working on something directly related to FLUX), which is, how, computationally, can we expect to obtain the magnetic energy contained in a collection of fluxons?  After all, the Voronoi polygons of fluxons toward the perimeter of such a collection would extend to infinity; is there a way to integrate B² analytically to infinity in the case of a general distribution?  Dr. Kankelborg and I spent a good while discussing some options and some things that he had already tried, including various plausible assumptions to make about the distribution of the magnetic flux throughout a given Voronoi polygon.  It's something I plan to keep thinking about.
     In the meantime, we found out today that the reason we could not get any of Dan's old programs to run was because PDL is not functioning correctly on filament (the server we were using)!  So instead, we're planning to just ask Keiji to install the latest version of FLUX onto helios, which is much faster than filament anyway.  Everything should be up and running soon.

June 18, 2008
     I spent today reviewing the Fan & Gibson article on another possible situation that I can work on modeling this summer, if there is time.  This one involves slowly (i.e., sub-Alvènic speeds, to keep the system in quasi-equilibrium) bringing a magnetic flux tube with a large amount of initial magnetic helicity through the photosphere into an otherwise anchored arcade on the solar surface.  If I can get the Devore-Antiochos simulation modeled correctly, then I expect this one will be next on the list.
     I also continued my clandestine investigation into the world of HTML and other programming languages with I expect will come in handy sooner or later.  I ordered 5 books online last night, and one a couple of nights ago, all pertaining to programming.  They should be a good read.
     Hopefully, I will be able to report on palpable progress with respect to FLUX by the end of this week.  Stay tuned to find out.

June 19, 2008
     SUCCESS!!!  Craig (as I shall henceforth refer to Dr. DeForest) gave me a few helpful tips on how I could go about setting up what I needed to get FLUX running properly...and it worked!  Actually, I completed the first successful run sometime last night, but without the X-terminal to display the results.  However, Craig, showed me how to fix that as well, and as I speak a beautiful mess of numbers and pictures is flashing across the background of my screen.  Thus, FLUX is up and operating correctly.
     Late this afternoon, I also ran through my original IDL assignment (cf. my original Semicircles plot) with my final array as the initial conditions to the FLUX program.  The first step was to take my array and convert it using Teddy Wahl's program write_fluxon into a .flx file, which FLUX would accept.  Running Dan Bruder's PDL code (available online here) as before produced the X-terminal and cascade of numbers.  The stable solution my run of FLUX produced was exactly what I expected!  Things are running well.  I expect that the next step will be to actually begin to implement the papers I am supposed to be analyzing into code, and begin to run the tests on them as well.  Also, the remains the question of specifying the orientation of the line-of-sight for the X-terminal window.   How can I change this?  I hope to find this out soon.


June 20, 2008
     I feel a bit silly.  I can change the line of sight in the X-terminal by clicking and dragging.  Genius.
     I set out to create a movie of the relaxation of my Semicircles plot, but have not figure it out yet.  Also, I spent a while beginning to implement the DeVore and Antiochos simulation into code.  I have nothing extensive at this point, but I have made definitive progress.

June 21, 2008
     I succeeded in creating a movie of the relaxation; each frame of the movie is created as a .png file straight from simple_relaxer.  It is necessary to read these files into another file ('list.txt'), and then i was able to write a script that would create a movie variable, open the xstepper and play the movie.

June 26, 2008
     The server was down for a day and a half this week, and I have been somewhat inconsistent with my entries into journals.  However, a quick summary of my week will suffice.
     Given that I had successfully completed a relaxation of my Semicircle plot, the next step was to get to work finding a way to shift the endpoints (the initial 4x4 plot of points that I generated) in a given manner I wish.  After playing with some options, I used object-oriented notation to specify the position of a given vertex (a 3-PDL), which I incremented with another 3-PDL (defined elsewhere).
     Also, since I had a considerable amount of time this week in which helios was unavailable, I made the best of it by upgrading my computer with a number of programming IDE's, and began to familiarize myself with Python and Pascal, in case knowledge of either becomes useful at some point in the future.
     Tomorrow is Friday.

June 27, 2008
     Among other things, I spent today hunting through PDL documentation to determine how to change/select the actual value contained in a 1x1 piddle.  After rummaging through a LOT of dead ends and incomprehensible coding jargon, I finally found what I was looking for.  The at function returns the value at a particular position in a given object as a perl scalar.  For example, I ended up with a sequence of commands that looked something like this:
perldl> $pos = pdl (1, 0.5, 3)
perldl> $h = at($pos,1)    ## OR $h = $pos->at(1)
$h is now equal to 0.5, as though I had said $h = 1./2..  The set function works using a similar syntax.

June 30, 2008
     I spent some of today working on cleaning up my code and making sure it was all well-documented and perspicuous to whomever comes after me next year.  Also, I learned that one way to make your function pause is to use the sleep function: sleep k, where k is the number of seconds you want the program to pause.  Or, if you would like it to pause until you tell it to continue, you can use (in PDL) POSIX::pause(); this will pause the program until you hit CTRL-C to continue.
     Also, last night, as I was reviewing some Python programming basics, and I had a mathematical epiphany pertaining to the Fibonacci series.  Consider any positive integer n greater than 1, and consider the set of Fibonacci numbers less than n.  Then n can be written (in at least one distinct way) as a partial sum over this set of Fibonacci numbers.  The proof of this is a bit trickier, but I think I almost have it.  I'm also trying to think of potential applications, in case this is not just another example of me playing with numbers.  I like to think of the Fibonacci series in this sense as sort of a "naturalized base" for integers great than 2.  It remains for me to see where else I can use this.
     By the way, I am perfectly aware that this has nothing whatsoever to do with solar physics.  I just thought it was cool enough to include in my daily journal entry.

July 8, 2008
     I offer my sincerest apologies for the unseemly gap between my previous entry and this one.  I have spent a significant amount of the disparity in time in Glacier Lake National Park, and it was a wonderful time at that.
     I've been having technical difficulties with my computer, but I think I may soon be able to surmount them, God willing.  I also successfully ran FLUX for the DeVore/Antiochos Wagon formation yesterday, although I eventually had to terminate the process, since it was running a bit long.  I'm also having some problems with the array I'm using to represent the footprints of the vertices (@footprints); hopefully, I'll get these sorted out with Craig's (and/or Laurel's) help soon.  More to follow once I get my computer fully functional again.

July 9, 2008
     Well, this morning my computer is working again.  Rather than fix the original problem (my old profile was corrupted, and my desktop wouldn't load), I just created a new profile and am accessing all of my old information and programs through my old desktop (since I made myself system administrator).
     Now that I can run my computer again, I'm going to try setting the argument for updateneighbors() to <undef> instead of 1; i expect that this will speed up the calculations significantly.  Maybe this will allow me to pinpoint the source of some of my errors.  More to follow.
     A chat with Craig this afternoon informed me that there were some minor modifications that I needed to make to Teddy Wahl's write_fluxon program, which I did.  This has corrected the "label-uniqueness" error i was getting during my runs of FLUX, but not the "Vertex -3" problem, which looks something like the first red line on this page.  Hopefully, we can get this corrected soon.

July 10, 2008
     I caught a few bugs in my script today that have forced me to redo a lot of former work.  However, they are fixed now, and if I can get the "Vertex -3" problem fixed, I should be able to get some good science out of this simulation before the end.

July 14, 2008
     Still no solution the the "Vertex -3" problem, although it could be related to the fact that I do not think we currently have the most recent version of FLUX installed on helios.  I'm going to talk to Dr. Kankelborg and Keiji about this and see if there is anything we can (or should) do.
     I ran a number of Dan Bruder's FLUX analysis programs today on the results of my testrun on the DAWagon for 32 fluxons.  Most of them seemed to come out nicely; it should giv e us an idea of what sorts of improvements can be made to FLUX.  The simulation with 256 fluxons is not yet working, because it does not want to converge on any values.  I'm going to keep working to find out what the problem is.

July 15, 2008
     Today, I am running the 128 and 256 fluxon versions of the DAWagon, and they are both running a bit slower than the others, but are definitely converging.  Hopefully I will soon have some presentable results to be proud of.