qmcpack icon indicating copy to clipboard operation
qmcpack copied to clipboard

Momentum distribution n(k) implementation is missing in the batched VMC/DMC

Open aannabe opened this issue 3 years ago • 2 comments

When working on a Fermi surface of a delafossite, I noticed that it requires quite a lot of n(k) samples. Currently, the CPU version works but having the GPU version would be greatly beneficial for extra resources.

aannabe avatar May 12 '22 20:05 aannabe

After discussing with Peter, he pointed out that this is implemented in the batched code in https://github.com/QMCPACK/qmcpack/pull/3447 . More optimization may be needed to fully use the multiwalker infrastructure and gain further speedups, but it is worth kicking the tires. Jaron did significant testing in that PR.

prckent avatar May 13 '22 18:05 prckent

@aannabe let us know what you find. I am not sure if, e.g. NEXUS will drive this batched observable or if a small update is needed.

prckent avatar May 17 '22 13:05 prckent

Using Nexus with driver = 'batched', currently puts the momentum estimator in the hamiltonian section. This will run but silently not accumulate the n(k):

h5ls vmc_gc.s000.stat.h5 

ElecElec                 Group
IonIon                   Group
KEcorr                   Group
Kinetic                  Group
LocalECP                 Group
LocalEnergy              Group
LocalEnergy_sq           Group
LocalPotential           Group
MPC                      Group
NonLocalECP              Group

I was told that it needs to go to qmc section. Doing so results in a crash with the following error:

Fatal Error. Aborting at EstimatorManager input:unparsable <estimator> node, name: momentum type: momentum in Estimators input.

The above were run on Summit, and inputs are attached. Any ideas?

batched_nk.zip

aannabe avatar Aug 26 '22 21:08 aannabe

@aannabe please can you retry your problem case by basing your input off of the following example:

https://github.com/QMCPACK/qmcpack/blob/develop/nexus/examples/qmcpack/rsqmc_quantum_espresso/01_diamond_dft_vmc/diamond_lda_vmc_batched_estimators.py

The momentum distribution was given a different name for the batched drivers.

jtkrogel avatar Sep 23 '22 18:09 jtkrogel

Thank you, a quick calculation of Gamma point using the above Nexus example runs successfully:

h5ls vmc_batched.s000.stat.h5

ElecElec                 Group
IonIon                   Group
Kinetic                  Group
LocalECP                 Group
LocalEnergy              Group
LocalEnergy_sq           Group
LocalPotential           Group
MPC                      Group
NonLocalECP              Group
nofk                     Group

Closing the issue.

aannabe avatar Sep 27 '22 16:09 aannabe