GSoC Report 2013 Mary Clark: Lie Algebras

Aaron Meurer edited this page Dec 28, 2014 · 1 revision
Clone this wiki locally

Intro

I'm Mary Clark, and my GSOC project was to implement a Lie algebra module for SymPy that had functionality relating to the main simple Lie algebras.

What I accomplished

-Classes for types A, B, C, D, E, F, and G which stores information about their Dynkin diagrams, Cartan matrices, roots, and size

-A class, RootSystem, which allows users to work with the root system of a given Lie algebra. It can generate all the roots of a Lie algebra, and has methods for adding roots together.

-A class WeylGroup, which is about the Weyl group of a given Lie algebra. It gives the size and name of a given Weyl group as well as the matrix form of an element, and an element’s order.

-Methods for displaying the Cartan matrix and Dynkin diagram of a Lie algebra.

Overall, I believe that I accomplished nearly everything that I planned to in my application. Probably the main thing that I didn't accomplish was being able to generate the commutation relations for the Lie algebras; this turned out to be much more complicated mathematically and computationally than I had anticipated. Additionally, rather than utilising the fact that Weyl groups are permutation groups to compute the order of a Weyl group element, I merely brute forced it, using the matrix form of the element.

Post GSOC:

I plan on continuing to contribute to SymPy, especially with regards to the Lie algebra module. I can think of several things off hand that I would like to implement, the first of which being the aforementioned cleverer way of calculating the order of a Weyl group element. It would also probably be handy to implement the affine simple Lie algebras, and perhaps a method that lets a user enter a Cartan matrix, and then have the module recognise it and then allow the user to work with the corresponding Lie algebra.

General comments

I had a really great time doing GSOC this summer; it was a wonderful experience for me. I'd like to particularly thank David Joyner, my mentor, as well as Aaron and Ondrej, for their help in teaching me things about git, and help debugging my code.