Hi,all I am confused about how to define a harmonic trap in ALPS, shall I add it directly to the SITETERM as follows?
<SITETERM type="0" site="i"> <PARAMETER name="x" value="i"/> -mu*n(i)+V*n(i)*(x-L/2)*(x-L/2) </SITETERM> where parameters mu and V, operator n(i) are defined in my_models.xml but, L the length of lattice is defined in a separate independent file my_lattices.xml.
Is this kind of definition of harmonic trap OK in ALPS?
Bo-Nan
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. My questions thus are: 1) 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? 2) How are the bins/timeseries sets generated, i.e. what controls their size, number and so on? 2) How can I (!) as a user control these quantities, in particular binsize and number of bins generated?
Best Thomas Pruschke
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
It is the latest developers release, and I use the ct-hyb. It uses the lates Alea, as far as I understanf (at least that is where I tried to put together my meager knowledge on the different parts of the output). Presently I use Python and access the features of timeseries via ar['/simulation/results/density_%i/timeseries/data/@binsize'%orb] Is there a comprehensive manual on how to access the functions mentioned below somewhere on the ALPS-Wiki? I have been scanning all possible places without getting anywhere ... I'll try to make the measurments such that I am beyond the autocorrelation time. Thus I assume I can take the "Yes, you can" from the answer. Best Thomas
On Mar 15, 2013, at 9:51 AM, "Prof. Dr. Thomas Pruschke" pruschke@theorie.physik.uni-goettingen.de wrote:
It is the latest developers release, and I use the ct-hyb. It uses the lates Alea, as far as I understanf (at least that is where I tried to put together my meager knowledge on the different parts of the output). Presently I use Python and access the features of timeseries via ar['/simulation/results/density_%i/timeseries/data/@binsize'%orb] Is there a comprehensive manual on how to access the functions mentioned below somewhere on the ALPS-Wiki? I have been scanning all possible places without getting anywhere ...
You're working with a development version that is not even finished yet, thus please be patient. I think Lukas has started to create documentation for it on the Wiki.
The easiest way to load the observables using ALPS into a Python MCScalarData or MCVectorData object, and those have a bins() function. Please check with Lukas for more information.
I'll try to make the measurments such that I am beyond the autocorrelation time. Thus I assume I can take the "Yes, you can" from the answer.
yes
Hi,
The harmonic trap which I used in (the ALPS part of) the calculation of PRB82, 014202 (2010) (http://dx.doi.org/10.1103/PhysRevB.82.014202) are:
1. define "inhomogeneous chain lattice" as follows:
<LATTICEGRAPH name = "inhomogeneous open chain lattice"> <FINITELATTICE> <LATTICE ref="chain lattice"/> <EXTENT dimension="1" size ="L"/> <BOUNDARY type="open"/> </FINITELATTICE> <UNITCELL ref="simple1d"/> <INHOMOGENEOUS><VERTEX/></INHOMOGENEOUS> </LATTICEGRAPH>
2. add site-dependent 'mu' term in the parameter file:
LATTICE="inhomogeneous open chain lattice" MODEL="fermion Hubbard" CONSERVED_QUANTUMNUMBERS="Nup,Ndown" L=20 t=1 U=2 mu=-0.006*(x-L/2+0.5)^2 { Nup_total=10; Ndown_total=10 }
At least the above setting works fine for ALPS DMRG code. Of course you should check the convergence carefully by changing sweeps.
I don't think changing the model is necessary.
Best regards, -- Ryo IGARASHI, Ph.D. rigarash@issp.u-tokyo.ac.jp OpenPGP fingerprint: BAD9 71E3 28F3 8952 5640 6A53 EC79 A280 6A19 2319
comp-phys-alps-users@lists.phys.ethz.ch