BUG: fftw: missing normalisation. See #867.

This commit is contained in:
mattijs 2018-06-13 14:09:37 +01:00
parent 51c48fa9c9
commit 765c2051aa
3 changed files with 17 additions and 3 deletions

View File

@ -66,7 +66,7 @@ int main(int argc, char *argv[])
fft::reverseTransform
(
K/(mag(K) + 1.0e-6) ^ forceGen.newField(), K.nn()
)
)*recRootN
);
#include "globalProperties.H"

View File

@ -19,3 +19,10 @@
Kmesh K(mesh);
UOprocess forceGen(K, runTime.deltaTValue(), turbulenceProperties);
label ntot = 1;
forAll(K.nn(), idim)
{
ntot *= K.nn()[idim];
}
const scalar recRootN = 1.0/Foam::sqrt(scalar(ntot));

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -60,6 +60,13 @@ Foam::vectorField Foam::turbGen::U()
s = Ek(Ea, k0, mag(K))*s;
label ntot = 1;
forAll(K.nn(), idim)
{
ntot *= K.nn()[idim];
}
const scalar recRootN = 1.0/sqrt(scalar(ntot));
complexVectorField up
(
fft::reverseTransform
@ -67,7 +74,7 @@ Foam::vectorField Foam::turbGen::U()
ComplexField(cos(constant::mathematical::twoPi*rndPhases)*s,
sin(constant::mathematical::twoPi*rndPhases)*s),
K.nn()
)
)*recRootN
);
return ReImSum(up);