Summary
This change adds a new update path, NExUpdatePath=6, for real-space VMC sampling in a doublon-only Hilbert sector.
- Allowed on each site:
(n_up, n_dn) = (1,1) (doublon) or (0,0) (empty)
- Local MC move: pair hopping only (move up/down together from one site to another)
For the actual implementation, see the following branch:
https://github.com/issp-center-dev/mVMC/tree/only_doublon
Motivation
Some studies require variational calculations restricted to a doublon sector. This adds the doublon-side counterpart to existing spin-oriented update modes.
Usage
Set in modpara.def:
Use Orbital (not OrbitalGeneral) in namelist.def.
Current Constraints (fail-fast)
The run stops at startup unless all are satisfied:
0 < Ne < Nsite
NlocalSpin = 0 in locspn.def
NBackFlowIdx = 0
- No RBM inputs
- No FSZ (
OrbitalGeneral / iFlgOrbitalGeneral=1)
Validation
Normal
- Hubbard chain (6 sites,
Ne=3) with NExUpdatePath=6 runs to completion and outputs physical quantities.
Invalid inputs (representative)
| Case |
Exit code |
Representative error |
Ne=0 |
1 |
NExUpdatePath=6 (doublon-only) requires Ne > 0. |
Ne=Nsite |
1 |
NExUpdatePath=6 (doublon-only) requires Ne < Nsite (need empty sites for pair hopping). |
NLocalSpin>0 |
1 |
NExUpdatePath=6 (doublon-only) is not compatible with NLocalSpin > 0. |
| BackFlow enabled |
1 |
Back Flow is not supported. (when built with _NOTBACKFLOW) |
| RBM enabled |
1 |
NExUpdatePath=6 (doublon-only) is not compatible with RBM (current implementation). |
| FSZ enabled |
1 |
NExUpdatePath=6 (doublon-only) is not compatible with iFlgOrbitalGeneral=1 (FSZ). |
Notes
- We reserve
NExUpdatePath=6 to avoid collision with our local tJ validation branch (path=4,5, unpublished).
- Depending on build options, BackFlow may fail with a generic error before the dedicated
NExUpdatePath=6 check.
Files touched
src/mVMC/readdef.c
src/mVMC/vmcmake.c
src/mVMC/vmcmake_real.c
src/mVMC/locgrn.c
src/mVMC/locgrn_real.c
src/mVMC/include/vmcmake.h
src/mVMC/include/global.h
doc/en/source/expert.rst
doc/ja/source/expert.rst
Summary
This change adds a new update path,
NExUpdatePath=6, for real-space VMC sampling in a doublon-only Hilbert sector.(n_up, n_dn) = (1,1)(doublon) or(0,0)(empty)For the actual implementation, see the following branch:
https://github.com/issp-center-dev/mVMC/tree/only_doublon
Motivation
Some studies require variational calculations restricted to a doublon sector. This adds the doublon-side counterpart to existing spin-oriented update modes.
Usage
Set in
modpara.def:Use
Orbital(notOrbitalGeneral) innamelist.def.Current Constraints (fail-fast)
The run stops at startup unless all are satisfied:
0 < Ne < NsiteNlocalSpin = 0inlocspn.defNBackFlowIdx = 0OrbitalGeneral/iFlgOrbitalGeneral=1)Validation
Normal
Ne=3) withNExUpdatePath=6runs to completion and outputs physical quantities.Invalid inputs (representative)
Ne=0NExUpdatePath=6 (doublon-only) requires Ne > 0.Ne=NsiteNExUpdatePath=6 (doublon-only) requires Ne < Nsite (need empty sites for pair hopping).NLocalSpin>0NExUpdatePath=6 (doublon-only) is not compatible with NLocalSpin > 0.Back Flow is not supported.(when built with_NOTBACKFLOW)NExUpdatePath=6 (doublon-only) is not compatible with RBM (current implementation).NExUpdatePath=6 (doublon-only) is not compatible with iFlgOrbitalGeneral=1 (FSZ).Notes
NExUpdatePath=6to avoid collision with our local tJ validation branch (path=4,5, unpublished).NExUpdatePath=6check.Files touched
src/mVMC/readdef.csrc/mVMC/vmcmake.csrc/mVMC/vmcmake_real.csrc/mVMC/locgrn.csrc/mVMC/locgrn_real.csrc/mVMC/include/vmcmake.hsrc/mVMC/include/global.hdoc/en/source/expert.rstdoc/ja/source/expert.rst