Coder Social home page Coder Social logo

twesterhout / annealing-sign-problem Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 2.33 MB

๐Ÿ“ Code for the paper "Many-body quantum sign structures as non-glassy Ising models"

Home Page: https://arxiv.org/abs/2207.10675

License: BSD 3-Clause "New" or "Revised" License

Python 86.71% Makefile 2.09% C 1.11% TeX 0.67% Gnuplot 8.67% Shell 0.18% Nix 0.56%
exact-diagonalization many-body-physics neural-network quantum-mechanics spin-models variational-monte-carlo frustrated-magnets

annealing-sign-problem's Introduction

Many-body quantum sign structures as non-glassy Ising models

This is a research project that is not meant for general usage.

Paper | Data

License DOI

The non-trivial phase structure of the eigenstates of many-body quantum systems severely limits the applicability of quantum Monte Carlo, variational, and machine learning methods. Here, we study real-valued signful ground-state wave functions of frustrated quantum spin systems and, assuming that the tasks of finding wave function amplitudes and signs can be separated, show that the signs can be easily bootstrapped from the amplitudes. We map the problem of finding the sign structure to an auxiliary classical Ising model defined on a subset of the Hilbert space basis. We show that the Ising model does not exhibit significant frustrations even for highly frustrated parental quantum systems, and is solvable with a fully deterministic O(K log K)-time combinatorial algorithm (where K is the Ising model size). Given the ground state amplitudes, we reconstruct the signs of the ground states of several frustrated quantum models, thereby revealing the hidden simplicity of many-body sign structures.


If either this code base or the paper has benefited your research, consider citing it:

@article{westerhout2022unveiling,
  title={Unveiling ground state sign structures of frustrated quantum systems via non-glassy Ising models},
  author={Westerhout, Tom and Katsnelson, Mikhail I and Bagrov, Andrey A},
  journal={arXiv preprint arXiv:2207.10675},
  year={2022}
}

A few words about the data

Our analysis consists of multiple stages.

The first stage is running the exact diagonalization for all studied models. We used SpinED version 4c3305a to perform the diagonalization.

The commands are of the form

OMP_NUM_THREADS=`nproc` /path/to/SpinED-4c3305a /path/to/input.yaml

Both the input files and the output files are located in the physical_systems/ folder:

physical_systems
โ”œโ”€โ”€ data-small
โ”‚ย ย  โ”œโ”€โ”€ heisenberg_kagome_16.h5
โ”‚ย ย  โ”œโ”€โ”€ heisenberg_kagome_18.h5
โ”‚ย ย  โ”œโ”€โ”€ j1j2_square_4x4.h5
โ”‚ย ย  โ”œโ”€โ”€ sk_16_1.h5
โ”‚ย ย  โ”œโ”€โ”€ sk_16_2.h5
โ”‚ย ย  โ””โ”€โ”€ sk_16_3.h5
โ”œโ”€โ”€ data-large
โ”‚ย ย  โ”œโ”€โ”€ heisenberg_kagome_36.h5
โ”‚ย ย  โ”œโ”€โ”€ heisenberg_pyrochlore_2x2x2.h5
โ”‚ย ย  โ””โ”€โ”€ sk_32_1.h5
โ”œโ”€โ”€ generate_sk.py
โ”œโ”€โ”€ heisenberg_kagome_16.yaml
โ”œโ”€โ”€ heisenberg_kagome_18.yaml
โ”œโ”€โ”€ heisenberg_kagome_36.yaml
โ”œโ”€โ”€ heisenberg_pyrochlore_2x2x2.yaml
โ”œโ”€โ”€ j1j2_square_4x4.yaml
โ”œโ”€โ”€ sk_16_1.yaml
โ”œโ”€โ”€ sk_16_2.yaml
โ”œโ”€โ”€ sk_16_3.yaml
โ””โ”€โ”€ sk_32_1.yaml

All the HDF5 (.h5) files are available for download from Zenodo

Figure 2

To generate the data, we used make small, for plotting, we used this script. Raw data can be found on Surfdrive:

experiments
โ”œโ”€โ”€ ...
โ”œโ”€โ”€ heisenberg_kagome_16.csv
โ”œโ”€โ”€ heisenberg_kagome_18.csv
โ”œโ”€โ”€ j1j2_square_4x4.csv
โ”œโ”€โ”€ sk_16_1.csv
โ”œโ”€โ”€ sk_16_2.csv
โ””โ”€โ”€ sk_16_3.csv

Figure 3a

To generate the data, we used make experiments/couplings/%.csv where % is heisenberg_kagome_16, heisenberg_kagome_18, or sk_16_3. For plotting, this script was used. Raw data can be found on Surfdrive:

experiments/couplings
โ”œโ”€โ”€ heisenberg_kagome_16.csv
โ”œโ”€โ”€ heisenberg_kagome_18.csv
โ”œโ”€โ”€ j1j2_square_4x4.csv
โ”œโ”€โ”€ sk_16_1.csv
โ”œโ”€โ”€ sk_16_2.csv
โ””โ”€โ”€ sk_16_3.csv

Figure 3b

To generate the data, we used make is_frustrated. For plotting, this script was used. Raw data can be found on Surfdrive:

experiments/is_frustrated
โ”œโ”€โ”€ heisenberg_kagome_16.csv
โ”œโ”€โ”€ heisenberg_kagome_18.csv
โ”œโ”€โ”€ j1j2_square_4x4.csv
โ”œโ”€โ”€ sk_16_1.csv
โ”œโ”€โ”€ sk_16_2.csv
โ””โ”€โ”€ sk_16_3.csv

Table 1

The data was generated using make quality_check.

Figure 4

To generate the data, we used make experiments/noise/%.csv where % is heisenberg_kagome_16, heisenberg_kagome_18, or sk_16_3. For post-processing, we used the annealing_sign_problem.common.postprocess_influence_of_noise function. For plotting, this script was used. Raw data can be found on Surfdrive:

experiments/lilo/noise/
โ”œโ”€โ”€ heisenberg_kagome_16.csv
โ”œโ”€โ”€ heisenberg_kagome_16_stats.csv
โ”œโ”€โ”€ heisenberg_kagome_18.csv
โ”œโ”€โ”€ heisenberg_kagome_18_stats.csv
โ”œโ”€โ”€ j1j2_square_4x4.csv
โ”œโ”€โ”€ j1j2_square_4x4_stats.csv
โ”œโ”€โ”€ sk_16_1.csv
โ”œโ”€โ”€ sk_16_1_stats.csv
โ”œโ”€โ”€ sk_16_2.csv
โ”œโ”€โ”€ sk_16_2_stats.csv
โ”œโ”€โ”€ sk_16_3.csv
โ””โ”€โ”€ sk_16_3_stats.csv

Figure 6

The data was generated using make pyrochlore_32, make kagome_36, or make sk_32_1. The Makefile also accepts the NOISE and CUTOFF arguments that can be used to analyze the influence of noise in the amplitudes and to tune the cutoff rate for cluster extensions, respectively. The jobs generate files that look like:

...
โ””โ”€โ”€ noise_7.9e-01
    โ””โ”€โ”€ cutoff_2e-6
        โ”œโ”€โ”€ kagome_36.csv7665204
...

the number appended to the file name indicates the job id. In this way, one can start multiple independent jobs to gather more statistical data. The raw data that we generated that way can be found in the experiments/lilo and experiments/snellius directories on Surfdrive. Keep in mind, that not all of the data was used for plotting.

The data was the pre-processed using this script to generate various probability distributions. We then used plot_greedy_overlap_density.gnu, plot_overlap_integrated.gnu, and plot_size_density.gnu for plotting.

Figure 7

The data from Figure 6 was reused. The plotting was done with this script.

Supplemental information

Data for the figures in the Supplemental Information were be generated similarly to those in the main text.

annealing-sign-problem's People

Contributors

twesterhout avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ischurov

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.