Forward compatibility: flex
[foam-extend-3.2.git] / src / randomProcesses / fft / calcEk.C
blob858859033c9885c51205f93f599605d3ab8f2421
1 /*======================================================================*/
3 // This routine evaluates q(k) (McComb, p61) by summing all wavevectors
4 // in a k-shell. Then we divide through by the volume of the box
5 // - to be accurate, by the volume of the ellipsoid enclosing the
6 // box (assume cells even in each direction). Finally, multiply the
7 // q(k) values by k^2 to give the full power spectrum E(k). Integrating
8 // this over the whole range gives the energy in turbulence.
10 /*======================================================================*/
12 #include "calcEk.H"
13 #include "fft.H"
14 #include "Kmesh.H"
15 #include "kShellIntegration.H"
16 #include "volFields.H"
17 #include "graph.H"
19 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
21 namespace Foam
24 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
26 graph calcEk
28     const volVectorField& U,
29     const Kmesh& K
32     return kShellIntegration
33     (
34         fft::forwardTransform
35         (
36             ReComplexField(U.internalField()),
37             K.nn()
38         ),
39         K
40     );
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 } // End namespace Foam
48 // ************************************************************************* //