diff --git a/Hadrons/Modules/MIO/LoadDistilNoise.cc b/Hadrons/Modules/MIO/LoadDistilNoise.cc new file mode 100644 index 00000000..da532830 --- /dev/null +++ b/Hadrons/Modules/MIO/LoadDistilNoise.cc @@ -0,0 +1,7 @@ +#include + +using namespace Grid; +using namespace Hadrons; +using namespace MIO; + +template class Grid::Hadrons::MIO::TLoadDistilNoise; diff --git a/Hadrons/Modules/MIO/LoadDistilNoise.hpp b/Hadrons/Modules/MIO/LoadDistilNoise.hpp new file mode 100644 index 00000000..27b7e76a --- /dev/null +++ b/Hadrons/Modules/MIO/LoadDistilNoise.hpp @@ -0,0 +1,119 @@ +/************************************************************************************* + + Grid physics library, www.github.com/paboyle/Grid + + Source file: Hadrons/Modules/MDistil/LoadDistilNoise.hpp + + Copyright (C) 2019 + + Author: Felix Erben + Author: Michael Marshall + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + See the full license in the file "LICENSE" in the top level distribution directory + *************************************************************************************/ +/* END LEGAL */ + +#ifndef Hadrons_MIO_LoadDistilNoise_hpp_ +#define Hadrons_MIO_LoadDistilNoise_hpp_ + +#include + +BEGIN_HADRONS_NAMESPACE +BEGIN_MODULE_NAMESPACE(MIO) + +/****************************************************************************** + * LoadDistilNoise * + ******************************************************************************/ + +class LoadDistilNoisePar: Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(LoadDistilNoisePar, + std::string, NoiseFileName, + int, nvec, + MDistil::DistilParameters, Distil); +}; + +template +class TLoadDistilNoise: public Module +{ +public: + // constructor + TLoadDistilNoise(const std::string name); + // destructor + virtual ~TLoadDistilNoise(void) {}; + // dependency relation + virtual std::vector getInput(void); + virtual std::vector getOutput(void); + // setup + virtual void setup(void); + // execution + virtual void execute(void); +}; + +MODULE_REGISTER_TMP(LoadDistilNoise, TLoadDistilNoise, MIO); + +/****************************************************************************** + * TLoadDistilNoise implementation * + ******************************************************************************/ +// constructor ///////////////////////////////////////////////////////////////// +template +TLoadDistilNoise::TLoadDistilNoise(const std::string name) +: Module(name) +{} + +// dependencies/products /////////////////////////////////////////////////////// +template +std::vector TLoadDistilNoise::getInput(void) +{ + std::vector in; + + return in; +} + +template +std::vector TLoadDistilNoise::getOutput(void) +{ + std::vector out = {getName()}; + + return out; +} + +// setup /////////////////////////////////////////////////////////////////////// +template +void TLoadDistilNoise::setup(void) +{ + DISTIL_PARAMETERS_DEFINE( true ); + envCreate(MDistil::NoiseTensor, getName(), 1, nnoise, Nt, nvec, Ns); +} + +// execution /////////////////////////////////////////////////////////////////// +template +void TLoadDistilNoise::execute(void) +{ + auto &noises = envGet(MDistil::NoiseTensor, getName()); + std::string sNoiseName{ par().NoiseFileName }; + sNoiseName.append( 1, '.' ); + sNoiseName.append( std::to_string( vm().getTrajectory() ) ); + noises.read(sNoiseName.c_str()); +} + +END_MODULE_NAMESPACE + +END_HADRONS_NAMESPACE + +#endif // Hadrons_MIO_LoadDistilNoise_hpp_ diff --git a/Hadrons/Modules/MIO/LoadPerambulator.hpp b/Hadrons/Modules/MIO/LoadPerambulator.hpp index 9d30f9fa..23244512 100644 --- a/Hadrons/Modules/MIO/LoadPerambulator.hpp +++ b/Hadrons/Modules/MIO/LoadPerambulator.hpp @@ -108,8 +108,6 @@ void TLoadPerambulator::execute(void) { auto &perambulator = envGet(MDistil::PerambTensor, getName()); std::string sPerambName{ par().PerambFileName }; - if( sPerambName.empty() ) - sPerambName = getName(); sPerambName.append( 1, '.' ); sPerambName.append( std::to_string( vm().getTrajectory() ) ); perambulator.read(sPerambName.c_str());