Dear Thomas, (cc: Lukas)
On Mar 14, 2013, at 11:55 PM, "Prof. Dr. Thomas Pruschke" pruschke@theorie.physik.uni-goettingen.de wrote:
Simulations which use ALPS' RealObservable/RealVectorObservable return in the output file under /simulation/results/quantitiy/timeseries some data I guess/hope can be used to perform ones own data analysis. Unfortunately, even after undergoing the tedious work of finding out where and how things are written out, I still do not understand the actual background of this output. It seems that independent of the simulation time/number of measurements the number of data sets per MPI task is always 2, only the binsize varies (although even that is not really related to the simulation parameters). It also took me quite some time to find out by experiment how to access the binsize, as this is needed to normalize the data in each bin. Furthermore, in the case of vector observables the binsize parameter actually contains the value actual_binsize*len_of_vector instead of simply actual_binsize. Is this a bug or a feature? In any case, it makes the further processing a bit cumbersome as one always needs to check what type of observable this is.
The best is to read the observable using ALPS, either in Python or C++ and then use the bin_size(), bin_number() and bins() functions of the evaluator classes to access this information. WHich codes are you using? The DMFT codes already use parts of the new Alea library as far as I know. Lukas can help you with that. (Lukas, can you please also look at that actual_binsize*len_of_vector question?)
My questions thus are:
- What is the precise meaning of this timeseries output, i.e. does it provide (per MPI task) a set of statistically independent/normal distributed data for further data analysis?
Not necessarily, this is just a binned time series. The bins will be correlated if the bin size is not much longer than the autocorrelation time. But yes, if the bin size is sufficiently big then these indeed provide uncorrelated data for further analysis.
- How are the bins/timeseries sets generated, i.e. what controls their size, number and so on?
- How can I (!) as a user control these quantities, in particular binsize and number of bins generated?
That depends on which observable class you use:
RealObservable increases the bin size by doubling to keep the total number of bins between 64 and 128. You can change the maximum number of bins by passing the maximum number to the constructor as a second argument.
RealTimeSeriesObservable uses fixed size bins. The default is one entry per bin. You can pass different bin sizes to the constructor, again as second argument.
Matthias
Best Thomas Pruschke
-- Prof. Dr. Thomas Pruschke Institute for Theoretical Physics Friedrich-Hund-Platz 1 37077 Goettingen Germany Phone +49 551 39 7683 FAX +49 551 39 9263