DMRG-10 Model Types in 1D
This module runs the ALPS spinless fermions model through the dmrg application at the free-fermion point, where the ground state energy is known in closed form at finite length, and checks the result against it. This verifies the physics based assertion made in DMRG-08 numerically: hardcore bosons behave as spinless fermions in 1D.
The model
The spinless fermion chain with nearest-neighbor hopping and nearest-neighbor repulsion is:
with .
This is the built-in spinless fermions model of the ALPS model library.
It is the fermionic image of the anisotropic Heisenberg chain solved by Lieb, Schultz, and Mattis (1961), reached through the transformation of Jordan and Wigner (1928); again the DMRG algorithm itself is due to White (1992).
At the chain is exactly solvable. On an open chain the single-particle levels are:
and the ground state energy at particles is the sum of the lowest of them. The DMRG energies below are measured against that closed form, which is exact at finite rather than an extrapolation.
Parameters
| Parameter | Meaning | Value |
|---|---|---|
LATTICE | built-in open chain, no lattice file required | open chain lattice |
MODEL | the ALPS spinless-fermion model | spinless fermions |
L | chain length | 8, 16, 32, 64 |
CONSERVED_QUANTUMNUMBERS | quantum numbers held fixed, used to block-diagonalize | N |
N_total | particle-number sector; is half filling | |
t | nearest-neighbor hopping amplitude | 1 |
V | nearest-neighbor repulsion; is the free-fermion point | 0 |
SWEEPS | number of DMRG finite-size sweeps | 4 |
NUMBER_EIGENVALUES | eigenstates requested | 1 |
MAXSTATES | bond dimension kept after truncation | 100 |
Note there is no Sz_total because a spinless fermion has no spin to project. Instead, the sector is fixed by N_total as described in DMRG-07.
As a cautionary reminder, Sz_total is related to particle number: . For instance, zero magnetization corresponds to half filling.
Leaving N_total unset runs the calculation grand canonically over the full -dimensional space, whereas fixing it to the half-filled sector (at ) restricts to the system to the states.
Parameter file
LATTICE="open chain lattice"
MODEL="spinless fermions"
CONSERVED_QUANTUMNUMBERS="N"
N_total=32
t=1
V=0
L=64
NUMBER_EIGENVALUES=1
{SWEEPS=4; MAXSTATES=100}Lattice
Our example takes place on an open chain of sites with every bond carrying the same hopping and repulsion , while every site the same chemical potential :
-mu -mu -mu -mu
o------------o------------o----- ... ------------o
1 2 3 L
t, V t, V t, VHere we use the open chain lattice; see ALPS lattice library for other chain variants.
What ALPS builds from the parameter file
The lattice is the same built-in open chain lattice used in DMRG-08 — vertices, edges, open boundaries, no lattice file needed. Nothing about it changes here. What changes is the Hamiltonian stamped onto it, and that is the whole subject of this module, so it is worth reading the definition.
spinless fermions is an entry in the ALPS library models.xml: a site basis, plus the terms to place on the vertices and edges the lattice hands over.
<SITEBASIS name="spinless fermion">
<QUANTUMNUMBER name="N" min="0" max="1" type="fermionic"/>
<OPERATOR name="cdag" matrixelement="1"><CHANGE quantumnumber="N" change="1"/></OPERATOR>
<OPERATOR name="c" matrixelement="1"><CHANGE quantumnumber="N" change="-1"/></OPERATOR>
<OPERATOR name="n" matrixelement="N"/>
</SITEBASIS>
<HAMILTONIAN name="spinless fermions">
<PARAMETER name="mu" default="0"/>
<PARAMETER name="t" default="1"/>
<PARAMETER name="V" default="0"/>
<BASIS ref="spinless fermion"/>
<SITETERM site="i">
-mu#*n(i)
</SITETERM>
<BONDTERM source="i" target="j">
-t#*(cdag(i)*c(j)+cdag(j)*c(i)) + V#*n(i)*n(j)
</BONDTERM>
</HAMILTONIAN>min="0" max="1" is the hardcore constraint: a site is empty or singly occupied, nothing else. The SITETERM goes on every vertex and the BONDTERM on every edge, so the open chain turns them into the chemical-potential terms and hopping-and-interaction terms of the Hamiltonian at the top of this page.
The line that matters for this module is type="fermionic". It tells ALPS that N counts fermions rather than bosons, so the Jordan–Wigner strings that give cdag(i)*c(j) its anticommuting sign are inserted for you: the bond term above is written as though the operators commuted, and ALPS supplies the signs. Declare the same basis without that attribute and you have hardcore bosons, with an identical-looking bond term — the two models differ by nothing else. On an open chain the strings cancel between neighbors and the two must agree exactly, which is what the energies below test.
Running the simulation
Note that at the half-filled sector already holds states and at about , far beyond exact diagonalization. DMRG is the right tool across this whole range. Since the ground state of the free model () is lightly entangled, a bond dimension of a few hundred reaches machine precision, with each run below converging in seconds.
parameter2xml parm_sf
dmrg --write-xml parm_sf.in.xmlEach task writes parm_sf.taskN.out.xml, containing the converged energy and the truncation error.
Results
Below is a list of ground state energies () at half filling, with parameters , , , for different system sizes:
(dmrg) | (exact) | difference | ||
|---|---|---|---|---|
| 8 | 4 | |||
| 16 | 8 | |||
| 32 | 16 | |||
| 64 | 32 |
The chain converges to machine precision for and below, and to nine digits at .
Note, is more than this problem needs. The half-chain entanglement entropy of a free-fermion chain grows only logarithmically, , giving at — so a handful of Schmidt states carry nearly all the weight, and the rest of the bond dimension buys digits rather than physics. At :
| truncation error | ||
|---|---|---|
| 20 | ||
| 50 | ||
| 100 | ||
| 200 |
Seven digits are already available at . The two columns fall together, their ratio holding near across eight orders of magnitude, which is the proportionality that licenses extrapolation to when no exact answer is at hand.
The intensive energy per site at is , against the thermodynamic-limit value for the half-filled chain; the remaining gap is the open chain’s boundary correction, which DMRG-11 takes apart.
Summary
The ALPS spinless fermions model reproduces the exact free-fermion ground state energy of the open chain to machine precision at and to at , with and four sweeps. The sparse_ed module would be hopelessly overwhelmed at these system sizes, showcasing the utility of dmrg in 1D systems.
Questions
- Fit the energy error against the truncation error across at and extrapolate to . How much better than the raw result does the extrapolation get?
- Move off half filling to . The closed form is still exact — does the convergence in improve or degrade, and why?
- Turn on the interaction. At what value of does the bond dimension needed for a fixed accuracy start to grow sharply, and how does that relate to the transition at ?
- Track as grows toward . Is the finite-size correction or , and what does that imply about the boundary?
- Dump the term list for a periodic chain (
LATTICE="chain lattice"). The Jordan-Wigner strings no longer cancel between sites 1 and — which extra terms appear, and what sign do they carry?