In most measurements that require propagators, like SpinSpinCorrelator and DeterminantCorrelators one has to pass a particle AND a hole propagator. It would be much simpler if the propagator.AllToAll returned just a dict from species to propagators.
Right now SingleParticleCorrelator takes just one species. But usually, you call it twice (see measure.py), once for particles, once for holes. So we could clean that up similarly, allowing just one call in measure.py` by passing the dict.
The only concern is speed---requiring an inverse for both species means the user always pays for both. We could add another measurement propagator.OneSpecies (or something like it).
This would be a breaking change, but not difficult to implement.
In most measurements that require propagators, like
SpinSpinCorrelatorandDeterminantCorrelatorsone has to pass a particle AND a hole propagator. It would be much simpler if thepropagator.AllToAllreturned just a dict from species to propagators.Right now
SingleParticleCorrelatortakes just one species. But usually, you call it twice (see measure.py), once for particles, once for holes. So we could clean that up similarly, allowing just one call inmeasure.py` by passing the dict.The only concern is speed---requiring an inverse for both species means the user always pays for both. We could add another measurement
propagator.OneSpecies(or something like it).This would be a breaking change, but not difficult to implement.