dwavesystems / dwave-pimc

Apache License 2.0
20 stars 10 forks source link

Use of generic constructor #2

Open quosta opened 2 years ago

quosta commented 2 years ago

I am trying to use this code to achieve different tasks: 1) simulating dwave quantum annealing process. Some questions on the parameters:

2) solve Ising models: s = 1, no transverse field, it should be enough to set Gamma = 0. Am I missing anything? Is it sensible to use this library as such?

jackraymond commented 2 years ago

This code was published in support of this paper (and similar lattice equilibrium studies): https://www.nature.com/articles/s41467-021-20901-5. Although it allows generalization, it is not currently very user friendly - apologies.

  1. This code simulates a single model (i.e some fixed values of A(s) and B(s)). If you need variation of A(s) and B(s) as per annealing make a feature request (it should be added in the near term). I think the fact you cannot do annealing with this code probably makes your other questions mute for now? In any case invTempJ0 and invTempH0 encode the problem you want to solve (e.g. in the application this code was optimized for (but not exclusive to), basically a triangular lattice with all couplers of 1, but you may want to do a more complicated problem type).
  2. If you use this code with Gamma=0 it works fine, and does do classical simulation (Gibbs Updates of classical Ising model). Some of the updates (those relating to non-trivial path integrals) would do nothing, so that adds some inefficiencies, but the algorithm is otherwise not ill-behaved. Again, it doesn't do annealing, so you would be stuck at a fixed temperature.