When working on WFOpt, I realized that the class organization should be improved in the long run.
- QMCFixedSampleLinearOptimizeBatched is largely duplicated from QMCFixedSampleLinearOptimize. As WFOpt QMC drivers, we should be able to keep one and make it agnostic to legacy or batched VMC drivers. It is a good discipline to keep it a clean abstraction even if we eventually get rid of legacy drivers.
- QMCCostFunction and QMCCostFunctionBatched are supposed to hide the details of PSet/TWF/Ham calls w/ or w/o batching from a WFOpt driver.
- QMCCostFunctionBase as base class is still necessary even if we eventually get ride of QMCCostFunction. It is helpful to keep common code and making unit tests without pulling actual simulation objects.
When working on WFOpt, I realized that the class organization should be improved in the long run.