[Q-e-developers] Fast Fourier Transform

Carlo Cavazzoni c.cavazzoni at cineca.it
Thu Nov 9 06:51:32 CET 2017


It may help thinking that we use fft to compute a non linear
Operator (convolution), then the result is represented on 
A denser grid in order not to loose accuracy.
So we end up with 2 fft grids, for each type,
Whereas different types are needed to cope with different observables
With different basis sets.
In principle we can do everything using just one grid, the largest,
But we would waste a lot of space and cycles

Carlo
----- Stefano de Gironcoli <degironc at sissa.it> wrote:
> It's confusing...
> 
> for a given grid there are two type of FFTs
> 
> the one used to transform wavefunctions, limited to G-vectors up to Ecutwfc
> 
> and the one associated to the density/potential, up to 4*Ecutwfc or Ecutrho
> 
> There are three grids. the Smooth one (dffts: accommodating G-vectors up 
> to 4*Ecutwfc), the Dense one (dfftp: accommodating G-vectors up to 
> Ecutrho) and the Custom one (used in exx calculations), for a total of 
> 2x3 = 6 combinations.
> 
> only five are actually used:
> 
> Wave: transforms wavefunction on the smooth grid (dffts)
> 
> Smooth: transforms densities/potentials on the smooth grid (dffts)
> 
> Dense: transforms densities/potentials on the dense grid (dfftp)
> 
> CustomWave: transforms wavefunction on the custom grid
> 
> Custom: transforms densities/potentials on the custom grid.
> 
> The missing combination (wavefunction on the dense grid) is never needed.
> 
> It would make sense to redefine the type of fft as 'Rho/Wave' but for 
> historical and timing-definition reasons this is not done (yet?).
> 
> Have a look to FFTXlib/fft_fwinv.f90 if you want to see how things work 
> in detail.
> 
> ... and actually there are three types of FFTs: Rho, Wave, and Wave with 
> task groups, the last one only used on the smooth grid as 
> invfft/fwfft('tgWave', psic, dffts)
> 
> stefano
> 
> 
> On 06/11/2017 14:01, Miguel Carvajal wrote:
> > Dear all,
> > can some one explain to me what is the difference of calling
> >
> >
> >
> > CALL fwfft ('Custom', rhoc(:,ii), dfftt)
> > CALL fwfft (‘Wave', rhoc(:,ii), dfftt)
> > CALL fwfft (‘Dense', rhoc(:,ii),dfftt)
> > CALL fwfft (’Smooth', rhoc(:,ii), dfftt)
> > when doing FFT on QE; as well as the appropriate grid to be used in 
> > each instance: *dfft, dfftp or  dffts*.
> > I have some ideas but not a full understanding of it.
> > Best regards,
> >
> > Lic. Miguel Carvajal - Instituto Balseiro - Bariloche
> > National Atomic Energy Comission
> > [+54] 2944782429 (tel) / krvajal.miguel (skype)
> > LinkedIn: in/krvajal <https://www.linkedin.com/in/krvajal/>
> >
> >
> > _______________________________________________
> > Q-e-developers mailing list
> > Q-e-developers at qe-forge.org
> > http://qe-forge.org/mailman/listinfo/q-e-developers
> 





More information about the developers mailing list