Skip to content

DMRG-11 Open vs Closed Boundary Conditions

Every simulation so far in this series has used an open chain, justified in passing as the geometry DMRG handles best. This module makes that choice the subject rather than the assumption, and puts a price on it.

Open and periodic boundaries give different answers at finite LL and converge to the thermodynamic limit at different rates. To measure any of that we need a known target, so we work at the one interaction strength where the Bethe ansatz supplies an exact bulk energy — V=2tV = 2t, the isotropic Heisenberg point — and compare the two geometries against it.

The reference point

Using the Hamiltonian for the spinless fermion chain in DMRG-07 with parameters:

t=Jxy2,V=Jz, t = \frac{J_{xy}}{2}, \qquad V = J_z ,

we focus on the isotropic point Jxy=Jz=JJ_{xy} = J_z = J, and therefore V=2tV = 2t. Note, this is simultaneously the critical interaction strength at which the chain opens a charge-density-wave gap as well as the one interaction strength where the Bethe ansatz hands us a closed-form energy. This was established for the Heisenberg chain by Bethe (1931) and extended to the anisotropic chain by Yang and Yang (1966), and quoted per bond (in the thermodynamic limit), in DMRG-02 and used throughout DMRG-03.

Note that the ring is a genuinely different model here, not just a different lattice: as DMRG-08 noted, periodic boundaries leave a surviving Jordan-Wigner string, so hardcore boson on a ring is the XXZ chain but no longer the spinless-fermion chain. The comparison below is between two boundary conditions on the spin problem, which is what the Bethe ansatz value refers to.

Where the surface term comes from

Expanding the interaction with Sz=n12S^z = n - \tfrac12:

JzijSizSjz=Jzijninj    Jz2izini  +  JzNb4, J_z\sum_{\langle ij\rangle} S^z_iS^z_j = J_z\sum_{\langle ij\rangle} n_in_j \;-\; \frac{J_z}{2}\sum_i z_i n_i \;+\; \frac{J_z N_b}{4} ,

where ziz_i counts the bonds touching site ii and NbN_b is the number of bonds. In the bulk zi=2z_i = 2 and the middle term is JzN^-J_z\hat N, a constant at fixed filling.

This is where the two geometries part company. A ring has zi=2z_i = 2 everywhere and Nb=LN_b = L: the middle term is a constant outright, and there is no surface at all. An open chain has Nb=L1N_b = L-1 and zi=1z_i = 1 at the two ends, leaving a boundary field Jz2(n1+nL)\tfrac{J_z}{2}(n_1 + n_L) that ALPS’s uniform mu cannot represent.

This is a surface term: it leaves the bulk energy density untouched and contributes at order 1/L1/L, so the open chain approaches the thermodynamic limit an order slower than the ring, whose leading correction is the conformal 1/L21/L^2.

The cost of a ring

DMRG on a ring must carry entanglement across two cuts rather than one, and the bond dimension needed for a given accuracy grows sharply as a result. The two effects pull against each other, so the runs below hold DD fixed at the same value for both geometries and let each cost show up on its own: the finite-size error in the energy per bond, and the truncation error at a given DD.

Lattice

An open chain of LL sites with L1L-1 bonds, every site carrying μni-\mu\, n_i and every bond the same tt and VV:

   -mu       -mu       -mu                       -mu       -mu
    o---------o---------o------- ... -------------o---------o
    1         2         3                        L-1        L
       t, V      t, V         t, V         t, V

    ^                                                       ^
    z = 1                                                   z = 1     <- boundary field lives here
              z = 2 everywhere in between

The two end sites touch one bond instead of two, which is the origin of the surface term. The ring closes that gap, adding an LL-th bond and making every site equivalent:

        t, V      t, V         t, V         t, V
    o---------o---------o------- ... -------------o
    |  -mu       -mu       -mu                -mu |
    1         2         3                         L
    |                  t, V                       |
    +---------------------------------------------+

    z = 2 everywhere, no surface, one extra cut for DMRG to carry

Both open chain lattice and chain lattice are built in, so no lattice file is needed — see the ALPS lattice library.

Parameters

As stated above, we use J=1J = 1, so t=J/2t = J/2, V=JV = J, μ=J\mu = J. We also elect to use hardcore boson form for the reason given in DMRG-08:

ParameterMeaningValue
LATTICEthe boundary condition under studyopen chain lattice / chain lattice
MODELthe boson form, established in DMRG-10hardcore boson
Lchain length16, 24, 32, 48, 64
CONSERVED_QUANTUMNUMBERSquantum numbers held fixedN
N_totalparticle-number sector; L/2L/2 is half filling Stotz=0\Leftrightarrow S^z_{\text{tot}} = 0L/2L/2
thopping, =Jxy/2=J_{xy}/20.5
Vnearest-neighbor repulsion, =Jz=J_z; note V=2tV = 2t1
muchemical potential, =Jz=J_z, cancelling the JzN^-J_z\hat N term1
SWEEPSfinite-size sweeps8
NUMBER_EIGENVALUESeigenstates requested1
MAXSTATESbond dimension DD, held equal for both geometries200

LATTICE is the only parameter that differs between the two runs, which is the point: whatever separates the columns below is the boundary condition and nothing else.

There is no Sz_total anywhere: a spinless fermion has no spin to project, and the sector is fixed by N_total instead. That substitution is the parameter-file face of S^totz=N^L/2\hat S^z_{\text{tot}} = \hat N - L/2 from DMRG-07.

Parameter files

The open chain, at the length used for the bond-dimension scan below:

LATTICE="open chain lattice"
MODEL="hardcore boson"
CONSERVED_QUANTUMNUMBERS="N"
N_total=16
t=0.5
V=1
mu=1
L=32
NUMBER_EIGENVALUES=1
{SWEEPS=8; MAXSTATES=200}

The ring, identical in every line but the first:

LATTICE="chain lattice"
MODEL="hardcore boson"
CONSERVED_QUANTUMNUMBERS="N"
N_total=16
t=0.5
V=1
mu=1
L=32
NUMBER_EIGENVALUES=1
{SWEEPS=8; MAXSTATES=200}

Running the simulation

parameter2xml parm_open
dmrg --write-xml parm_open.in.xml

The script run_bethe_ansatz.py runs both geometries, converts each energy to spin units, and prints the two tables below:

python3 run_bethe_ansatz.py --lengths 16 24 32 48 64 --maxstates 200 \
                           --dscan 20 40 80 160 320 --dscan-length 32

Pass --alps-bin /path/to/alps/bin if the ALPS executables are not on your PATH.

Results

Each DMRG energy is converted to spin units by adding the constant derived above, EXXZ=Ehcb+JzNb/4E_{\text{XXZ}} = E_{\text{hcb}} + J_z N_b/4, and divided by the number of bonds — Nb=L1N_b = L-1 on the open chain, Nb=LN_b = L on the ring.

Energy per bond at equal bond dimension

Both geometries are run at D=200D = 200, eight sweeps, half filling. The only difference between them is LATTICE:

LLe0e_0 opene0(1/4ln2)e_0 - (1/4-\ln 2)e0e_0 ringe0(1/4ln2)e_0 - (1/4-\ln 2)
160.503827247202-0.5038272472026.07×102-6.07\times10^{-2}0.446393522539-0.4463935225393.25×103-3.25\times10^{-3}
240.483183015316-0.4831830153164.00×102-4.00\times10^{-2}0.444583937807-0.4445839378071.44×103-1.44\times10^{-3}
320.473039369885-0.4730393698852.99×102-2.99\times10^{-2}0.443953974654-0.4439539746548.07×104-8.07\times10^{-4}
480.462996653979-0.4629966539791.98×102-1.98\times10^{-2}0.443505126160-0.4435051261603.58×104-3.58\times10^{-4}
640.458008367427-0.4580083674271.49×102-1.49\times10^{-2}0.443348034588-0.4433480345882.01×104-2.01\times10^{-4}

At every length the ring sits far closer to the Bethe ansatz value, and the two deviation columns pull apart as LL grows rather than closing on each other.

The open chain is worse not because DMRG did a poorer job on it — both columns are converged — but because of what it is being compared against. The Bethe value 1/4ln21/4-\ln 2 is the energy per bond of an infinite chain, which is pure bulk. The open chain’s two end sites touch one bond instead of two, so they carry the boundary field derived above and the bonds near them are not bulk bonds. That excess is a fixed amount of energy: it lives at the two ends and does not grow with the chain. Dividing the total by NbN_b bonds therefore spreads that constant over the whole system, adding a term of order 1/L1/L to e0e_0 — and the open deviation column is exactly that surface energy per bond, nothing else. A ring has no ends at all: every site has two neighbors, every bond is a bulk bond, and no surface contribution enters its e0e_0 in the first place, so what remains in the ring column is the genuine finite-size correction.

The two convergence orders follow from that directly. Double the length and the open chain’s deviation halves — the same fixed end cost shared over twice as many bonds — while the ring’s quarters. It is a difference of order, 1/L1/L against 1/L21/L^2, not of prefactor, so no amount of extra length closes it. The check is to multiply each column by its own power: the open chain’s deviation times LL is flat across the whole series, confirming a genuine surface term, while the ring’s times L2L^2 settles onto the conformal prediction πcv/6=π2/12-\pi c v/6 = -\pi^2/12 at central charge c=1c=1 and spinon velocity v=πJ/2v = \pi J/2.

What the ring costs in bond dimension

The ring wins the table above, so the obvious question is why the rest of this series uses open chains. Holding L=32L=32 and scanning DD, with δ\delta measured against each geometry’s own converged energy taken from a D=640D=640 run:

DDe0e_0 openδ\delta opene0e_0 ringδ\delta ring
200.473039235310-0.4730392353101.3×1071.3\times10^{-7}0.443463734082-0.4434637340824.9×1044.9\times10^{-4}
400.473039369518-0.4730393695183.7×10103.7\times10^{-10}0.443911634024-0.4439116340244.2×1054.2\times10^{-5}
800.473039369884-0.4730393698841.0×10121.0\times10^{-12}0.443952087972-0.4439520879721.9×1061.9\times10^{-6}
1600.473039369885-0.473039369885<1015<10^{-15}0.443953950800-0.4439539508003.2×1083.2\times10^{-8}
3200.473039369885-0.473039369885<1015<10^{-15}0.443953982242-0.4439539822422.3×10102.3\times10^{-10}

The open chain is converged to nine digits by D=40D=40 and to the full printed precision by D=160D=160. The ring at D=320D=320 has only just reached the accuracy the open chain had at D=40D=40 — a factor of eight in bond dimension, at L=32L=32 alone, and the factor grows with length. The reason is the extra entanglement cut: split a ring into two arcs and it is severed in two places, so the entanglement entropy across the cut is twice the open chain’s at the same length, and the bond dimension needed to hold it grows accordingly.

The same cost is quietly present in the first table. At the fixed D=200D=200 used there, the open chain sits at machine precision at every length in the series, while the ring’s truncation error climbs by seven orders of magnitude between the shortest and longest chain — because the entanglement it has to carry grows with LL and the bond dimension does not. Over this range the ring’s finite-size error is still comfortably the larger of the two, so the comparison stands; but the two are closing, and on a ring it is the bond dimension that runs out first.

Summary

At equal bond dimension the ring is the better finite-size approximation to the bulk by a wide margin: its energy per bond converges as 1/L21/L^2 with the conformal coefficient π2/12-\pi^2/12, while the open chain carries a surface energy from its two singly-coordinated ends and converges only as 1/L1/L, leaving it 7474 times further from 1/4ln21/4-\ln 2 at L=64L=64. What the ring pays for that is bond dimension: two entanglement cuts instead of one put it eight times behind the open chain in DD at L=32L=32, with the gap widening as the chain gets longer. Open boundaries are used throughout this series because that second cost compounds with LL and the first does not — a surface term is a known 1/L1/L correction, while an unconverged DD is an error with no form to fit.

Questions

  1. Push the ring’s bond-dimension scan past D=640D=640 at L=32L=32 and plot δ\delta against DD on log axes for both geometries. Is the ring’s decay a power law in DD or an exponential, and how does that compare to the open chain’s?
  2. Repeat the DD scan at L=64L=64 instead of L=32L=32. By what factor does the ring’s requirement grow with length, and does the open chain’s grow at all?
  3. Confirm the surface energy is local. Compare L[e0(L)(1/4ln2)]L\,[e_0(L) - (1/4-\ln 2)] from the table above against the bond energy SiSi+1\langle S_i\cdot S_{i+1}\rangle measured near the ends versus at the center of an open chain — how many sites in does the bond energy reach its bulk value?
  4. Remove the surface term instead of tolerating it. Use the special-edge lattice of DMRG-08 to set μj=V2zj\mu_j = \tfrac{V}{2}z_j site by site, which cancels the boundary field exactly. Does the open chain’s deviation column now fall as 1/L21/L^2, and does its coefficient match the ring’s π2/12-\pi^2/12?
  5. Repeat the comparison off the isotropic point, at V=tV = t (Δ=1/2\Delta = 1/2) inside the gapless phase and at V=3tV = 3t (Δ=3/2\Delta = 3/2) inside the gapped CDW phase. Once the correlation length is finite the ring and the chain should agree exponentially fast in LL — at which LL does the distinction stop mattering?