Probability Distributions
ProbabilityDistributions is a collection of static helpers for drawing samples from common continuous distributions: normal (Gaussian), Cauchy, and uniform. It is used most prominently by the Nucleation module when seeding nucleus radii according to the $Distribution_<a>_<b> mode.
Key Classes and Concepts
ProbabilityDistributions(static class / namespace underinclude/Tools/ProbabilityDistributions.h):- Normal (Gaussian):
- Cauchy (Lorentzian):
- Uniform:
- Normal (Gaussian):
Usage
Input
None. The distribution parameters come from the caller — for nucleation, from the $Center_<a>_<b>, $Deviation_<a>_<b>, $HalfWidth_<a>_<b>, $SeedRadiusMIN_<a>_<b>, $SeedRadiusMAX_<a>_<b> keys documented on Nucleation.
Output
None — pure sampling helpers.
Example
cpp
#include "Tools/ProbabilityDistributions.h"
// Sampling a normal distribution:
double r = ProbabilityDistributions::Normal(mu, sigma, rng);
// Uniform:
double u = ProbabilityDistributions::Uniform(rmin, rmax, rng);(Function signatures follow whatever is declared in the header — the canonical consumer is Nucleation::Nucleate.)
Dependencies
- Nucleation — primary consumer.
- Standard C++
<random>machinery is used internally.