diff --git a/ipi/engine/motion/scphonons.py b/ipi/engine/motion/scphonons.py index e135f180a..ce2817a86 100644 --- a/ipi/engine/motion/scphonons.py +++ b/ipi/engine/motion/scphonons.py @@ -170,7 +170,7 @@ def bind(self, ens, beads, nm, cell, bforce, prng, omaker): if self.random_type == "file": self.random_sequence = np.loadtxt("SOBOL-RNG") elif self.random_type == "pseudo": - self.random_sequence = self.prng.rng[0].uniform( + self.random_sequence = self.prng.uniform( size=(self.max_steps * self.max_iter, self.dof) ) elif self.random_type == "sobol": @@ -182,7 +182,7 @@ def bind(self, ens, beads, nm, cell, bforce, prng, omaker): ) # Shuffles the - self.prng.rng[0].shuffle(self.random_shuffle) + self.prng.shuffle(self.random_shuffle) def step(self, step=None): if self.isc == self.max_iter: diff --git a/ipi/utils/prng.py b/ipi/utils/prng.py index 75c1fcf56..273a7e0b4 100644 --- a/ipi/utils/prng.py +++ b/ipi/utils/prng.py @@ -130,6 +130,18 @@ def poisson(self, lam=1.0, size=None): return self.rng[0].poisson(lam, size) + def uniform(self, low=0.0, high=1.0, size=None): + """Interface to the standard uniform() function. + + Args: + Same as numpy.Generator.uniform + + Returns: + Uniform random reals in the prescribed interval + """ + + return self.rng[0].uniform(low, high, size) + def integers(self, low, high=None, size=None, dtype=np.int64, endpoint=False): """Interface to the standard integers() function.