+1 vote
asked by (610 points)

Dear all,

As a simple exercise, I examine the CDW phase of the spinless fermion chian (with nearest neighbor interaction) at half filling.

For @@U@@ small, the fermion density configuration is almost flat, with something like Friedel oscillation at two ends.

However, for @@U@@ large, the fermion density configuration is not a standard CDW, but forming a symmetric crossing at the center site, like this:
large U

This configuration is somehow expected, since it is more symmetric than the usual 101010,
but how can i recover this standard result?

In case needed, the code I use is given below:

using LinearAlgebra
using MKL
using ITensors
using HDF5

let
        N = 20
        t1 = 1.0
        U = 50

        sites = siteinds("Fermion", N; conserve_qns=true)

        ampo = OpSum()
        for j in 1:(N-1)
            ampo += -t1, "Cdag", j+1, "C", j
            ampo += -t1, "Cdag", j, "C", j+1
        end
        for j in 1:(N-1)
            ampo += U, "N", j, "N",j+1
        end
        H = MPO(ampo, sites)

        nthreads = 8
        BLAS.set_num_threads(nthreads)
        sweeps = Sweeps(300)
        etol = 1E-9
        obs1 = DMRGObserver(;energy_tol=etol,minsweeps=20)
        obs2 = DMRGObserver(;energy_tol=etol,minsweeps=10)
        obs3 = DMRGObserver(;energy_tol=etol,minsweeps=10)
        setmaxdim!(sweeps, 20, 30, 50, 100, 200, 300, 500, 1000, 2000)
        setcutoff!(sweeps, 1E-10)
        vnoi = [1E-5 for i in 1:10]
        setnoise!(sweeps, 1E-3, 1E-4, vnoi...,
                  1E-6, 1E-7, 1E-8, 1E-9, 1E-10,
                  1E-11, 1E-12, 0.0)

        state = [isodd(n) ? "Emp" : "Occ" for n in 1:N]
           psii = randomMPS(sites, state, 10)
        energy0, psi0 = dmrg(H, psii, sweeps;observer=obs1)
            n = expect(psi0,"N")
end

1 Answer

+1 vote
answered by (610 points)

I have found the solution by myself: using a pinning field at both ends.

In case this problem also bothers someone else in the future, I will keep this thread.

commented by (70.1k points)
Glad you found the solution and thanks for posting your answer.
Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.

Categories

...