Coder Social home page Coder Social logo

rishabdchem / drudge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tschijnmo/drudge

0.0 0.0 0.0 4.28 MB

CAS based on sympy focusing on tensor and noncommutative algebras

Home Page: https://tschijnmo.github.io/drudge

License: MIT License

Python 90.25% C++ 9.15% HTML 0.48% TeX 0.12%

drudge's Introduction

image

image

Drudge

Drudge is a symbolic algebra system built on top of the SymPy library with its primary focus on tensorial and non-commutative algebras. It is motivated by complex symbolic problems in quantum chemistry and many-body theory, but it could be useful for any tedious and error-prone symbolic manipulation and simplification in any problem with indexed quantities, symbolic summations, and non-commutative algebra.

Built on the generic algorithm for the canonicalization of combinatorial objects, like strings and graphs, in libcanon, drudge is able to find a canonical form for mathematical expressions with tensors with symmetries and symbolic summations. For instance, for a 4th-order tensor u with symmetry


uabcd =  − ubacd =  − uabdc = ubadc

expression like


cduacbdρdc − ∑cducabdρdc + ∑cducdbcρcd

can be automatically simplified into a single term like,


3∑cduacbdρdc

despite the initial different placement of the indices to the symmetric u tensor and different naming of the dummy indices for summations.

In addition to the full consideration of the combinatorial properties of symmetric tensors and summations during the simplification, drudge also offers a general system for handling non-commutative algebraic systems. Currently, drudge directly supports the CCR and CAR algebra for treating fermions and bosons in many-body theory, general Clifford algebras, and su(2) algebra in its Cartan-Killing basis. Other non-commutative algebraic systems should be able to be added with ease.

Based on the symbolic results from drudge, a companion package gristmill is able to automatically optimize and generate numerical code. For computations with heavy dependence on tensor contraction and sums of tensor contractions, substantial optimization could be given.

Drudge is developed by Jinmo Zhao and Prof Gustavo E Scuseria at Rice University, and was supported as part of the Center for the Computational Design of Functional Layered Materials, an Energy Frontier Research Center funded by the U.S. Department of Energy, Office of Science, Basic Energy Sciences under Award DE-SC0012575.

drudge's People

Contributors

tschijnmo avatar

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.