12#ifndef CD_RandomImplem_H
13#define CD_RandomImplem_H
26#include <CD_NamespaceHeader.H>
34 if (
pp.contains(
"seed")) {
89 int seed = std::chrono::system_clock::now().time_since_epoch().count();
99template <
typename T,
typename>
123template <
typename T,
typename>
127 CH_TIME(
"Random::getBinomial");
154 CH_TIME(
"Random::getUniformReal01");
158 return s_uniform01(s_rng);
164 CH_TIME(
"Random::getUniformReal11");
168 return s_uniform11(s_rng);
174 CH_TIME(
"Random::getNormal01");
178 return s_normal01(s_rng);
184 CH_TIME(
"Random::getDirection");
201#elif CH_SPACEDIM == 3
234 CH_TIME(
"Random::getDiscrete");
250 CH_TIME(
"Random::randomPosition(full)");
273 CH_TIME(
"Random::randomPosition(partial)");
291 CH_TIME(
"Random::randomPosition(box)");
302#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:221
static void setRandomSeed()
Set a random RNG seed.
Definition CD_RandomImplem.H:87
static RealVect getDirection()
Get a random direction in space.
Definition CD_RandomImplem.H:182
static Real getUniformReal11()
Get a uniform real number on the interval [-1,1].
Definition CD_RandomImplem.H:162
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:232
static Real getUniformReal01()
Get a uniform real number on the interval [0,1].
Definition CD_RandomImplem.H:152
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:29
static void setSeed(const int a_seed)
Set the RNG seed.
Definition CD_RandomImplem.H:53
static T getPoisson(const Real a_mean)
Get Poisson distributed number.
Definition CD_RandomImplem.H:101
static T getBinomial(const T a_N, const Real a_p) noexcept
Get Poisson distributed number.
Definition CD_RandomImplem.H:125
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:289
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25