Line data Source code
1 : #include "Set.H"
2 : #include <random>
3 : namespace Set
4 : {
5 : }
6 :
7 : namespace Set
8 : {
9 : namespace Constant
10 : {
11 :
12 : // Pi
13 : const Set::Scalar Pi = 3.14159265359;
14 : Set::Scalar Rg = 0.0;
15 : Set::Scalar Boltzmann = 0.0;
16 : Set::Scalar Avogadro = 0.0;
17 :
18 : // Function to update constants to match system level units
19 42 : void SetGlobalConstants()
20 : {
21 : // Gas constant
22 84 : Rg = Unit::Parse("8.31446261815_J/mol/K").normalized_value();
23 : // Boltzmann constant
24 84 : Boltzmann = Unit::Parse("1.380649e-23_J/K").normalized_value();
25 : // Avogadro's number
26 42 : Avogadro = Unit::Parse("6.02214076e23_1/mol").normalized_value();
27 42 : }
28 :
29 : }
30 : }
31 :
32 : namespace Util
33 : {
34 4166 : Set::Scalar Random()
35 : {
36 4166 : return ((Set::Scalar) rand()) / ((Set::Scalar) RAND_MAX);
37 : }
38 0 : Set::Scalar Gaussian(amrex::Real mean,amrex::Real std_deviation)
39 : {
40 0 : std::random_device randomness_device{};
41 0 : std::mt19937 pseudorandom_generator{randomness_device()};
42 0 : std::normal_distribution<double> distribution{mean, std_deviation};
43 0 : auto sample = distribution(pseudorandom_generator);
44 0 : return sample;
45 0 : }
46 :
47 : }
|