On Sun, Jul 19, 2009 at 3:33 PM, davidp<dav...@reed.edu> wrote: > > I have been working on a Sage package for doing computations involving > the > Abelian Sandpile Model. In addition, this summer I am the mentor for > a Google > Summer of Code project which is a java application for visualizing and > analyzing sandpiles. The latest addition to the java program has been > the > ability to interact with Sage. For a glance at what has been going > on, I would > recommend: > > www.reed.edu/~davidp/sand > > especially > > www.reed.edu/~davidp/sand/sage/html/sage_sandpiles.html > > and > > www.reed.edu/~davidp/sand/program/program.html > > It would be great to get feedback from Sage users. The Google Summer
I've read the papers on RR spaces of graphs, and related papers using tropical curves, so am very happy to see that this is implemented. Long ago, I looked at the chip-firing papers. However, I had no idea that these topics were related and have forgotten what I read about that aspect anyway. You asked for comments. Looking at http://people.reed.edu/~davidp/sand/sage/html/sage_sandpiles.html#discrete-riemann-surfaces and http://people.reed.edu/~davidp/sand/sage/html/sage_sandpiles.html#projective (in other words looking at the *output* of your code and not the code itself), I have a few observations (which may or may not be useful or correct:-): 1) it seems to me that you have implemented rather hackish methods for constructing and manipulating divisors on graphs. It would be nice if they were implemented in a way similar to divisors on curves (ie, as a class with methods for addition, etc). 2) It seems you have a included some print statements for the r_of_D function: sage: r_of_D = S.r_of_D(D)[0] 0 1 2 sage: r_of_F = S.r_of_D(F)[0] 0 though I am not sure. I would suggest having r_of_D return r(D) by default and then have an option 'algorithm = "verbose"' or something if you want to output the divisor F as well. I suggest eliminating the print statements. Typically and assignment in Python (such as r_of_D = S.r_of_D(D)[0]) has no values printed to the screen. 3) You seem to have a non-standard method of describing a ring in Sage: sage: g = {0:{},1:{0:1,3:1,4:1},2:{0:1,3:1,5:1}, 3:{2:1,5:1},4:{1:1,3:1},5:{2:1,3:1}} sage: S = Sandpile(g, 0) sage: S.ring() // characteristic : 0 // number of vars : 6 // block 1 : ordering dp // : names x_5 x_4 x_3 x_2 x_1 x_0 // block 2 : ordering C It seems to me the print method should, again, mirror that of the base_ring method for an algebraic curve. Overall though I think this is extremely interesting code and I'm looking forward to playing with it a lot more! This week I'm helping with advising new freshmen who will be starting classes this fall, but will try to give you more detailed comments as soon as I can. > of Code > project will end in August, so if there are any features you would > like us to > add to the java application, please let us know as soon as possible. > > Thanks, > Dave > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---