FFTPreparePlan
FFTPreparePlan
Section Mesh::FFTs
Type integer
Default fftw_measure
The FFTs are performed in octopus with the help of FFTW and similar packages.
Before doing the actual computations, this package prepares a "plan", which means that
the precise numerical strategy to be followed to compute the FFT is machine/compiler-dependent,
and therefore the software attempts to figure out which is this precise strategy (see the
FFTW documentation for details). This plan preparation, which has to be done for each particular
FFT shape, can be done exhaustively and carefully (slow), or merely estimated. Since this is
a rather critical numerical step, by default it is done carefully, which implies a longer initial
initialization, but faster subsequent computations. You can change this behaviour by changing
this FFTPreparePlan variable, and in this way you can force FFTW to do a fast guess or
estimation of which is the best way to perform the FFT.
Options:
- fftw_measure:
This plan implies a longer initialization, but involves a more careful analysis
of the strategy to follow, and therefore more efficient FFTs. A side effect of the runtime
choices is that this plan can introduce slight numerical fluctuations between runs.
- fftw_estimate:
This is the "fast initialization" scheme, in which the plan is merely guessed from "reasonable"
assumptions. This is the default option, as it guarantees stable results
- fftw_patient:
It is like fftw_measure, but considers a wider range of algorithms and often produces a
"more optimal" plan (especially for large transforms), but at the expense of several times
longer planning time (especially for large transforms).
- fftw_exhaustive:
It is like fftw_patient, but considers an even wider range of algorithms,
including many that we think are unlikely to be fast, to produce the most optimal
plan but with a substantially increased planning time.