Loading...
Searching...
No Matches
Random Class Reference

Random number generator. More...

#include <Random.H>

Inheritance diagram for Random:

Classes

class  uniformGeneratorOp
 A generator class returning a uniformly distributed random number on the given interval. More...
class  gaussianGeneratorOp
 A generator class returning a gaussian distributed random number. More...

Public Member Functions

 Random (const label seedValue=defaultSeed)
 Construct with seed value.
 Random (const Random &rnd, const bool reset)
 Copy construct with possible reset of seed.
label seed () const
 The initial random number seed that was used.
void reset (const label seedValue)
 Reset the random number generator seed.
int bit ()
 Return a random bit.
template<class Type>
Type sample01 ()
 Return a sample whose components lie in the range [0,1].
template<class Type>
Type GaussNormal ()
 Return a sample whose components are normally distributed with zero mean and unity variance N(0,1).
template<class Type>
Type position (const Type &start, const Type &end)
 Return a sample on the interval [start,end].
template<class Type>
void randomise01 (Type &value)
 Randomise value in the range [0,1].
template<class Type>
void shuffle (UList< Type > &values)
 Shuffle the values in the list.
template<class Type>
Type globalSample01 ()
 Return a sample whose components lie in the range [0,1].
template<class Type>
Type globalGaussNormal ()
 Return a sample whose components are normally distributed with zero mean and unity variance N(0,1).
template<class Type>
Type globalPosition (const Type &start, const Type &end)
 Return a sample on the interval [start,end].
template<class Type>
void globalRandomise01 (Type &value)
 Randomise value in the range 0-1.
template<>
Foam::scalar sample01 ()
template<>
Foam::label sample01 ()
template<>
Foam::scalar GaussNormal ()
template<>
Foam::label GaussNormal ()
template<>
Foam::scalar position (const scalar &start, const scalar &end)
template<>
Foam::label position (const label &start, const label &end)
template<>
Foam::scalar globalSample01 ()
template<>
Foam::label globalSample01 ()
template<>
Foam::scalar globalGaussNormal ()
template<>
Foam::label globalGaussNormal ()
template<>
Foam::scalar globalPosition (const scalar &start, const scalar &end)
template<>
Foam::label globalPosition (const label &start, const label &end)
template<>
scalar sample01 ()
template<>
label sample01 ()
template<>
scalar GaussNormal ()
template<>
label GaussNormal ()
template<>
scalar position (const scalar &start, const scalar &end)
template<>
label position (const label &start, const label &end)
template<>
scalar globalSample01 ()
template<>
label globalSample01 ()
template<>
scalar globalGaussNormal ()
template<>
label globalGaussNormal ()
template<>
scalar globalPosition (const scalar &start, const scalar &end)
template<>
label globalPosition (const label &start, const label &end)

Static Public Attributes

static constexpr label defaultSeed = 123456
 The default seed value (name may change in the future).

Detailed Description

Random number generator.

Source files

Definition at line 55 of file Random.H.

Constructor & Destructor Documentation

◆ Random() [1/2]

Random ( const label seedValue = defaultSeed)
explicit

Construct with seed value.

Definition at line 26 of file Random.C.

Referenced by Random::gaussianGeneratorOp< T >::gaussianGeneratorOp(), Random(), Random::uniformGeneratorOp< T >::uniformGeneratorOp(), and Random::uniformGeneratorOp< T >::uniformGeneratorOp().

Here is the caller graph for this function:

◆ Random() [2/2]

Random ( const Random & rnd,
const bool reset )

Copy construct with possible reset of seed.

Definition at line 36 of file Random.C.

References Random(), and reset().

Here is the call graph for this function:

Member Function Documentation

◆ seed()

Foam::label seed ( ) const
inline

The initial random number seed that was used.

Definition at line 37 of file RandomI.H.

Referenced by Random::gaussianGeneratorOp< T >::gaussianGeneratorOp(), Random::uniformGeneratorOp< T >::uniformGeneratorOp(), and Random::uniformGeneratorOp< T >::uniformGeneratorOp().

Here is the caller graph for this function:

◆ reset()

void reset ( const label seedValue)
inline

Reset the random number generator seed.

Definition at line 43 of file RandomI.H.

Referenced by Random().

Here is the caller graph for this function:

◆ bit()

int bit ( )
inline

Return a random bit.

Definition at line 31 of file RandomI.H.

◆ sample01() [1/5]

◆ GaussNormal() [1/5]

template<class Type>
Type GaussNormal ( )

Return a sample whose components are normally distributed with zero mean and unity variance N(0,1).

Definition at line 41 of file RandomTemplates.C.

References GaussNormal().

Referenced by BrownianMotionForce< CloudType >::calcCoupled(), GaussNormal(), globalGaussNormal(), GradientDispersionRAS< CloudType >::update(), and StochasticDispersionRAS< CloudType >::update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ position() [1/5]

◆ randomise01()

template<class Type>
void randomise01 ( Type & value)

Randomise value in the range [0,1].

Definition at line 68 of file RandomTemplates.C.

References sample01().

Here is the call graph for this function:

◆ shuffle()

template<class Type>
void shuffle ( UList< Type > & values)

Shuffle the values in the list.

Definition at line 75 of file RandomTemplates.C.

References position(), and Foam::Swap().

Referenced by ConeInjection< CloudType >::setPositionAndCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalSample01() [1/5]

template<class Type>
Type globalSample01 ( )

Return a sample whose components lie in the range [0,1].

Definition at line 86 of file RandomTemplates.C.

References UPstream::broadcast, UPstream::master(), sample01(), and Foam::Zero.

Referenced by patchInjectionBase::setPositionAndCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalGaussNormal() [1/5]

template<class Type>
Type globalGaussNormal ( )

Return a sample whose components are normally distributed with zero mean and unity variance N(0,1).

Definition at line 102 of file RandomTemplates.C.

References UPstream::broadcast, GaussNormal(), UPstream::master(), and Foam::Zero.

Here is the call graph for this function:

◆ globalPosition() [1/5]

template<class Type>
Type globalPosition ( const Type & start,
const Type & end )

Return a sample on the interval [start,end].

Definition at line 118 of file RandomTemplates.C.

References UPstream::broadcast, UPstream::master(), position(), and Foam::Zero.

Referenced by InjectedParticleDistributionInjection< CloudType >::initialise(), PatchFlowRateInjection< CloudType >::parcelsToInject(), PatchInjection< CloudType >::parcelsToInject(), and InjectedParticleDistributionInjection< CloudType >::setPositionAndCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalRandomise01()

template<class Type>
void globalRandomise01 ( Type & value)

Randomise value in the range 0-1.

Definition at line 134 of file RandomTemplates.C.

References UPstream::broadcast, UPstream::master(), and sample01().

Here is the call graph for this function:

◆ sample01() [2/5]

template<>
Foam::scalar sample01 ( )

Definition at line 52 of file Random.C.

◆ sample01() [3/5]

template<>
Foam::label sample01 ( )

Definition at line 59 of file Random.C.

◆ GaussNormal() [2/5]

template<>
Foam::scalar GaussNormal ( )

Definition at line 66 of file Random.C.

References Foam::log(), Foam::sqr(), and Foam::sqrt().

Here is the call graph for this function:

◆ GaussNormal() [3/5]

template<>
Foam::label GaussNormal ( )

Definition at line 95 of file Random.C.

References GaussNormal().

Here is the call graph for this function:

◆ position() [2/5]

template<>
Foam::scalar position ( const scalar & start,
const scalar & end )

Definition at line 102 of file Random.C.

◆ position() [3/5]

template<>
Foam::label position ( const label & start,
const label & end )

Definition at line 113 of file Random.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Foam::min(), and Foam::nl.

Here is the call graph for this function:

◆ globalSample01() [2/5]

template<>
Foam::scalar globalSample01 ( )

Definition at line 137 of file Random.C.

References UPstream::broadcast, and UPstream::master().

Here is the call graph for this function:

◆ globalSample01() [3/5]

template<>
Foam::label globalSample01 ( )

Definition at line 153 of file Random.C.

References UPstream::broadcast, and UPstream::master().

Here is the call graph for this function:

◆ globalGaussNormal() [2/5]

template<>
Foam::scalar globalGaussNormal ( )

Definition at line 169 of file Random.C.

References UPstream::broadcast, GaussNormal(), and UPstream::master().

Here is the call graph for this function:

◆ globalGaussNormal() [3/5]

template<>
Foam::label globalGaussNormal ( )

Definition at line 185 of file Random.C.

References UPstream::broadcast, GaussNormal(), and UPstream::master().

Here is the call graph for this function:

◆ globalPosition() [2/5]

template<>
Foam::scalar globalPosition ( const scalar & start,
const scalar & end )

Definition at line 201 of file Random.C.

References UPstream::broadcast, UPstream::master(), and position().

Here is the call graph for this function:

◆ globalPosition() [3/5]

template<>
Foam::label globalPosition ( const label & start,
const label & end )

Definition at line 221 of file Random.C.

References UPstream::broadcast, UPstream::master(), and position().

Here is the call graph for this function:

◆ sample01() [4/5]

template<>
scalar sample01 ( )

◆ sample01() [5/5]

template<>
label sample01 ( )

◆ GaussNormal() [4/5]

template<>
scalar GaussNormal ( )

◆ GaussNormal() [5/5]

template<>
label GaussNormal ( )

◆ position() [4/5]

template<>
scalar position ( const scalar & start,
const scalar & end )

◆ position() [5/5]

template<>
label position ( const label & start,
const label & end )

◆ globalSample01() [4/5]

template<>
scalar globalSample01 ( )

◆ globalSample01() [5/5]

template<>
label globalSample01 ( )

◆ globalGaussNormal() [4/5]

template<>
scalar globalGaussNormal ( )

◆ globalGaussNormal() [5/5]

template<>
label globalGaussNormal ( )

◆ globalPosition() [4/5]

template<>
scalar globalPosition ( const scalar & start,
const scalar & end )

◆ globalPosition() [5/5]

template<>
label globalPosition ( const label & start,
const label & end )

Member Data Documentation

◆ defaultSeed

label defaultSeed = 123456
staticconstexpr

The documentation for this class was generated from the following files: