evalEquispacedFFT edit page

Evaluate an SO3FunHarmonic on an equispaced grid in Euler angles \[(\alpha_a,\beta_b,\gamma_c) = (\frac{2\pi a}{H_1},\frac{\pi b}{H_2-1},\frac{2\pi c}{H_3})\] where \(a=0,...,H_1-1\), \(b=0,...,H_2-1\) and \(c=0,...,H_3-1\).

Therefore we transform the Harmonic series to an usual Fourier series equivalent as in the function eval. But we use an equispaced FFT instead of the NFFT.

Syntax

f = evalEquispacedFFT(SO3F,rot)

Input

SO3F SO3FunHarmonic
rot quadratureSO3Grid - 'ClenshawCurtis'

Output

f values at this grid points
nodes orientation

Example

% construct quadrature grid and evaluate there. Output will be a unique
% part of this grid
SO3F = SO3FunHarmonic.example;
rot = quadratureSO3Grid(62,SO3F.CS)
v = evalEquispacedFFT(SO3F,rot);
rot = quadratureSO3Grid (Quartz → xyz)
  scheme: ClenshawCurtis
  bandwidth: 62
  grid: 333396 orientations
  full grid size: 42 x 125 x 126
% for big grid sizes the construction of the quadrature grid is memory
% expansive. Hence construct struct, but the output is full sized
rot = struct('scheme','ClenshawCurtis','bandwidth',350,'CS',SO3F.CS,'SS',specimenSymmetry)
v = evalEquispacedFFT(SO3F,rot);
rot = 
  struct with fields:

       scheme: 'ClenshawCurtis'
    bandwidth: 350
           CS: [1×1 crystalSymmetry]
           SS: [1×1 specimenSymmetry]

See also

SO3FunHarmonic.eval SO3FunHarmonic.evalNFSOFT SO3FunHarmonic.evalSectionsEquispacedFFT