GithubHelp home page GithubHelp logo

gutfeeling / liepy Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 27 KB

Computes representation matrices for Lie groups

Python 100.00%
lie-groups sympy particle-physics theoretical-physics representation-theory group-theory

liepy's Introduction

LiePy

Computes representation matrices for Lie groups.

How do I get set up?

Clone the repo

git clone https://github.com/gutfeeling/liepy.git
cd liepy

Install dependencies

  1. Create a virtualenv
  • If you want to use python 2

    virtualenv venv
    
  • If you want to use python 3

    virtualenv -p python3 venv
    
  1. Activate the virtualenv
source venv/bin/activate
  1. Install the python modules
pip install -r requirements.txt

You are good to go

  1. Fire up an interpreter and import the important classes
>>> from groups import LieGroup
>>> from representations import Representation

liepy's People

Contributors

gutfeeling avatar riteshksingh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mfkiwl

liepy's Issues

Weyl Dimension and related stuff

Additional Feature

The Weyl dimension formula calculates the dimension of a representation using the highest weight and the list of positive roots. The calculation also requires the sum of all positive roots frequently. Thus it makes sense to add delta=sum of positive roots as a data in LieAlgebra/LieGroup class itself. Further, the representation class should first calculate the Weyl dimension of a given representation and make decisions/suggestions in subsequent methods for any further optimization or for bravely giving up the calculation of representation matrix large dimensions.

Representation Matrix as a Sparse Matrix

Speed+Memory Optimization

The representation matrices for the roots are usually very sparse. Thus it makes more sense to use one of the standard sparse-matrix representation to store these matrices. This reduces the memory needed to store these representation matrices and also speedup the matrix multiplication required for computation of commutators.

Positive roots as a commutator

Speed Optimization request:

A positive root can be written in two ways:
(1) as a nested commutator of the simple root
(2)a commutator of simple root with another positive root lower in weight by one simple root.

The latter representation require only one commutator calculation for each positive root higher than simple root and best suited for computation. We should change the positive root representation to the second type.

list and tuples

We are converting lists to tuples many times because lists cannot be used as dictionary keys. We can try to minimize this conversion (by using tuples wherever possible) and see if this improves runtime.

Speed up scalar product computations

Computing the scalar product for the state given by the lowering chain [2, 3, 5, 4, 6, 3, 4, 2, 3, 1, 0, 2, 1, 5, 3, 4, 2, 3, 5, 6, 4, 3, 2, 1, 0] in the E7 representation [0,0,0,0,0,0,1] takes more than a full minute. This function needs to be optimized somehow.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.