worm: creation and annihilation of a worm are not inverses; soft-core boson averages biased by 0.2-0.3 %
Maintainers usually reply within 3 days
Assessment
This issue has not been assessed yet.
Description
Summary
worm gives systematically wrong energies and densities for soft-core bosons
at intermediate t/U. The bias is a detailed-balance violation in
WRun::create_worm: the mobile head is always placed at the lower end of the
inserted segment, while annihilate_worm accepts a head/tail pair in either
order. A seven-line fix (swap the two ends with probability 1/2 after
creation) removes it. Pull request to follow.
Reproducer
LATTICE="open chain lattice"
MODEL="boson Hubbard"
L=4
Nmax=3
t=0.3
U=1
mu=0.5
T=0.5
NONLOCAL=0
THERMALIZATION=100000
SWEEPS=20000000
{SEED=101;}
{SEED=202;}
worm parm.in.xml, then read Energy Density and Density from the result
files.
Observed and expected
The 256-dimensional Hamiltonian (four sites, up to three bosons each) can be
diagonalised exactly; the grand-canonical averages at T = 0.5 are
E/L = -0.585185 and N/L = 1.228896.
| code | E/L | N/L |
|---|---|---|
| worm, seed 101 | -0.58682(35) | 1.23105(38) |
| worm, seed 202 | -0.58728(35) | 1.23091(37) |
| dirloop_sse, same input | -0.58563(57) | 1.22948(49) |
| exact | -0.585185 | 1.228896 |
Both worm seeds are 5-6 sigma off; the SSE
code agrees. The offset is the same for Nmax = 2, 3 and 5 and with
NONLOCAL=1, has the same sign at T = 1 and for L = 3, and is absent for
hard-core bosons (Nmax=1), at t/U = 0.05 and at U/t = 13, so it needs
dynamically relevant double occupancy. It also appears on a two-site chain.
Cause
In src/apps/qmc/worms/WRun.C, create_worm draws a time t1 and inserts a
discontinuity pair; worm_head[0] (the end that subsequently moves) is
always the one at t1, the lower end, and the tail at t1 + tau never moves.
annihilate_worm removes any adjacent head/tail pair, whichever one is the
mobile head, taking the lower one as t1. Configurations with the mobile head
above the tail are reached by moving the head around the time circle but are
never created directly, so creation and annihilation are not inverses in the
labelled configuration space and the stationary distribution of closed
configurations is biased. The matrix elements sqrt(n), sqrt(n+1), the
diagonal weights U n(n-1)/2 - mu n and the energy estimator are consistent in
every move; nothing else was found.
Fix and verification
After creation, swap the roles of the two ends with probability 1/2
(Wormhead::swap_with in WKink.h, seven lines in WRun.C, on the path
shared by NONLOCAL=0 and 1). With the patch:
- two-site chains (soft-core t = 0.3 and t = 1, Nmax = 2 at U = 0,
hard-core): all within 1 sigma of exact, 4 seeds x 4e6 sweeps each; - the four-site reproducer, 8 seeds x 4e7 sweeps: E/L and N/L agree with the
exact values within 0.2 sigma at error bars of 9e-5.
Observed on master at 0e2f2915d (Release build, GCC, OpenBLAS, HDF5 1.14, single-threaded), compared with independent reference calculations.
- Dominant language
- C++
- Stars
- 32
- Forks
- 10
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 51
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ALPSim/ALPS
-
area:tutorials bug scientific-correctness
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
area:parapack bug scientific-correctness
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
area:lattice bug
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
area:parapack compatibility-change enhancement
Difficulty 3/5 1-2 days Newbie friendliness 57/100
Maintainers usually reply within 3 days
-
area:ci-tests area:parapack area:tutorials
Difficulty 4/5 3-5 days Newbie friendliness 55/100
Maintainers usually reply within 3 days
Similar issues
-
Linux npm packaging leaves workspace files that block subsequent CI checkoutPossibly taken @Spockkk0225 claimed this today. Openci
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
alibaba/neug#1195 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
Bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
SCIInstitute/SCIRun#2909 ·
Maintainers usually reply within 2 days
-
area: packaging blocked dependencies P3: low post-stable value: medium
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
patrick-hudson/put.gd-desktop#1210 ·
Maintainers usually reply within 1 day