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
-~----------~----~----~----~------~----~------~--~---

Reply via email to