From: Raimar S. <rai...@ui...> - 2012-02-10 17:26:30
|
Dear András, I want to implement an Averaged class which calculates the position correlation of two particles. For this I have to calculate the Fourier transform of a *LazyDensityOperator* with rank 4. In *Particle.cc* you copy the *LazyDensityOperator* into a temporary *DensityOperatorLow*. I assume this is necessary because the gsl FFT doesn't work directly with a *LazyDensityOperator*? >From my understanding for_each(fullRange(rhotemp, Left()),bind(&ffTransform,_1,FFTDIR_KX)); for_each(fullRange(rhotemp,Right()),bind(&ffTransform,_1,FFTDIR_XK)); calculates the FFT with +- ikx on the rows/columns of the density matrix, respectively. I think in my case I would have to created slices which correspond to first particle left, second particle left, first particle right and second particle right and then FFT all these slices. Can you give me a hint how this could be implemented? Should I slice with *Vector<0>()* ... *Vector<3>* directly as I know my density operator will have rank 4, or is there a more generic way of doing this similar to Left() Right()? Thanks and very best regards Raimar |