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
|