Giter Club home page Giter Club logo

tnsp's Introduction

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.

tnsp's People

Contributors

crimestop avatar hzhangxyz avatar zhangmeng125 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

phaldon

tnsp's Issues

Use single node in simple update by split mpi comm

Simple update is very slow if the mpi job is crossing nodes, because of frequent data transfer. It is possible to split the mpi_comm_world by hostname. and only do simple update in the new subgroup which contains the original rank-0 process. After all, bcast all the data.

Split this repo into several repos

This repo contains several individual package such as lazy.py, tetragono.py, it would be better to split them into several individual repos

Add auxiliary system for PBC lattice

plan

  • Implement raw pbc auxiliary
  • Add high level lattice used to simulate pbc system
  • Check the result and apply Loop-TNR style canonicalization method

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.