diff --git a/src/libpsc/psc_collision/psc_collision_impl.hxx b/src/libpsc/psc_collision/psc_collision_impl.hxx index 78d8dbc8c8..eadf79688e 100644 --- a/src/libpsc/psc_collision/psc_collision_impl.hxx +++ b/src/libpsc/psc_collision/psc_collision_impl.hxx @@ -8,6 +8,7 @@ #include #include +#include extern void* global_collision; // FIXME @@ -164,11 +165,11 @@ struct CollisionHost // ---------------------------------------------------------------------- // randomize_in_cell - static std::vector randomize_in_cell(int n_start, int n_end) + std::vector randomize_in_cell(int n_start, int n_end) { std::vector permute(n_end - n_start); std::iota(permute.begin(), permute.end(), n_start); - std::random_shuffle(permute.begin(), permute.end()); + std::shuffle(permute.begin(), permute.end(), rng_); return permute; } @@ -265,6 +266,8 @@ private: double nu_; int interval_; + std::mt19937 rng_; + public: // FIXME // for output Mfields mflds_stats_;