qmcpack
qmcpack copied to clipboard
Commit plan for fast force derivatives.
Is your feature request related to a problem? Please describe. This is my commit plan for the fast force derivative feature. This is largely targeting my own use cases (fast forces), but if others see straightforward opportunities to generalize this to other derivatives, let me know.
Describe the solution you'd like We're going to implement and review fast force derivatives in stages. This is for single determinant no jastrow. Jastrow capability will be added in a future PR.
- [x] Commit the initial integration test.
- [x] Implement new trial wave function wrapper, up to and including its initialization. Enable relevant checks in unit test.
- [x] Implement B matrix (plus derivatives) computation into QMCHamiltonian and OperatorBase.
- [x] Implement B matrix specializations for Kinetic energy and NLPP. Enable asserts in unit test for correctness check.
- [ ] Implement operator and derivative matrix math in QMCHamiltonian.
- [ ] Swap current force operator evaluation pathway to the fast derivative path.
Describe alternatives you've considered
Additional context
Here's a link to the paper that is being implemented: https://aip.scitation.org/doi/full/10.1063/1.4948778
This plan see a good intial breakup. A few things I think will make this more successful.
- Make clear distinctions between unit and integration tests as the plan progresses. Keep test cases focused and from getting to rambling.
- Actual unit tests should go in files whose name corresponds directly to the tested unit.
- Integration tests shouldn't be named with the unit pattern,
test_ion_derivs.cpp
is a good integration test file name.