Giter Site home page Giter Site logo

gharib85 / tensor_networks Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cmendl/tensor_networks

0.0 1.0 0.0 13.83 MB

C implementation of tensor networks for quantum simulations: matrix product states and operators, time evolution (using Trotter splitting), ... Reference implementation for testing using Mathematica

License: BSD 2-Clause "Simplified" License

Makefile 0.09% Mathematica 86.62% C 13.03% C++ 0.26%

tensor_networks's Introduction

Build Status

Tensor networks for quantum simulations

C code using CBLAS and LAPACKE; Mathematica simulation analysis notebooks as illustration and reference implementation for testing.

Features

  • common operations on tensors of arbitrary dimension
  • MPS and MPO structures
  • built-in support for quantum numbers (U(1) symmetries)
  • construction of common Hamiltonians (Ising, Heisenberg, Fermi-Hubbard, Bose-Hubbard) in 1D, by even-odd splitting or as MPO representation; MPO representation from arbitrary operator chain description
  • imaginary and real-time evolution using even-odd splitting
  • time-dynamical correlation functions and OTOCs at finite temperature
  • one-site and two-site local energy minimization using Lanczos iteration
  • preliminary support for PEPS

Quickstart

The code depends on the CBLAS and LAPACKE libraries. These can be installed via sudo apt install libblas-dev liblapacke-dev (on Ubuntu Linux) or similar. Alternatively, the Makefile shows how to use the Intel compiler with MKL.

Call make to build the project. You might have to adapt some parameters in the Makefile beforehand (see the comments there).

The build process generates executable files in the bin subfolder for several types of Hamiltonians and simulation configurations (like computing dynamical correlations or OTOCs). This folder also contains example parameter files. To run the unit tests, cd into the test subfolder and call ./run_tests.

The Mathematica notebooks can be opened by the free CDF player.

Directory structure

  • mathematica: standalone Mathematica reference implementation, with the core routines in the tn_base.m package
  • include, src: source code of the C implementation
  • test: unit tests for the C implementation, using the Mathematica version as reference
  • doc: documentation of the C code (generated by Doxygen)
  • analysis: simulation analysis notebooks, as illustration

License

Copyright (c) 2013-2019, Christian B. Mendl
All rights reserved.
http://christian.mendl.net

This program is free software; you can redistribute it and/or modify it under the terms of the Simplified BSD License http://www.opensource.org/licenses/bsd-license.php

References

  1. U. Schollwöck
    The density-matrix renormalization group in the age of matrix product states
    Ann. Phys. 326, 96-192 (2011) arXiv:1008.3477, DOI
  2. T. Barthel
    Precise evaluation of thermal response functions by optimized density matrix renormalization group schemes
    New J. Phys. 15, 073010 (2013) arXiv:1301.2246, DOI
  3. F. Verstraete, V. Murg, J. I. Cirac
    Matrix product states, projected entangled pair states, and variational renormalization group methods for quantum spin systems
    Adv. Phys. 57, 143-224 (2008) arXiv:0907.2796, DOI

tensor_networks's People

Contributors

cmendl avatar

Watchers

James Cloos 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.