yomichi / ChainDiag.jl

fulldiag solver for finite-T problem of XXZ chain and boson chain

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChainDiag.jl

Fulldiag solver for finite temperature problem of XXZ spin model and softcore Bose Hubbard model on a periodic chain lattice.

Spin length S and the maximum number of partcles on each site M can take any value, provided sufficiently large RAM and fast CPU.

Install

julia> Pkg.clone("https://github.com/yomichi/ChainDiag.jl")

Short sample

The following example solves hardcore Bose-Hubbard model:

julia> using ChainDiag

julia> M=1; L=6; t=1.0; V=0.0; U=0.0; mu=0.0;

julia> solver = BosonChainSolver(M, L, t=t, V=V, U=U, mu=mu);

julia> beta=10.0; ntau=10;

julia> res = solve(solver, 10.0, 10); # => Dict{String,Any}

julia> res["Energy"] # energy density
-0.6658339097820527

julia> res["Total Energy"]
-3.995003458692316

julia> res["Specific Heat"]
0.04421188790391106

julia> res["Order Parameter"] # particle density n[ik]
4-element Array{Float64,1}:
  0.4999999999999998
  4.1597255959636036e-17
 -2.7248108013632085e-17
 -1.142555719539883e-16

julia> res["Susceptibility"] # for order parameter
4-element Array{Float64,1}:
 0.015539399997731351
 0.08373077862492564
 0.11225195475203074
 0.4167919066060102

julia> res["Structure Factor"] # S[itau,ik]
10×4 Array{Float64,2}:
 1.25155  0.166667     0.333333     0.498446
 1.25155  0.0226205    0.0167645    0.0478126
 1.25155  0.00307281   0.000868712  0.00610676
 1.25155  0.000418025  4.94162e-5   0.000819932
 1.25155  5.79739e-5   3.607e-6     0.000112829
 1.25155  1.55311e-5   7.42208e-7   2.99855e-5
 1.25155  5.79739e-5   3.607e-6     0.000112829
 1.25155  0.000418025  4.94162e-5   0.000819932
 1.25155  0.00307281   0.000868712  0.00610676
 1.25155  0.0226205    0.0167645    0.0478126

julia> res["Temperature Green's Function ac in r"] # G[itau,ir] = - <a(ir,tau) c(1,0)>
10×6 Array{Float64,2}:
 -0.5        -0.332917   -0.222222   -0.221945   -0.222222   -0.332917
 -0.194659   -0.180486   -0.167477   -0.167342   -0.167477   -0.180486
 -0.107583   -0.106152   -0.104765   -0.104727   -0.104765   -0.106152
 -0.0666032  -0.0664507  -0.0663039  -0.0662943  -0.0663039  -0.0664507
 -0.0467005  -0.0466832  -0.0466672  -0.0466648  -0.0466672  -0.0466832
 -0.040697   -0.0406929  -0.0406894  -0.0406883  -0.0406894  -0.0406929
 -0.0467005  -0.0466832  -0.0466672  -0.0466648  -0.0466672  -0.0466832
 -0.0666032  -0.0664507  -0.0663039  -0.0662943  -0.0663039  -0.0664507
 -0.107583   -0.106152   -0.104765   -0.104727   -0.104765   -0.106152
 -0.194659   -0.180486   -0.167477   -0.167342   -0.167477   -0.180486

julia> res["Temperature Green's Function ac in k"] # G[itau,ik]
10×4 Array{Float64,2}:
 -1.83222   -0.38875      -0.166805     -0.0566659
 -1.05793   -0.0403257    -0.0140386    -0.00129847
 -0.634144  -0.0042435    -0.00139326   -8.31761e-5
 -0.398407  -0.000455742  -0.000142987  -1.52699e-5
 -0.280066  -5.17996e-5   -1.49222e-5   -3.63198e-6
 -0.24415   -1.23097e-5   -3.05381e-6   -1.59243e-6
 -0.280066  -5.17996e-5   -1.49222e-5   -3.63198e-6
 -0.398407  -0.000455742  -0.000142987  -1.52699e-5
 -0.634144  -0.0042435    -0.00139326   -8.31761e-5
 -1.05793   -0.0403257    -0.0140386    -0.00129847

To solve spin chain, use SpinChainSolver(S, L; Jz, Jxy, h) instead of BoseChainSolver(M, L; t, V, U, mu).

About

fulldiag solver for finite-T problem of XXZ chain and boson chain

License:Apache License 2.0


Languages

Language:Julia 100.0%