Skip to main content

py3nj

travis

A small python library to calcluate wigner's 3j-, 6j- and 9j- symbols. py3nj is designed to be compatible with numpy's np.ndarray and its calculation is vectorized automatically.

Basic Usage

The basic interfaces are py3nj.wigner3j, py3nj.wigner6j, py3nj.wigner9j, and py3nj.clebsch_gordan.

>>> # Calculate (0/2, 1/2, 1/2,
... #           (0/2, 1/2,-1/2)
... # Note that all the arguments should be doubled
... py3nj.wigner3j(0, 1, 1,
...                0, 1,-1)
0.7071067811865476

>>> # vectorization is supported
... py3nj.wigner3j([0, 2], [1, 0], [ 1, 0],
...                [0, 0], [1, 0], [-1, 0])
array([0.70710678, 0.        ])

>>> # 6J symbol
>>> py3nj.wigner6j([2, 1], [1, 2], [1, 1],
...                [1, 2], [2, 1], [0, 0])
array([0.40824829, 0.40824829])

>>> # 9J symbol
>>> py3nj.wigner9j([2, 2], [4, 4], [2, 2],
...                [2, 4], [2, 6], [2, 2],
...                [2, 2], [2, 4], [2, 2])
array([0.05555556, 0.03651484])

>>> Clebsch Gordanh coefficient
>>> py3nj.clebsch_gordan(2, 2, 4,
...                      2, 0, 2)
0.7071067811865475

>>> # Vectorized calcluation of C.G. coef
... py3nj.clebsch_gordan([2, 1], [2, 1], [4, 0],
...                      [2,-1], [0, 1], [2, 0])
array([ 0.70710678, -0.70710678])

Install

py3nj can be installed through either pip or github repository. You'll likely need to have ninja installed.

Install by pip

pip install py3nj

Install through github

git clone https://github.com/fujiisoup/py3nj
cd py3nj
pip install .

Acknowledgement

py3nj wraps slatec fortran implementation. See http://www.netlib.org/slatec/ for the details.

License

Copyright 2018, py3nj Developers

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Metadata

Release files for py3nj 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py3nj 0.2.1
File Size Uploaded Provenance
py3nj-0.2.1.tar.gz 50.0 kB Without provenance Details

Release files / py3nj-0.2.1.tar.gz

Download URL py3nj-0.2.1.tar.gz
Size 50.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3f9a79b3b18a51570c835c174a941f3cd3b552d1d3414debebeb70ce759512fe
BLAKE2b-256 checksum
How to use checksums
7939608a0b4fa24bd07e42acfbe914eff4f32382e3861d81853d81f2c6d9fa7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Security for py3nj 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page