30#ifndef GRID_HMC_MODULES
31#define GRID_HMC_MODULES
40 std::string, serial_seeds,
41 std::string, parallel_seeds,);
48 template <
class ReaderClass >
50 read(Reader,
"RandomNumberGenerator", *
this);
58 std::unique_ptr<GridParallelRNG>
pRNG_;
77 auto SerialSeeds =
Params_.getSerialSeeds();
78 auto ParallelSeeds =
Params_.getParallelSeeds();
79 if (SerialSeeds.size() == 0 && ParallelSeeds.size() == 0) {
80 std::cout <<
GridLogError <<
"Seeds not initialized" << std::endl;
83 std::cout <<
GridLogMessage <<
"Reseeding serial RNG with seed vector " << SerialSeeds << std::endl;
84 sRNG_.SeedFixedIntegers(SerialSeeds);
85 std::cout <<
GridLogMessage <<
"Reseeding parallel RNG with seed vector " << ParallelSeeds << std::endl;
86 pRNG_->SeedFixedIntegers(ParallelSeeds);
94template <class ImplementationPolicy>
96virtual void get_smearing();
99template <class ImplementationPolicy>
100class StoutSmearingModule: public SmearingModule<ImplementationPolicy>{
101SmearedConfiguration<ImplementationPolicy> SmearingPolicy;
GridLogger GridLogError(1, "Error", GridLogColours, "RED")
GridLogger GridLogMessage(1, "Message", GridLogColours, "NORMAL")
#define NAMESPACE_BEGIN(A)
GridSerialRNG & get_sRNG()
std::unique_ptr< GridParallelRNG > pRNG_
RNGModuleParameters Params_
void set_pRNG(GridParallelRNG *pRNG)
GridParallelRNG & get_pRNG()
void set_RNGSeeds(RNGModuleParameters &Params)
std::vector< int > getSerialSeeds()
RNGModuleParameters(Reader< ReaderClass > &Reader)
std::vector< int > getParallelSeeds()
GRID_SERIALIZABLE_CLASS_MEMBERS(RNGModuleParameters, std::string, serial_seeds, std::string, parallel_seeds,)