Skip to content
/ TQC Public

Source codes for implementation of the Kitaev Honeycomb model!

Notifications You must be signed in to change notification settings

mrnp95/TQC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Source codes for implementation of the Kitaev Honeycomb model!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages