An open API service indexing awesome lists of open source software.

https://github.com/carlobaldassi/rrrmc.jl

Reduced-Rejection-Rate Monte Carlo for Ising spin models
https://github.com/carlobaldassi/rrrmc.jl

ising-spin-models julia mcmc monte-carlo

Last synced: 6 months ago
JSON representation

Reduced-Rejection-Rate Monte Carlo for Ising spin models

Awesome Lists containing this project

README

          

# RRRMC.jl

[![DOCS][docs-img]][docs-url] [![CI][CI-img]][CI-url] [![CODECOV][codecov-img]][codecov-url] [![DOI][zenodo-img]][zenodo-url]

This code implements the Reduced-Rejection-Rate (RRR) Monte Carlo method for Ising spin models described in the paper
*"A method to reduce the rejection rate in Monte Carlo Markov Chains"* by C. Baldassi,
J. Stat. Mech. Theor. Exp., (2017) 3, 033301 [doi:10.1088/1742-5468/aa5335][RRRpaper] ([arXiv][RRRarXiv]).

It also provides:
* a standard Metropolis-Hastings sampler
* a generalized implementation of the BKL method described in the paper
["A new algorithm for Monte Carlo simulation of Ising spin systems"][BKLpaper] by A.B. Bortz, M.H. Kalos and J.L. Lebowitz.
The generalization consists in not requiring that the energy shifts are discrete.
* an implementation of the Waiting time method described in the paper
["Faster Monte Carlo simulations at low temperatures. The waiting time method"][WTMpaper] by J. Dall and P. Sibani.
* an implementation of the "τ-Extremal Optimization" heuristic technique described in the paper
["Optimization with Extremal Dynamics"][EOpaper] by S. Boettcher and A. G. Percus.

The code is written in [Julia]. It requires Julia `1.3` or later.

### Installation

To install the package, use Julia's package manager: from the Julia REPL, type `]` to enter the Pkg REPL mode and run:

```
(v1.3) pkg> add RRRMC
```

Or, equivalently, via the Pkg API:

```
julia> import Pkg; Pkg.add("RRRMC")
```

Dependencies will be installed automatically.

### Documentation

- [**STABLE**][docs-stable-url] — stable version of the documentation
- [**DEV**][docs-dev-url] — *in-development version of the documentation.*

[Julia]: https://julialang.org
[RRRpaper]: https://doi.org/10.1088/1742-5468/aa5335
[RRRarXiv]: http://arxiv.org/abs/1608.05899
[BKLpaper]: https://doi.org/10.1016/0021-9991(75)90060-1
[WTMpaper]: https://doi.org/10.1016/S0010-4655(01)00412-X
[EOpaper]: https://doi.org/10.1103/PhysRevLett.86.5211

[docs-img]: https://img.shields.io/badge/docs-stable-blue.svg
[docs-url]: https://carlobaldassi.github.io/RRRMC.jl/stable

[CI-img]: https://github.com/carlobaldassi/RRRMC.jl/actions/workflows/ci.yml/badge.svg
[CI-url]: https://github.com/carlobaldassi/RRRMC.jl/actions/workflows/ci.yml

[codecov-img]: https://codecov.io/gh/carlobaldassi/RRRMC.jl/branch/master/graph/badge.svg
[codecov-url]: https://codecov.io/gh/carlobaldassi/RRRMC.jl

[zenodo-img]: https://zenodo.org/badge/66179142.svg
[zenodo-url]: https://zenodo.org/badge/latestdoi/66179142