Skip to main content

Yuzuha: SU(2) Protocol for Tensor Networks

Project description

Yuzuha SU(2) Protocol

PyPI Version License Documentation Python Version Rust Coverage Status

Yuzuha is a high-performance library for computing SU(2) recoupling coefficients in tensor network applications, providing efficient implementations of X-symbols (recoupling coefficients for arbitrary tensor network contractions) and R-symbols (axes permutation). The library features automatic database caching for computed canonical bases, enabling significant performance improvements for repeated calculations. Available for both Rust and Python, and optimized as the recoupling engine for the Nicole tensor library.

Features

  • X-symbols: Complete computation for arbitrary tensor network contractions
  • R-symbols: Tensor axis permutation transformations
  • Clebsch-Gordan (CG) coefficients: Real-valued Condon-Shortley convention with automatic caching
  • Invariant metric: Full support for arbitrary arrow directions via metric tensor
  • Outer multiplicity (OM) enumeration: Systematic enumeration of internal spin configurations
  • CG database: SQLite database for CG bases with automatic connection management
  • Python bindings: High-performance Python interface with NumPy integration
  • Type safety: Extensive use of Rust's type system for correctness
  • Comprehensive tests: >95% code coverage with unit and integration tests

Database Caching

Yuzuha automatically caches computed canonical basis data in an SQLite database for significant performance improvements on repeated calculations.

  • Persistent storage: Cached data survives between program runs
  • Thread-safe: Automatic connection management with mutex protection
  • Automatic: No explicit connection management needed
  • Efficient: Subsequent computations with same spin configurations are near-instantaneous

Conventions

Clebsch-Gordan Coefficients

Yuzuha uses the Condon-Shortley convention for Clebsch-Gordan (CG) coefficients, which describe the coupling of two angular momentum states:

$$C^{j_3 m_3}_{j_1 m_1, j_2 m_2} \equiv \langle j_1 m_1, j_2 m_2 | j_3 m_3 \rangle$$

These coefficients satisfy several important properties:

  • Real-valued: All CG coefficients are real numbers in the Condon-Shortley convention
  • Orthonormality: The coefficients form an orthonormal basis: $$\sum_{m_1, m_2} \langle j_1 m_1, j_2 m_2 | j_3 m_3 \rangle^2 = 1$$
  • Selection rules: Non-zero coefficients require:
    • Magnetic quantum number conservation: $m_1 + m_2 = m_3$
    • Triangle inequality: $|j_1 - j_2| \leqslant j_3 \leqslant j_1 + j_2$
    • Integer total spin: $j_1 + j_2 + j_3 \in \mathbb{Z}$

The library automatically caches computed CG coefficients in an SQLite database for efficient reuse across calculations.

Arrow Directions and the Invariant Metric

In tensor network diagrams, tensor edges can point either inward (incoming) or outward (outgoing), corresponding to primal and dual spaces, respectively. The invariant metric $g$ implements arrow reversal transformations:

$$g^{(j)}{m,m'} = (-1)^{j-m} \delta{m,-m'}$$

This metric tensor allows seamless conversion between incoming and outgoing edges while maintaining the correct sign conventions. Arrow inversion from incoming to outgoing uses the metric tensor $g$, while inversion from outgoing to incoming uses the inverse transformation $g^{-1}$.

Fusion Trees

Yuzuha represents tensor network contractions using left-associative fusion trees, which provide a systematic way to couple multiple angular momenta:

  • Left-associative structure: For $n$ spins, the coupling proceeds sequentially from left to right: $$(((j_1 \otimes j_2) \otimes j_3) \otimes \cdots) \otimes j_n$$

  • Internal spins ($\alpha$): Each intermediate fusion step produces an internal spin quantum number. For $n$ external edges, there are $n-2$ internal spins that characterize the coupling path.

  • Outer Multiplicity (OM) index ($\mu$): When multiple internal spin configurations (fusion patterns) lead to the same total coupling, they are distinguished by the OM index placed at the end of the canonical bases.

  • CG bases normalization: The canonical basis is normalized with respect to the OM space. As a result, 3rd order CG bases acquire a scaling factor relative to the standard CG coefficients.

The left-associative structure ensures a unique canonical form for each tensor network, enabling efficient computation and caching of recoupling coefficients.

Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, improving algorithms, or enhancing documentation, your help is appreciated. You can also contribute by requesting new features or reporting performance issues.

Yuzuha is created and maintained by Changkai Zhang as part of the Ideogenesis-AI effort in studying quantum many-body systems. If you have questions about contributing to the project or are interested in collaboration opportunities, please feel free to open an issue on GitHub or contact the maintainer directly.

License

Yuzuha is licensed under the GNU General Public License v3.0 (GPL-3.0). This means you are free to use, modify, and distribute this software under the terms of the GPL-3.0 license. We encourage you to share any improvements you make back to the community, helping Yuzuha grow and benefit all users. See the LICENSE file for the full license text. For more information about GPL-3.0, visit https://www.gnu.org/licenses/gpl-3.0.html

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

yuzuha-0.1.5.tar.gz (4.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

yuzuha-0.1.5-cp311-abi3-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11+Windows x86-64

yuzuha-0.1.5-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ x86-64

yuzuha-0.1.5-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARM64

yuzuha-0.1.5-cp311-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

yuzuha-0.1.5-cp311-abi3-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

Details for the file yuzuha-0.1.5.tar.gz.

File metadata

  • Download URL: yuzuha-0.1.5.tar.gz
  • Upload date:
  • Size: 4.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuzuha-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b6c77b8ac9244fff777690d5eb17c142230fc4bf8c6fead99e2f4f69f30d4c2b
MD5 a1fc6904b70ed72b03246558a0ab3c03
BLAKE2b-256 e48b65cc8a6bbf2c782df42824b24e3b6d575fbeee65b26ef3a20a0588f66128

See more details on using hashes here.

File details

Details for the file yuzuha-0.1.5-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: yuzuha-0.1.5-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuzuha-0.1.5-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 08de4b881692dd9eaf57b5a5e46aea438b3906b1bbd32e0f231aa84d7e70c912
MD5 ab72438a9770bf2dc2842b9ae5fd0993
BLAKE2b-256 19b8ea3961a1c29c5e88c795f5e9f69c5c7583a446537f295e39a52a196cfc35

See more details on using hashes here.

File details

Details for the file yuzuha-0.1.5-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: yuzuha-0.1.5-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.11+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuzuha-0.1.5-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f000aaf6496ae702a401aed3411a50547b3e28b3fdd81eba3c769333c0bb943
MD5 e4f29f3d240828591fbf5e6c24497bda
BLAKE2b-256 db06d51ebc334658cde07ce7d5683d8f9ef38044baab79286510cb45384b4809

See more details on using hashes here.

File details

Details for the file yuzuha-0.1.5-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: yuzuha-0.1.5-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.11+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuzuha-0.1.5-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7af7b2022fbe118273513c2d90676a3aa9512cdc2de0859c85f8267f29c486fb
MD5 5e1ae42b3b9a18a2e4cfa248f3de1ed3
BLAKE2b-256 986f83a4a38c6bac27219fa81471c13143b9b179bb02c0072dc7a217d22a3e1d

See more details on using hashes here.

File details

Details for the file yuzuha-0.1.5-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: yuzuha-0.1.5-cp311-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.11+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuzuha-0.1.5-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 744a17ba930429d104b8e4d8115c048ae164f2bf56eb267077cd75a5d2261d93
MD5 30f67f0297e8bdc82bc2609a530da594
BLAKE2b-256 1eb75a4163840ccc94957c0eddbd8c0fe24d0e003785aea827213097c83c6326

See more details on using hashes here.

File details

Details for the file yuzuha-0.1.5-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: yuzuha-0.1.5-cp311-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yuzuha-0.1.5-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bf261e9f1948582f264ff1010b1a3a4c92359545891a0e6b7223f85282eae2d6
MD5 6dafb215ca802706120c9c5afb9b6423
BLAKE2b-256 ba5168d0d242d947d9561ebfad7c7d3e6b4fecabb1ac376392203092ea1a006c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page