diff --git a/extras/Hadrons/Modules.hpp b/extras/Hadrons/Modules.hpp index ad31d2a7..a25419c5 100644 --- a/extras/Hadrons/Modules.hpp +++ b/extras/Hadrons/Modules.hpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/extras/Hadrons/Modules/MScalar/FreeProp.cc b/extras/Hadrons/Modules/MScalar/FreeProp.cc index ba85e041..f0a503ff 100644 --- a/extras/Hadrons/Modules/MScalar/FreeProp.cc +++ b/extras/Hadrons/Modules/MScalar/FreeProp.cc @@ -1,6 +1,5 @@ #include - -#define KERNAME "_" + getName() + "_momKernel" +#include using namespace Grid; using namespace Hadrons; @@ -32,11 +31,11 @@ std::vector TFreeProp::getOutput(void) // setup /////////////////////////////////////////////////////////////////////// void TFreeProp::setup(void) { - std::string kerName = KERNAME; + freeMomPropName_ = FREEMOMPROP(par().mass); - if (!env().hasRegisteredObject(kerName)) + if (!env().hasRegisteredObject(freeMomPropName_)) { - env().registerLattice(kerName); + env().registerLattice(freeMomPropName_); } env().registerLattice(getName()); } @@ -46,22 +45,21 @@ void TFreeProp::execute(void) { ScalarField &prop = *env().createLattice(getName()); ScalarField &source = *env().getObject(par().source); - ScalarField *momKernel; - std::string kerName = KERNAME; + ScalarField *freeMomProp; - if (!env().hasCreatedObject(kerName)) + if (!env().hasCreatedObject(freeMomPropName_)) { LOG(Message) << "Caching momentum space free scalar propagator" << " (mass= " << par().mass << ")..." << std::endl; - momKernel = env().createLattice(kerName); - Scalar::MomentumSpacePropagator(*momKernel, par().mass); + freeMomProp = env().createLattice(freeMomPropName_); + Scalar::MomentumSpacePropagator(*freeMomProp, par().mass); } else { - momKernel = env().getObject(kerName); + freeMomProp = env().getObject(freeMomPropName_); } LOG(Message) << "Computing free scalar propagator..." << std::endl; - Scalar::FreePropagator(source, prop, *momKernel); + Scalar::FreePropagator(source, prop, *freeMomProp); if (!par().output.empty()) { diff --git a/extras/Hadrons/Modules/MScalar/FreeProp.hpp b/extras/Hadrons/Modules/MScalar/FreeProp.hpp index 81bb8121..29f15eda 100644 --- a/extras/Hadrons/Modules/MScalar/FreeProp.hpp +++ b/extras/Hadrons/Modules/MScalar/FreeProp.hpp @@ -37,6 +37,8 @@ public: virtual void setup(void); // execution virtual void execute(void); +private: + std::string freeMomPropName_; }; MODULE_REGISTER_NS(FreeProp, TFreeProp, MScalar); diff --git a/extras/Hadrons/Modules/MScalar/Scalar.hpp b/extras/Hadrons/Modules/MScalar/Scalar.hpp new file mode 100644 index 00000000..db702ff2 --- /dev/null +++ b/extras/Hadrons/Modules/MScalar/Scalar.hpp @@ -0,0 +1,6 @@ +#ifndef Hadrons_Scalar_hpp_ +#define Hadrons_Scalar_hpp_ + +#define FREEMOMPROP(m) "_scalar_mom_prop_" + std::to_string(m) + +#endif // Hadrons_Scalar_hpp_ diff --git a/extras/Hadrons/modules.inc b/extras/Hadrons/modules.inc index b091c38b..dfbe85ff 100644 --- a/extras/Hadrons/modules.inc +++ b/extras/Hadrons/modules.inc @@ -17,6 +17,7 @@ modules_hpp =\ Modules/MGauge/Unit.hpp \ Modules/MScalar/ChargedProp.hpp \ Modules/MScalar/FreeProp.hpp \ + Modules/MScalar/Scalar.hpp \ Modules/MSolver/RBPrecCG.hpp \ Modules/MSource/Point.hpp \ Modules/MSource/SeqGamma.hpp \