diff options
Diffstat (limited to 'Source/WarpX.cpp')
-rw-r--r-- | Source/WarpX.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp index 8ffc22ea7..7d6637e38 100644 --- a/Source/WarpX.cpp +++ b/Source/WarpX.cpp @@ -340,6 +340,24 @@ WarpX::ReadParameters () { ParmParse pp("warpx"); + // set random seed + std::string random_seed = "default"; + pp.query("random_seed", random_seed); + if ( random_seed != "default" ) { + unsigned long myproc_1 = ParallelDescriptor::MyProc() + 1; + if ( random_seed == "random" ) { + std::random_device rd; + std::uniform_int_distribution<int> dist(2, INT_MAX); + unsigned long seed = myproc_1 * dist(rd); + ResetRandomSeed(seed); + } else if ( std::stoi(random_seed) > 0 ) { + unsigned long seed = myproc_1 * std::stoul(random_seed); + ResetRandomSeed(seed); + } else { + Abort("warpx.random_seed must be \"default\", \"random\" or an integer > 0."); + } + } + pp.query("cfl", cfl); pp.query("verbose", verbose); pp.query("regrid_int", regrid_int); |