QuantumKitHub/TensorKit.jl
A Julia package for large-scale tensor computations, with a hint of category theory
What it solves
TensorKit.jl provides a framework for large-scale tensor computations, specifically designed for tensors with symmetries. It solves the problem of efficiently representing and manipulating these tensors—which are often invariant under symmetry groups—to preserve these symmetries and optimize performance, particularly for simulating quantum many-body systems.
How it works
The package uses a structure based on category theory to represent tensors as maps between spaces. It provides the TensorMap type and methods for tensor contractions and decompositions. It leverages MatrixAlgebraKit.jl for performance-critical tensor factorizations (such as SVD, QR, and eigenvalue decompositions) and integrates with TensorOperations.jl for high-level tensor contractions via the @tensor macro.
Who it’s for
Researchers and developers working on tensor network algorithms and the simulation of quantum many-body systems who need to handle tensors with complex symmetry properties.
Highlights
- Symmetry-Aware Computations: Specifically designed to handle tensors invariant under symmetry groups, preserving these symmetries during operations.
- Advanced Factorizations: Supports a wide range of decompositions including truncated SVD, eigenvalue decompositions, and polar decompositions via
MatrixAlgebraKit.jl. - Extensible Symmetry Support: While shipping with common symmetries, it can be extended via packages like
SUNRepresentations.jlfor SU(N) support. - Integration with Tensor Networks: Serves as the foundation for higher-level libraries like
MPSKit.jl,MERAKit.jl, andPEPSKit.jl.
Related
- Project
- Project
- Project
- Project
- Project