qmcpack icon indicating copy to clipboard operation
qmcpack copied to clipboard

KSpace jastrows need more implementation

Open camelto2 opened this issue 9 months ago • 5 comments

Is your feature request related to a problem? Please describe. Looks like Kspace jastrows are listed in the manual, but they lack a lot of implementation. e.g. they are not currently compatible with the default pseudopotential evaluation that uses virtual particles because it is not implemented. If you switch to algorithm = 'non-batched' to avoid virtual particle set evaluation, the code cannot optimize the coefficients because evaluateDerivRatios or evaluateDerivatiesWF are not implemented.

Describe the solution you'd like implement kspace jastrow functionality.

Describe alternatives you've considered

Additional context

  • [x] Implement evaluateDerivativesWF
  • [x] add unit tests for gradients, laplacians, parameter derivatives
  • [ ] add APIs for batched NLPP algorithm, i.e. evauateRatios and evaluateDerivRatios
  • [ ] mw_implementations

camelto2 avatar Feb 28 '25 18:02 camelto2

Hopefully this was not too much of a surprise. This "oversight" stems from there being no test of k-space Jastrow optimization with the batched drivers, so the code paths were never hit. However, there is also no test of k-space Jastrow optimization even with the legacy code. e.g. There is no coverage of kSpaceJastrow::evaluateDerivatives . Our historical experience is that there could be surprises in the old functionality.

prckent avatar Mar 02 '25 17:03 prckent

I'm working now adding the derivatives testing, and then will add the other APIs I need to get this optimizable

camelto2 avatar Mar 03 '25 15:03 camelto2

Some of this is addressed in #5356

camelto2 avatar Mar 05 '25 16:03 camelto2

@camelto2 is this working now? I've seen some optimization plots involving Jk1/Jk2...

jtkrogel avatar May 16 '25 13:05 jtkrogel

There is a path to doing the calculations, but it currently requires non-batched NonLocalECP evaluation (algorithm = "non-batched" in the input file). Additionally, all the evaluation routines are not using mw_ implementations. The checklist above is up to date regarding what is missing

camelto2 avatar May 16 '25 14:05 camelto2