Automatic angular-momentum reduction
Project description
In quantum many-body theory, one often encounters problems with rotational symmetry. While methods are most conveniently derived in schemes that do not exploit the symmetry, a symmetry-adapted formulation can lead to orders of magnitude savings in computation time. However, actually reducing the formulas of a many-body method to symmetry-adapted form is tedious and error-prone.
The AMC package aims to help practitioners by automating the reduction process. The unreduced (m-scheme) equations can be entered via an easy-to-use language. The package then uses Yutsis graph techniques to reduce the resulting network of angular-momentum variables to irreducible Wigner 6j and 9j symbols, and outputs the reduced equations as a LaTeX file. Moreover, the package is based on abstract representations of the unreduced and reduced equations in the form of syntax trees, which enable other uses such as automatic generation of code that evaluates the reduced equations.
Installation
Install amc using the pip package manager.
pip install amc
Usage
Prepare a file with the properties of the tensors and the equations to reduce. For example, second-order many-body perturbation theory can be reduced in this way:
# mbpt.amc
declare E2 {
mode=0,
latex="E^{(2)}_{0}",
}
# Hamiltonian
declare H {
mode=4,
latex="H",
}
E2 = 1/4 * sum_abij(H_abij * H_ijab);
Then run the amc program on the input
amc -o mbpt.tex mbpt.amc
The result is
E^{(2)}_{0} = \frac{1}{4} \sum_{a b i j {J}_{0}} \hat{J}_{0}^{2}
H_{a b i j}^{{J}_{0} {J}_{0} 0} H_{i j a b}^{{J}_{0} {J}_{0} 0}
See the User’s Guide for details.
Citing
Releases of this code are deposited to the Zenodo repository. If you use it in research work please cite the version used. Go to the Zenodo record to find bibliographic information for each release.
If you use this code in research work please also cite the following publication
A. Tichai, R. Wirth, J. Ripoche, T. Duguet. Symmetry reduction of tensor networks in many-body theory I. Automated symbolic evaluation of SU(2) algebra. arXiv:2002.05011 [nucl-th]
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file amc-0.9.5.tar.gz
.
File metadata
- Download URL: amc-0.9.5.tar.gz
- Upload date:
- Size: 110.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d6ca6002edb52fe964e1ff3ab4cd7028ff553e767d86dc1ba00a2b6271c6c3b |
|
MD5 | 2b5d483f107045806e6c41440a5190d5 |
|
BLAKE2b-256 | ad0137129b231e3001040f708c89c188ec50e5ccb3acc355e2effafbebc72677 |
File details
Details for the file amc-0.9.5-py3-none-any.whl
.
File metadata
- Download URL: amc-0.9.5-py3-none-any.whl
- Upload date:
- Size: 110.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | faec7b2c585406da787ef327f6f6bbcc07208eb1704656f039a25d6dde1319eb |
|
MD5 | 92f0f21a2945df1b7d88625a3e516164 |
|
BLAKE2b-256 | b1a843b7c431e0e9845691df312e0baa464d023cebe4358be279ebf54f16dfcb |