Markov chain Monte Carlo solver for lattice spin systems implemented in Julialang
Markov chain Monte Carlo solver for finite temperature problem of lattie spin system implemented by Julia language.
Pkg> add SpinMonteCarlo
The following program calculates temperature v.s. specific heat of the ferromagnetic Ising model on a $16\times 16$ square lattice by Swendsen-Wang algorithm.
using SpinMonteCarlo
using Printf
const model = Ising
const lat = "square lattice"
const L = 16
const update = SW_update!
const Tc = 2.0/log1p(sqrt(2))
const Ts = Tc*range(0.85, stop=1.15, length=31)
const MCS = 8192
const Therm = MCS >> 3
for T in Ts
params = Dict{String,Any}("Model"=>model, "Lattice"=>lat,
"L"=>L, "T"=>T, "J"=>1.0,
"Update Method"=>update,
"MCS"=>MCS, "Thermalization"=>Therm,
)
result = runMC(params)
@printf("%f %.15f %.15f\n",
T, mean(result["Specific Heat"]), stderror(result["Specific Heat"]))
end
Ising
modelQ
state Potts
model
XY
modelQ
state Clock
modelAshkinTeller
modelS
QuantumXXZ
model
chain lattice
L
bond-alternating chain lattice
L
square lattice
L * W
J1J2 square lattice
L * W
triangular lattice
L * W
cubic lattice
L * W * H
fully connected graph
N
local_update!
SW_update!
Wolff_update!
loop_update!
Ising
, Potts
Magnetization
|Magnetization|
Magnetization^2
Magnetization^4
Binder Ratio
Susceptibility
Connected Susceptibility
Energy
Energy^2
Specific Heat
XY
, Clock
|Magnetization|
|Magnetization|^2
|Magnetization|^4
Binder Ratio
Susceptibility
Connected Susceptibility
Magnetization x
|Magnetization x|
Magnetization x^2
Magnetization x^4
Binder Ratio x
Susceptibility x
Connected Susceptibility x
Magnetization y
|Magnetization y|
Magnetization y^2
Magnetization y^4
Binder Ratio y
Susceptibility y
Connected Susceptibility y
Helicity Modulus x
Helicity Modulus y
Energy
Energy^2
Specific Heat
QuantumXXZ
Magnetization
Magnetization^2
Magnetization^4
Binder Ratio
Susceptibility
Energy
Energy^2
Specific Heat
Model
Update Method
@parallel for
or pmap
.Yuichi Motoyama, the University of Tokyo, 2016-
This package is distributed under the MIT license.