Random Class Reference

Random number generator. More...

Inheritance diagram for Random:

Classes

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

Public Member Functions

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

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.

◆ 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::reset(), and Rand48::seed().

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.

◆ reset()

void reset ( const label  seedValue)
inline

Reset the random number generator seed.

Definition at line 43 of file RandomI.H.

Referenced by Random::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]

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 Foam::expressions::Detail::nComponents().

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

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

◆ position() [1/5]

◆ randomise01()

void randomise01 ( Type &  value)

Randomise value in the range [0,1].

Definition at line 68 of file RandomTemplates.C.

◆ shuffle()

void shuffle ( UList< Type > &  values)

Shuffle the values in the list.

Definition at line 75 of file RandomTemplates.C.

References Foam::Swap(), and Foam::HashTableOps::values().

Referenced by eddy::eddy(), and ConeInjection< CloudType >::setPositionAndCell().

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

◆ globalSample01() [1/5]

Type globalSample01 ( )

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

Definition at line 86 of file RandomTemplates.C.

References Pstream::broadcast(), UPstream::master(), 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]

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 Pstream::broadcast(), UPstream::master(), and Foam::Zero.

Here is the call graph for this function:

◆ globalPosition() [1/5]

Type globalPosition ( const Type &  start,
const Type &  end 
)

◆ globalRandomise01()

void globalRandomise01 ( Type &  value)

Randomise value in the range 0-1.

Definition at line 134 of file RandomTemplates.C.

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

Here is the call graph for this function:

◆ sample01() [2/5]

Foam::scalar sample01 ( )

Definition at line 52 of file Random.C.

◆ sample01() [3/5]

Foam::label sample01 ( )

Definition at line 59 of file Random.C.

◆ GaussNormal() [2/5]

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]

Foam::label GaussNormal ( )

Definition at line 95 of file Random.C.

◆ position() [2/5]

Foam::scalar position ( const scalar &  start,
const scalar &  end 
)

Definition at line 103 of file Random.C.

References stdFoam::end().

Here is the call graph for this function:

◆ position() [3/5]

Foam::label position ( const label &  start,
const label &  end 
)

Definition at line 113 of file Random.C.

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

Here is the call graph for this function:

◆ globalSample01() [2/5]

Foam::scalar globalSample01 ( )

Definition at line 137 of file Random.C.

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

Here is the call graph for this function:

◆ globalSample01() [3/5]

Foam::label globalSample01 ( )

Definition at line 153 of file Random.C.

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

Here is the call graph for this function:

◆ globalGaussNormal() [2/5]

Foam::scalar globalGaussNormal ( )

Definition at line 169 of file Random.C.

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

Here is the call graph for this function:

◆ globalGaussNormal() [3/5]

Foam::label globalGaussNormal ( )

Definition at line 185 of file Random.C.

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

Here is the call graph for this function:

◆ globalPosition() [2/5]

Foam::scalar globalPosition ( const scalar &  start,
const scalar &  end 
)

Definition at line 202 of file Random.C.

References Pstream::broadcast(), stdFoam::end(), and UPstream::master().

Here is the call graph for this function:

◆ globalPosition() [3/5]

Foam::label globalPosition ( const label &  start,
const label &  end 
)

Definition at line 222 of file Random.C.

References Pstream::broadcast(), stdFoam::end(), and UPstream::master().

Here is the call graph for this function:

◆ sample01() [4/5]

scalar sample01 ( )

◆ sample01() [5/5]

label sample01 ( )

◆ GaussNormal() [4/5]

scalar GaussNormal ( )

◆ GaussNormal() [5/5]

label GaussNormal ( )

◆ position() [4/5]

scalar position ( const scalar &  start,
const scalar &  end 
)

◆ position() [5/5]

label position ( const label &  start,
const label &  end 
)

◆ globalSample01() [4/5]

scalar globalSample01 ( )

◆ globalSample01() [5/5]

label globalSample01 ( )

◆ globalGaussNormal() [4/5]

scalar globalGaussNormal ( )

◆ globalGaussNormal() [5/5]

label globalGaussNormal ( )

◆ globalPosition() [4/5]

scalar globalPosition ( const scalar &  start,
const scalar &  end 
)

◆ globalPosition() [5/5]

label globalPosition ( const label &  start,
const label &  end 
)

Member Data Documentation

◆ defaultSeed

constexpr label defaultSeed = 123456
static

The default seed value (name may change in the future)

Definition at line 105 of file Random.H.


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