Commit 2284ac61 authored by Jason Swails's avatar Jason Swails
Browse files

Make it so that getRandomNumberSeed by default returns a osrngseed() result,

rather than some pre-set seed generated at construction time.

Any call to "setRandomNumberSeed" prevents this behavior (unless the generator
is seeded with 0).
parent 7cdeded0
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "Force.h" #include "Force.h"
#include <string> #include <string>
#include "internal/windowsExport.h" #include "internal/windowsExport.h"
#include "openmm/internal/OSRngSeed.h"
namespace OpenMM { namespace OpenMM {
...@@ -104,6 +105,8 @@ public: ...@@ -104,6 +105,8 @@ public:
* Get the random number seed. See setRandomNumberSeed() for details. * Get the random number seed. See setRandomNumberSeed() for details.
*/ */
int getRandomNumberSeed() const { int getRandomNumberSeed() const {
if (randomNumberSeed == 0)
return osrngseed();
return randomNumberSeed; return randomNumberSeed;
} }
/** /**
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "Vec3.h" #include "Vec3.h"
#include <string> #include <string>
#include "internal/windowsExport.h" #include "internal/windowsExport.h"
#include "openmm/internal/OSRngSeed.h"
namespace OpenMM { namespace OpenMM {
...@@ -159,6 +160,8 @@ public: ...@@ -159,6 +160,8 @@ public:
* Get the random number seed. See setRandomNumberSeed() for details. * Get the random number seed. See setRandomNumberSeed() for details.
*/ */
int getRandomNumberSeed() const { int getRandomNumberSeed() const {
if (randomNumberSeed == 0)
return osrngseed();
return randomNumberSeed; return randomNumberSeed;
} }
/** /**
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "Force.h" #include "Force.h"
#include <string> #include <string>
#include "internal/windowsExport.h" #include "internal/windowsExport.h"
#include "openmm/internal/OSRngSeed.h"
namespace OpenMM { namespace OpenMM {
...@@ -115,6 +116,8 @@ public: ...@@ -115,6 +116,8 @@ public:
* Get the random number seed. See setRandomNumberSeed() for details. * Get the random number seed. See setRandomNumberSeed() for details.
*/ */
int getRandomNumberSeed() const { int getRandomNumberSeed() const {
if (randomNumberSeed == 0)
return osrngseed();
return randomNumberSeed; return randomNumberSeed;
} }
/** /**
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "Force.h" #include "Force.h"
#include <string> #include <string>
#include "internal/windowsExport.h" #include "internal/windowsExport.h"
#include "openmm/internal/OSRngSeed.h"
namespace OpenMM { namespace OpenMM {
...@@ -212,6 +213,8 @@ public: ...@@ -212,6 +213,8 @@ public:
* Get the random number seed. See setRandomNumberSeed() for details. * Get the random number seed. See setRandomNumberSeed() for details.
*/ */
int getRandomNumberSeed() const { int getRandomNumberSeed() const {
if (randomNumberSeed == 0)
return osrngseed();
return randomNumberSeed; return randomNumberSeed;
} }
/** /**
......
...@@ -37,7 +37,7 @@ using namespace OpenMM; ...@@ -37,7 +37,7 @@ using namespace OpenMM;
AndersenThermostat::AndersenThermostat(double defaultTemperature, double defaultCollisionFrequency) : AndersenThermostat::AndersenThermostat(double defaultTemperature, double defaultCollisionFrequency) :
defaultTemp(defaultTemperature), defaultFreq(defaultCollisionFrequency) { defaultTemp(defaultTemperature), defaultFreq(defaultCollisionFrequency) {
setRandomNumberSeed(osrngseed()); setRandomNumberSeed(0);
} }
ForceImpl* AndersenThermostat::createImpl() const { ForceImpl* AndersenThermostat::createImpl() const {
......
...@@ -31,13 +31,12 @@ ...@@ -31,13 +31,12 @@
#include "openmm/MonteCarloAnisotropicBarostat.h" #include "openmm/MonteCarloAnisotropicBarostat.h"
#include "openmm/internal/MonteCarloAnisotropicBarostatImpl.h" #include "openmm/internal/MonteCarloAnisotropicBarostatImpl.h"
#include "openmm/internal/OSRngSeed.h"
using namespace OpenMM; using namespace OpenMM;
MonteCarloAnisotropicBarostat::MonteCarloAnisotropicBarostat(const Vec3& defaultPressure, double temperature, bool scaleX, bool scaleY, bool scaleZ, int frequency) : MonteCarloAnisotropicBarostat::MonteCarloAnisotropicBarostat(const Vec3& defaultPressure, double temperature, bool scaleX, bool scaleY, bool scaleZ, int frequency) :
defaultPressure(defaultPressure), temperature(temperature), scaleX(scaleX), scaleY(scaleY), scaleZ(scaleZ), frequency(frequency) { defaultPressure(defaultPressure), temperature(temperature), scaleX(scaleX), scaleY(scaleY), scaleZ(scaleZ), frequency(frequency) {
setRandomNumberSeed(osrngseed()); setRandomNumberSeed(0);
} }
ForceImpl* MonteCarloAnisotropicBarostat::createImpl() const { ForceImpl* MonteCarloAnisotropicBarostat::createImpl() const {
......
...@@ -31,13 +31,12 @@ ...@@ -31,13 +31,12 @@
#include "openmm/MonteCarloBarostat.h" #include "openmm/MonteCarloBarostat.h"
#include "openmm/internal/MonteCarloBarostatImpl.h" #include "openmm/internal/MonteCarloBarostatImpl.h"
#include "openmm/internal/OSRngSeed.h"
using namespace OpenMM; using namespace OpenMM;
MonteCarloBarostat::MonteCarloBarostat(double defaultPressure, double temperature, int frequency) : MonteCarloBarostat::MonteCarloBarostat(double defaultPressure, double temperature, int frequency) :
defaultPressure(defaultPressure), temperature(temperature), frequency(frequency) { defaultPressure(defaultPressure), temperature(temperature), frequency(frequency) {
setRandomNumberSeed(osrngseed()); setRandomNumberSeed(0);
} }
ForceImpl* MonteCarloBarostat::createImpl() const { ForceImpl* MonteCarloBarostat::createImpl() const {
......
...@@ -31,14 +31,13 @@ ...@@ -31,14 +31,13 @@
#include "openmm/MonteCarloMembraneBarostat.h" #include "openmm/MonteCarloMembraneBarostat.h"
#include "openmm/internal/MonteCarloMembraneBarostatImpl.h" #include "openmm/internal/MonteCarloMembraneBarostatImpl.h"
#include "openmm/internal/OSRngSeed.h"
using namespace OpenMM; using namespace OpenMM;
MonteCarloMembraneBarostat::MonteCarloMembraneBarostat(double defaultPressure, double defaultSurfaceTension, double temperature, XYMode xymode, ZMode zmode, int frequency) : MonteCarloMembraneBarostat::MonteCarloMembraneBarostat(double defaultPressure, double defaultSurfaceTension, double temperature, XYMode xymode, ZMode zmode, int frequency) :
defaultPressure(defaultPressure), defaultSurfaceTension(defaultSurfaceTension), temperature(temperature), defaultPressure(defaultPressure), defaultSurfaceTension(defaultSurfaceTension), temperature(temperature),
xymode(xymode), zmode(zmode), frequency(frequency) { xymode(xymode), zmode(zmode), frequency(frequency) {
setRandomNumberSeed(osrngseed()); setRandomNumberSeed(0);
} }
ForceImpl* MonteCarloMembraneBarostat::createImpl() const { ForceImpl* MonteCarloMembraneBarostat::createImpl() const {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment