WagnerGroup / pyqmc

Python library for real space quantum Monte Carlo
MIT License
82 stars 33 forks source link

Implement ensemble excited state optimization from Entwistle et al #405

Open willwheelera opened 10 months ago

willwheelera commented 10 months ago

Implement optimization of multiple states simultaneously as described in Entwistle et al. https://www.nature.com/articles/s41467-022-35534-5

The cost function for wave function i consists of the energy of wf i plus the overlap between wfs i and j for j<i (only overlaps with lower wave functions).

A copy of optimize_excited_states.py should be used as the starting point.

lkwagner commented 10 months ago

We should think about how we want to design this, considering that we probably want to optimize only sections of parameters at a time. For example, do we want to change just one wave function, with one parameter set at a time? That way we'd only need to compute parameter derivatives for one wave function at a time, although at the cost of running a new VMC (presumably with fewer walkers) for each excited state.

We could also consider a KFAC-like approximation to the Fischer information matrix.

It might be really useful to produce some kind of convergence plot of chosen direction versus walkers, as a function of the number of parameters optimized.