In the demo MolVibration/OH/2, you can see some deficit of the expectation value observer. Each takes only a single operator and accumulates the data, without writing it to a file. This leads to some awkward coding where you store all the observers and retrieve the data in the end.
This calls for a better solution that should be devised here. There are principally two solutions:
The first option is less attractive, because it couples different types of code (propagation observer and file access) for a special use case. So a better suggestion seems to calculate all the expectation values with a single observer.
Diff: