13#ifndef CD_RANDOMIMPLEM_H
14#define CD_RANDOMIMPLEM_H
29#include <CD_NamespaceHeader.H>
37 if (
pp.contains(
"seed")) {
92 auto seed =
static_cast<int>(std::chrono::system_clock::now().time_since_epoch().count());
102template <
typename T,
typename>
128template <
typename T,
typename>
160 return s_uniform01(s_rng);
168 return s_uniform11(s_rng);
176 return s_normal01(s_rng);
197#elif CH_SPACEDIM == 3
296#include <CD_NamespaceFooter.H>
File containing some useful static methods related to random number generation.
static Real get(T &a_distribution)
For getting a random number from a user-supplied distribution. T must be a distribution for which we ...
Definition CD_RandomImplem.H:217
static void setRandomSeed()
Set a random RNG seed.
Definition CD_RandomImplem.H:90
static RealVect getDirection()
Get a random direction in space.
Definition CD_RandomImplem.H:180
static Real getUniformReal11()
Get a uniform real number on the interval [-1,1].
Definition CD_RandomImplem.H:164
static size_t getDiscrete(T &a_distribution)
For getting a random number from a user-supplied distribution. T must be a distribution for which we ...
Definition CD_RandomImplem.H:226
static Real getUniformReal01()
Get a uniform real number on the interval [0,1].
Definition CD_RandomImplem.H:156
static Real getNormal01()
Get a number from a normal distribution centered on zero and variance 1.
Definition CD_RandomImplem.H:172
static void seed()
Seed the RNG.
Definition CD_RandomImplem.H:32
static void setSeed(const int a_seed)
Set the RNG seed.
Definition CD_RandomImplem.H:56
static T getPoisson(const Real a_mean)
Get Poisson distributed number.
Definition CD_RandomImplem.H:104
static RealVect randomPosition(const RealVect &a_lo, const RealVect &a_hi) noexcept
Return a random position in the cube (a_lo, a_hi);.
Definition CD_RandomImplem.H:284
static T getBinomial(const T a_N, const Real a_p) noexcept
Get Poisson distributed number.
Definition CD_RandomImplem.H:130
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26