Giter Club home page Giter Club logo

uhlmann-fidelities-from-tensor-networks's Introduction

In this folder you can find Python 3/NumPy implementations of the tensor network methods described in the paper "Uhlmann fidelities from tensor networks". This code can be used to reproduce the benchmark results for the Ising model, shown in the paper. It should not be considered a reference implementation, as it is simply a semi-cleaned snap shot of the author's personal codebase. It includes unused, possibly broken bits, does certain things in unnecessarily complicated and over general ways, and is conversely ad hoc at other times. The main purpose of the code is to function as the ultimate reference for how the results in the paper were produced, and at the same time as a proof that the algorithms described in the paper really do produce the plots shown.

The main content is in the files MPS/UMPS.py and MPS/McMPS.py. UMPS.py implements a class for uniform, infinite Matrix Product States. McMPS implements a class for infinite Matrix Product States, with a non-uniform window in the middle, and uniform parts at the ends. In these two files you can find all the functions for evaluating Uhlmann fidelities, as described in the paper. These two are also the most polished of the source code files, and should be quite readable. Note that the core content of implementing what the paper describes, is in a small handful of functions in these two files. Everything else in this folder is infrastructure built to produce benchmark results for the Ising model.

The rest of the source code divides into three categories:

  1. Tensor network packages The code makes extensive use of the tensors, ncon, and tntools packages, which provide basic tensor network routines, as well as some generally useful convenience classes and methods. These packages can also be found at https://github.com/mhauru.

  2. Plotting code Quite self-explanatory. See the the files plot_*.py.

  3. Supporting code and files This includes for instance the files in the folder confs, which specify the parameters for the various Python files. Most importantly, this also includes the makefile. It is set up in such a way, that on Unix systems simply running make should generate all the benchmark results and plots thereof. Other commands such as make data_quench_magnetization and make plots_convergence can be used to only produce some of the data/plots. See the makefile for more details.

Note that some of the data uses somewhat high bond dimensions, and the MPS implementation provided here also isn't the most performant. Running make should be possible on most modern personal computers, but may take a day or so to finish. One can of course set up parallel jobs on a cluster to speed things up.

The code is licensed under the MIT license, as described in the file LICENSE.

For any questions, or help with using the code, please contact Markus Hauru at [email protected].

uhlmann-fidelities-from-tensor-networks's People

Contributors

mhauru avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

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.