public class MeterVirialBinMultiThreaded
Measures cluster averages for virial coefficients. Configurations are
classified by a "property" (an array of ints) and assigned a bin. The
average value and standard deviation within that bin is tracked. If a bin
has a small standard deviation, its configurations may be skipped (not
measured) in order to spend more time on other bins, or to track how often
each bin is visited.
Additionally, this class can be used in a threaded simulation. Each thread
runs a separate simulation, sharing a Map of MyData. This class ensures
that the various instances of the meter do not concurrently use the Map in
a way that causes problems. Many of the operations need only be approximate
and the class avoids forcing synchronization for such operations.