I’ve been multitasking in an interesting way. Sort of. I’ve reached a certain point with some computations I am doing that I cannot go beyond by analytic means. This means that I can’t extract the physics I need by doing algebra and other exact manipulations on paper any more. Progress can continue however by using numerical means, employing a computer to solve the highly non-linear equations and extract the juice. There are several steps involved, and ultimately, I want to determine how a certain physical quantity depends on another physical quantity. (I’m sparing you the trouble of knowing what the details of the physical quantities are, since it does not matter for the thing I am trying to tell you. It relates to quantum field theory, gravity, and string theory, which connects the two.)
I can see that dependence quite clearly if I simply plot a graph of one versus the other, and in this case I need the computer to work out what the points on that graph are. I actually don’t know the answer for the cases I really am interested in, nobody does (that’s why it is research!), and so that’s what I want to find. I want lots of points to get a nice smooth graph, so the computer has to compute a lot of points, and I need to run it for a long time since I want it to compute the points very accurately. So I wrote a program (in Maple) to work on the problem, studying just one point initially. That allowed me to delicately find the best paramaters I needed to set up the computer solving a messy non-linear (differential) equation with certain boundary conditions (including one of the physical quantities I am inputting into the system). After a while it finds the solution, giving me the result in a giant set of lists of numbers. Those numbers are then fed into another part of the program that builds another quantity out of them that is then integrated over a certain range, producing one number. That’s the physical quantity that corresponds to that number that went into the boundary conditions of the other problem. This is one point on the graph.
I’ve now written a larger program that embeds the above operation in a loop that simply keeps doing the same operation for several different values of the input parameter, building up a table of results that then at the end gets plotted on a graph. I’ve built in operations for generating the graph and everything, and I’ve tested the program. So of course, I’ve got to test the whole thing on a known problem. I want to benchmark it, as it were, using a version of the problem for which I know the answer. It turns out that this known version has as a result that the dependence that results is simply a straight line. So I’ve set the program running, at full desired accuracy, on this known problem that I’ve already solved fully by hand. The slope of the line should come out right, as well as that it is a straight line, and not some other shape. (This is not a total waste of time – in addition to checking that my program is running correctly, the numbers from this will be useful as a reference for the new situations I want to explore which will have this case sort of lurking in the background. I’ll be able to subtract these numbers off from those results to see the new physics.)
I’ve asked the computer to compute 50 points, and I set it going yesterday evening. Every time it finishes a cycle of the loop I can see when it is done since it dumps data to a file and I can see that the file is updated. From this I can see that it is taking roughly an hour for each point! (I may have overdone the accuracy a bit, but the non-linear diffy is very delicate for Maple to handle, it seems) So this is what I mean by a very long straight line, in the title. Long in time, not space. I check in every hour from other tasks (building a wall in the garden, household tasks of various sorts, preparation for class tomorrow, maybe a little drawing later) to see how it is doing, and kick myself for not setting it to draw the graph-in-progress as it goes along (the example above left is a sample from an earlier test). So I simply have to wait until the end to see the final result.
(A technical note for those of you who might find it interesting. I’ve been doing all this on my work computer, which is faster than my computer at home. I’ve found it very convenient to use the program called Teamviewer, which allows me to open up a screen on my laptop (and ipad) which is in fact the entire desktop of my computer in my office. I can then do things like operate Maple with the full user interface as though I am right there at the desk. It works very well, and is a good substitute for the usual Unix remote displaying of X windows, which does not work here since Maple is not using X.)
I hope that in the morning some time I have the results. I can’t wait to plug in the cases I actually want the answers to!