63 RootDeltaT(
sqrt(DeltaT)),
66 Alpha(UOdict.lookup<scalar>(
"UOalpha")),
67 Sigma(UOdict.lookup<scalar>(
"UOsigma")),
68 Kupper(UOdict.lookup<scalar>(
"UOKupper")),
69 Klower(UOdict.lookup<scalar>(
"UOKlower")),
70 Scale((Kupper - Klower)*
pow(scalar(Mesh.size()), 1.0/
vector::dim))
74 scalar sqrKupper =
sqr(Kupper);
75 scalar sqrKlower =
sqr(Klower) + small;
80 if ((sqrK =
magSqr(
K[i])) < sqrKupper && sqrK > sqrKlower)
82 UOfield[i] = Scale*Sigma*WeinerProcess();
104 scalar sqrKupper =
sqr(Kupper);
105 scalar sqrKlower =
sqr(Klower) + small;
110 if ((sqrK =
magSqr(
K[i])) < sqrKupper && sqrK > sqrKlower)
114 (1.0 - Alpha*DeltaT)*UOfield[i]
115 + Scale*Sigma*WeinerProcess();
#define forAll(list, i)
Loop across all elements in list.
Calculate the wavenumber vector field corresponding to the space vector field of a finite volume mesh...
scalar scalarNormal()
Advance the state and return a scalar sample from a normal.
UOprocess(const Kmesh &kmesh, const scalar deltaT, const dictionary &)
Construct from wavenumber mesh and timestep.
const complexVectorField & newField()
Extension to the c++ complex library type.
A list of keyword definitions, which are a keyword followed by any number of values (e....
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensionedScalar sqrt(const dimensionedScalar &ds)
Vector< complex > complexVector
complexVector obtained from generic Vector.
label count(const ListType &l, typename ListType::const_reference x)
Count the number of occurrences of a value in a list.
dimensioned< scalar > magSqr(const dimensioned< Type > &)