QMCPACK / miniqmc

QMCPACK miniapp: a simplified real space QMC code for algorithm development, performance portability testing, and computer science experiments
Other
26 stars 35 forks source link

One make move #216

Closed ye-luo closed 5 years ago

ye-luo commented 5 years ago

Merge after #215 Close #214

markdewing commented 5 years ago

Should these simplifications of miniqmc be better documented as differences from qmcpack? Why does the real qmcpack have two versions of makeMove (that can be combined in miniqmc). One of the pieces removed in the PR is a valid list of movers. Does this need to be present in the real qmcpack - that is, if transferring code from miniqmc to qmcpack, is that a complication that needs to be accounted for?

ye-luo commented 5 years ago

The makeMove with valid check is almost always true. Removing this check does introduce a difference between QMCPACK and miniQMC but the difference is not noticeable. Even in QMCPACK you don't want to see this check failures often. Otherwise, the master equation is heavily biased. Regarding transferring codes, we don't need to transfer drivers. It has little to do to the lower level code.

The second makeMoveOnSphere was intended to do extra optimization but I found it hard to maintain a separate implementation and bypassed if the batched NLPP evaluation is used in QMCPACK.

For the above reason, to have a simpler and cleaner miniQMC, I'd like to remove this unnecessary complications.

markdewing commented 5 years ago

Thanks for the comments - it helps to have some context about the changes.