mcpele  1.0.0
The Monte Carlo Python Energy Landscape Explorer
mcpele/metropolis_test.h
00001 #ifndef _MCPELE_METROPOLIS_TEST_H__
00002 #define _MCPELE_METROPOLIS_TEST_H__
00003 
00004 #include <random>
00005 
00006 #include "pele/array.h"
00007 #include "mc.h"
00008 
00009 namespace mcpele {
00010 
00021 class MetropolisTest : public AcceptTest {
00022 protected:
00023     size_t m_seed;                                          
00024     std::mt19937_64 m_generator;                            
00025     std::uniform_real_distribution<double> m_distribution;  
00026 public:
00030     MetropolisTest(const size_t rseed);
00031 
00033     virtual ~MetropolisTest() {}
00034 
00044     virtual bool test(pele::Array<double> &trial_coords, double trial_energy,
00045             pele::Array<double> & old_coords, double old_energy, double temperature,
00046             MC * mc);
00047 
00049     size_t get_seed() const {return m_seed;}
00050     void set_generator_seed(const size_t inp) { m_generator.seed(inp); }
00051 };
00052 
00053 } // namespace mcpele
00054 
00055 #endif // #ifndef _MCPELE_METROPOLIS_TEST_H__
 All Classes Namespaces Functions Variables Typedefs