Code Monkey home page Code Monkey logo

tqc's Introduction

TQC

Source codes for implementation of the Kitaev Honeycomb model and related calculations.

This package was developed for research published in arXiv:2003.07280 .

Documentation

NetKet Realization

  • examples/example.ipynb

    Examples in Jupyeter notebooks

    Some basic examples of using built-in functions are demonstrated in examples/example.ipynb.

  • source/show.py

    • a utility script to show .log file generated by netket, either gui or cui
    • see more usages with ./show.log --help
  • source/honeycomb.py

    • some utility functions which will be used in many other codes. It includes, get_graph(), get_hamiltonian(), exact_diag(), gs_energy(), rbm(), measure() and flip_spins().
    • get_graph() is the most useful one. It generates an arbitary size honeycomb graph.
    • get_hamiltonian() uses get_graph() to get the Hamiltonian for an arbitary size honeycomb model.
    • after creating hamiltonian(by get_hamiltonian) and machine(derictly use netket), pass them into rbm() to train it.
    • exact_diag() gets energy level by directly diagnolize. gs_energy() gets gs energy by the analytic formula.
    • measure() is actually a lr=0 rbm().
    • flip_spins() manages to flip a spin by modifing parameters of an rbm.
    • This script is supposed to only be imported and used in other scripts. See contents of calc_gs.py as an example.
  • source/calc_gs.py

    • use honeycomb.py to calc gs.

PyTorch Realization

  • source_torch/honeycomb.py

    • The conterpart of honeycomb.py in "source/honeycomb.py". Including
      • gen_H(): generate a Hamiltonian. Used in rbm_2x2.py.
    • add other varieties to support torch: gen_ops_npmat, gen_ops_torchsparse, gen_H_torchsparse, gen_shift_sym.
  • source_torch/rbm_eig.py

    • Exact diagnolize Hamiltonian
  • source_torch/rbm_2x2.py

    • Scripts for 2x2 lattice.
    • Esay to understand.
  • source_torch/rbm_3x3.py

    • Scripts for 3x3 lattice.
    • "Projection method" and "pre-train technology" are used.
  • source_torch/Full-36-14.275.pkl

    • network data for an rbm which can achieve -14.275 for 3x3 honeycomb model.
  • source_torch/operators_3x3

    • Operators for 3x3 lattice.

In order to cite this work, use the following:

bibtex

```
@misc{noorm2020restricted,
	title={Restricted Boltzmann machine representation for the groundstate and excited states of Kitaev Honeycomb model},
	author={Mohammadreza Noormandipour and Youran Sun and Babak Haghighat},
	year={2020},
	eprint={2003.07280},
	archivePrefix={arXiv},
	primaryClass={cond-mat.dis-nn}
}
```

Installation

We tried both NetKet and PyTorch. PyTorch is easy to install but NetKet is not. To install NetKet, you can try

Conda

  • Build the conda environment using installation/environment.yml and activate it:
    conda env create -f environment.yml
    conda activate tqc
    
  • Install mpich and then NetKet:
    pip install netket
    

Docker

tqc's People

Contributors

babakhaghighat avatar mrnp95 avatar whymustihaveaname avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

tqc's Issues

flipping couplings J for the given list of even sites!

Looking back at the section 4 of the draft, we concluded that we just need to change the sign of the J couplings to realize the vortices.

As explained in the email:

If you mean the honeycomb.flip_spins() function, it is playing with the RBM parameters. But as I mentioned in the previous email, we want to flip the sign of J_{x,y,z}. I see that in the honeycomb.get_hamiltonian(size,flip=[],show=True), you are getting the sites for which you want to flip the sign of J. But you are also making changes in honeycomb.get_graph_reza(size,flip=[],show=True) for the same sites. Why is that? graph should remain the same, right?

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.