Skip to content

USTC-TNS/TNSP

Repository files navigation

TNSP · https://img.shields.io/github/v/release/USTC-TNS/TNSP.svg?style=flat-square https://img.shields.io/github/license/USTC-TNS/TNSP.svg?style=flat-square https://img.shields.io/github/actions/workflow/status/USTC-TNS/TNSP/build.yml.svg?style=flat-square

The TNSP(tensor network state packages) framework is developed by CAS Key Laboratory of Quantum Information, University of Science and Technology of China, and Institute of Artificial Intelligence, Hefei Comprehensive National Science Center, to streamline the development of tensor network state(TNS) methods, by abstracting the details of tensor types, whether they are symmetry tensors, fermion tensors, or conventional tensors. It offers a user-centric interface that facilitates the application of popular TNS approaches, particularly for the projected entangled pair states(PEPS), including the simple update, and gradient optimization, and various sampling techniques. The design of the framework is inherently flexible, allowing users to seamlessly integrate custom physics physical models and optimization strategies via Python3 plugins.

The framework comprises various packages:

  • =TAT= : the core tensor package to provide a unified interface for various types of tensor such as Abelian symmetry tensors and fermion tensors, written in C++, and providing a Python interface.
  • =tetragono= : a tensor network state package offering a user-friendly unified interface for various TNS methods across different physics models and tensor types.
  • =tetraku= : a collection including physical models and algorithm customization for tetragono.
  • =lazy_graph= : an auxiliary package to facilitate lazy evaluation mechanisms in tetragono.
  • =PyScalapack= : an auxiliary package to offer a Python interface for ScaLAPACK within tetragono.
  • =tnsp_bridge= : an auxiliary package to enable format conversion with older TNSP versions.

For detailed package installation and usage, please refer to the respective subdirectories or chapters. If you are reading this manual in PDF version, some links to directories or files may be broken. For a better experience, refer to this manual in the GitHub repository.

Contributing

Contributions are welcome and see =CONTRIBUTING.org= for details.

License

Distributed under the GPLv3 License. See =LICENSE.rst= for more information.