Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dublon-holon .def files structure #72

Open
giorgiofacelli opened this issue Jan 29, 2025 · 1 comment
Open

Dublon-holon .def files structure #72

giorgiofacelli opened this issue Jan 29, 2025 · 1 comment

Comments

@giorgiofacelli
Copy link

Dear mVMC developers,

I am working on getting mVMC to work for a two-dimensional Hubbard model, and I wanted to include doublon-holon factors in the variational ansatz. As this is not automatically included in standard mode, I need to create all the .def files in order to be able to work in expert mode. However, I am stuck trying to make the 4-site dh4.def file. My understanding is that in such a .def file you should have a list of 6 numbers, indicating:

  • 1st number: the site i
  • 2nd-5th number: the l-th neighboring sites (for example, assuming a 4x4 lattice with PBC and i=0, if we consider only up to next nearest-neighboring sites, there will be two choices for these numbers: for l=0 they will be [1,3,4,12] and for l=1 [5,7,13,15])
  • 6th number: an index indicating the variational parameter

This all sounds reasonable, however I am left with a few questions that I cannot seem to resolve. The parameters are different depending on how many holons there are if site i is a doublon (indexed by m in Eq.(25) of Tahara et al.). Furthermore, there should be different parameters depending on whether site i is a doublon or holon (this is not explicit in the above reference but you make clear the distinction in your tutorial). My question is, how do we make sense of this in the .def file? My idea was to repeat the site indices for all these different parameters. For example, say we have parameters for 0 <= m <= 4 nearest-neighbor holons, and the same for doublons, then for site i=0 I will add to the .def file:

=============
NDoublonHolon4siteIdx 20
ComplexType 1
=============
=============
0 1 3 4 12 0
0 1 3 4 12 1
0 1 3 4 12 2
0 1 3 4 12 3
0 1 3 4 12 4
0 1 3 4 12 5
0 1 3 4 12 6
0 1 3 4 12 7
0 1 3 4 12 8
0 1 3 4 12 9
....

The first 5 lines will account for different parameters according to the number m IF site 0 is a doublon, and similarly for the last 5 lines IF site 0 is a holon. Similarly, I do the same for next-nearest neighbors for paramters indices going from 10 to 19.

However this convention seems a bit strange to me and indeed if I try to run the code, dh4.def returns an error, specifically error: dh4.def (Broken file or Not exist).

Could you help me in trying to understand how to build this .def file correctly? What am I missing?
Thanks a lot for your help.

Kind regards,

Giorgio

@k-ido
Copy link
Collaborator

k-ido commented Mar 11, 2025

We apologize for the delay in our reply.
Judging from your input file, it seems that the way you have specified NDoublonHolon4siteIdx and sixth columns after the header is incorrect.

According to mVMC paper (https://www.sciencedirect.com/science/article/pii/S0010465518303102?via%3Dihub or https://arxiv.org/pdf/1711.11418),
m-site double-holon (DHm) correlation factors in mVMC are defined as follow:

Image

For DH4, m=4.

In the manual (https://issp-center-dev.github.io/mVMC/docs/expert.html#dh4-file), the file format of DH4 is defined as
Image

Sorry, but the definition of Ndh4 in the manual is misleading.
Ndh4 is not the total number of variational parameters of DH4, but the number of type t in Eq. (58) in the paper.
(The number of variational parameters of DH4 is 10 Ndh4.)
And on 6th column of the input file, the index of type should be specified, not the index of variational parameters of DH4. For example, if Ndh4=2, 0 or 1 can be written on the 6th column.

2nd-5th number: the l-th neighboring sites (for example, assuming a 4x4 lattice with PBC and i=0, if we consider only up to next nearest-neighboring sites, there will be two choices for these numbers: for l=0 they will be [1,3,4,12] and for l=1 [5,7,13,15])

Right. If you want to optimize DH4 for l=0 and l=1 independently, you should set Ndh4=2.
The DH4 for l=0 (l=1) is specified as the type index t=0 (t=1).

For your reference, I have attached a sample file of DH4 for Ndh4=1.
If you want to make the input for Ndh4=2, you add lines for t=1, for example "0 5 7 13 15 1" after the header.

dh4.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants