Recent Changes - Search:

HomePage

PmWiki

pmwiki.org

PowerLaw

Introduction

A type of long-range interaction that is commonly studied is where each site in the system is coupled to every other site in the system with a strength proportional to some (negative) power of the distance between them. For example, the (infinite) Haldane--Shastry model [1,2] has the inverse-square interaction {$$H = \sum_{i<j} \frac{1}{(j-i)^2} \mathbf{S}_i \cdot \mathbf{S}_j.$$}

However, power-law interactions cannot be exactly represented as an MPO with a finite bond dimension. One approach could be to write the full MPO for some large cutoff in distance, and them use an MPO compression algorithm to reduce the MPO bond dimension to a computationally feasible size [3]. Another approach is to recognise that exponentially decaying interactions can be represented by an MPO with bond dimension 3, and a sum of {$N$} exponentials has bond dimension {$N+2$}. We can then approximate the power law by a weighted sum of {$N$} exponential functions [4] {$$\frac{1}{n^2} \approx \sum_{i=1}^N \alpha_i \exp (\beta_i n).$$} We can then optimise this fit by minimising the error below some maximum length {$L$}. (In fact, the MPO compression approach will end up producing a sum of exponential functions as well, although the exact expressions chosen by each method may be different.)

This optimisation can be done using the following Python script:

import numpy as np
import scipy.optimize

# The number of exponential functions to use.
N = 5

# The power of the interaction's decay: alpha = 2 corresponds to an inverse-square interaction.
alpha = 2

# The number of sites to optimise over.
L = 100

def f(n, x):
    ans = 0
    for i in range(N):
        ans += x[2*i]*np.exp(x[2*i+1]*n)
    return ans

def g(n):
    return 1/n**alpha

# Return the vector of residuals for parameter vector x.
def res(x):
    ans = np.empty(L)
    for n in range(L):
        ans[n] = f(n+1, x) - g(n+1)
    return ans

# Define the initial parameter vector.
x0 = np.empty(2*N)
for i in range(N):
    x0[2*i] = 1
    x0[2*i+1] = -i-1

# Find the optimal parameters.
x = scipy.optimize.least_squares(res, x0, verbose=1).x

# Print the optimal sum of exponentials in the mptoolkit format.
terms = []
for i in range(N):
    terms.append(f"{x[2*i]}*H_exp{{{-x[2*i+1]}}}")

print("+".join(terms))

This should produce something like

0.00171584071495883*H_exp{0.030167922439536407}+0.02182181713630656*H_exp{0.13302107117141973}+0.16561077849196146*H_exp{0.4037532643385548}+1.0324654149954047*H_exp{1.056022772901234}+7.8939870753355*H_exp{2.7404153671518094}

which can then be used as an operator expression for mp-idmrg-s3e, for example:

spinchain-su2 -o lattice
ham="lattice:0.00171584071495883*H_exp{0.030167922439536407}+0.02182181713630656*H_exp{0.13302107117141973}+0.16561077849196146*H_exp{0.4037532643385548}+1.0324654149954047*H_exp{1.056022772901234}+7.8939870753355*H_exp{2.7404153671518094}"
mp-idmrg-s3e -H $ham -w psi -m 50x100 --create -q 0 -u 2

The exact energy density of the ground state is {$-\pi^2/24 = 0.4112335167120566\ldots$}, which we can check with

$ mp-imoments psi -u 1
#mp-imoments psi -u 1
#Date: Thu, 17 Aug 2023 14:10:22 +0200
#operator "lattice:0.00171584071495883*H_exp{0.030167922439536407}+0.02182181713630656*H_exp{0.13302107117141973}+0.16561077849196146*H_exp{0.4037532643385548}+1.0324654149954047*H_exp{1.056022772901234}+7.8939870753355*H_exp{2.7404153671518094}"
#quantities are calculated per unit cell size of 1 site
#moment #degree #real                   #imag                   #magnitude              #argument(deg)          
1       1       -0.41122279922122       4.7842355672472e-19     0.41122279922122        180

References

[1] F. D. M. Haldane, Exact Jastrow-Gutzwiller resonating-valence-bond ground state of the spin-{$\frac{1}{2}$} antiferromagnetic Heisenberg chain with {$1/r^2$} exchange, Phys. Rev. Lett. 60, 635 (1988), doi:10.1103/PhysRevLett.60.635.
[2] B. Sriram Shastry, Exact solution of an {$S=1/2$} Heisenberg antiferromagnetic chain with long-ranged interactions, Phys. Rev. Lett. 60, 639 (1988), doi:10.1103/PhysRevLett.60.639.
[3] Daniel E. Parker, Xiangyu Cao, and Michael P. Zaletel, Local matrix product operators: Canonical form, compression, and control theory, Phys. Rev. B 102, 035147 (2020), doi:10.1103/PhysRevB.102.035147, arXiv:1909.06341.
[4] Gregory M. Crosswhite, A. C. Doherty, and Guifré Vidal, Applying matrix product operators to model systems with long-range interactions, Phys. Rev. B 78, 035116 (2008), doi:10.1103/PhysRevB.78.035116, arXiv:0804.2504.
Edit - History - Print - Recent Changes - Search
Page last modified on September 28, 2023, at 03:43 AM