Open dcyang opened 5 years ago
In your specialized one-body, define an internal mapping table, associate each moving He(A) with one grid point He(B). J_AB is no zero only if He_A and He_B satisfy the mapping.
@dcyang if I understand correctly, you want to localize the He atoms to hcp lattice sites. If this is the case, then the ionwf
may work for you out-of-the-box. Please search for "ionwf" in the manual.
Hi, I'm trying to implement solid helium and got to the point where I added the Lennard-Jones potential, and two-body Jastrow functions for like-atoms (McMillan form). [Note: The solids in the examples directory have frozen nuclei and moving electrons ... my case is different, with entire atoms as the fundamental particles.]
The problem I came to now is to correctly apply another Jastrow factor to each helium atom against an ideal hcp lattice point. Without adding any more new internal object to QMCPACK, I created an input file that had two separate species of helium: one being part of the random walk ("real" He), the other fixed to the hcp points ("shadow" He). Then I created a Jastrow factor between the two species in the form of exp(-r^2).
Now this ends up multiplying exp(-r^2) for every unlike-pair of helium atoms seen by the AB-distance table. What I need is to have a 1-on-1 mapping between the real He to the shadow He at any given Monte Carlo step.
Right now, I can think of 2 ways to do this:
Doing no.1 seems easier, but it deviates from the definition of J_ab from the original solid helium papers, and may lead to instabilities such as multiple real atoms crowding around the same shadow atom. Doing no.2 looks a bit "invasive" but can be cleaner at the end by not requiring awkward input files with 2 species of helium atoms. I hope to merge my fork back to the main QMCPACK eventually, which means I'll have to do thorough unit tests to make sure I don't slow it down.
Any thoughts/opinions on how to go about doing this?
I'm also aware that @jtkrogel worked with solid helium as part of his thesis ... it would be nice if you can point to some "best practices" for this kind of work.