# gstools.field.generator.IncomprRandMeth

class gstools.field.generator.IncomprRandMeth(model, *, mean_velocity=1.0, mode_no=1000, seed=None, sampling='auto', **kwargs)[source]

Bases: RandMeth

RandMeth for incompressible random vector fields.

Parameters

Notes

The Randomization method is used to generate isotropic spatial incompressible random vector fields characterized by a given covariance model. The equation is [Kraichnan1970]:

$u_i\left(x\right)= \bar{u_i} \delta_{i1} + \bar{u_i}\sqrt{\frac{\sigma^{2}}{N}}\cdot \sum_{j=1}^{N}p_i(k_{j})\left( Z_{1,j}\cdot\cos\left(\left\langle k_{j},x\right\rangle \right)+ Z_{2,j}\cdot\sin\left(\left\langle k_{j},x\right\rangle \right) \right)$

where:

• $$\bar u$$ : mean velocity in $$e_1$$ direction

• $$N$$ : fourier mode number

• $$Z_{k,j}$$ : random samples from a normal distribution

• $$k_j$$ : samples from the spectral density distribution of the covariance model

• $$p_i(k_j) = e_1 - \frac{k_i k_1}{k^2}$$ : the projector ensuring the incompressibility

References

Kraichnan1970

Kraichnan, R. H., “Diffusion by a random velocity field.”, The physics of fluids, 13(1), 22-31., (1970)

Attributes
mode_no

int: Number of modes in the randomization method.

model

CovModel: Covariance model of the spatial random field.

name

str: Name of the generator.

sampling

str: Sampling strategy.

seed

int: Seed of the master RNG.

value_type

str: Type of the field values (scalar, vector).

Methods

 __call__(pos[, add_nugget]) Calculate the random modes for the randomization method. get_nugget(shape) Generate normal distributed values for the nugget simulation. reset_seed([seed]) Recalculate the random amplitudes and wave numbers with the given seed. update([model, seed]) Update the model and the seed.

Calculate the random modes for the randomization method.

This method calls the summate_incompr_* Cython methods, which are the heart of the randomization method. In this class the method contains a projector to ensure the incompressibility of the vector field.

Parameters
Returns

the random modes

Return type

numpy.ndarray

get_nugget(shape)

Generate normal distributed values for the nugget simulation.

Parameters

shape (tuple) – the shape of the summed modes

Returns

nugget – the nugget in the same shape as the summed modes

Return type

numpy.ndarray

reset_seed(seed=nan)

Recalculate the random amplitudes and wave numbers with the given seed.

Parameters

seed (int or None or numpy.nan, optional) – the seed of the random number generator. If None, a random seed is used. If numpy.nan, the actual seed will be kept. Default: numpy.nan

Notes

Even if the given seed is the present one, modes will be recalculated.

update(model=None, seed=nan)

Update the model and the seed.

If model and seed are not different, nothing will be done.

Parameters
property mode_no

Number of modes in the randomization method.

Type

int

property model

Covariance model of the spatial random field.

Type

CovModel

property name

Name of the generator.

Type

str

property sampling

Sampling strategy.

Type

str

property seed

Seed of the master RNG.

Notes

If a new seed is given, the setter property not only saves the new seed, but also creates new random modes with the new seed.

Type

int

property value_type

Type of the field values (scalar, vector).

Type

str