From 04a661cafe10abc0d69d5a88ae7e6f6d45321388 Mon Sep 17 00:00:00 2001 From: Michael Marshall <43034299+mmphys@users.noreply.github.com> Date: Tue, 10 Sep 2019 14:49:24 +0100 Subject: [PATCH] Remove unused modules BC2 and Baryon2 --- Hadrons/Modules.hpp | 2 - Hadrons/Modules/MContraction/Baryon2.cc | 35 ---- Hadrons/Modules/MContraction/Baryon2.hpp | 207 ------------------- Hadrons/Modules/MDistil/BC2.cc | 36 ---- Hadrons/Modules/MDistil/BC2.hpp | 244 ----------------------- Hadrons/modules.inc | 4 - 6 files changed, 528 deletions(-) delete mode 100644 Hadrons/Modules/MContraction/Baryon2.cc delete mode 100644 Hadrons/Modules/MContraction/Baryon2.hpp delete mode 100644 Hadrons/Modules/MDistil/BC2.cc delete mode 100644 Hadrons/Modules/MDistil/BC2.hpp diff --git a/Hadrons/Modules.hpp b/Hadrons/Modules.hpp index 85f265cf..098227ee 100644 --- a/Hadrons/Modules.hpp +++ b/Hadrons/Modules.hpp @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -56,7 +55,6 @@ #include #include #include -#include #include #include #include diff --git a/Hadrons/Modules/MContraction/Baryon2.cc b/Hadrons/Modules/MContraction/Baryon2.cc deleted file mode 100644 index b8d3bc52..00000000 --- a/Hadrons/Modules/MContraction/Baryon2.cc +++ /dev/null @@ -1,35 +0,0 @@ -/************************************************************************************* - -Grid physics library, www.github.com/paboyle/Grid - -Source file: Hadrons/Modules/MContraction/Baryon2.cc - -Copyright (C) 2015-2019 - -Author: Antonin Portelli - -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 */ -#include - -using namespace Grid; -using namespace Hadrons; -using namespace MContraction; - -template class Grid::Hadrons::MContraction::TBaryon2; - diff --git a/Hadrons/Modules/MContraction/Baryon2.hpp b/Hadrons/Modules/MContraction/Baryon2.hpp deleted file mode 100644 index 3195b18d..00000000 --- a/Hadrons/Modules/MContraction/Baryon2.hpp +++ /dev/null @@ -1,207 +0,0 @@ -/************************************************************************************* - -Grid physics library, www.github.com/paboyle/Grid - -Source file: Hadrons/Modules/MContraction/Baryon2.hpp - -Copyright (C) 2015-2019 - -Author: Antonin Portelli -Author: Felix Erben - -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_MContraction_Baryon2_hpp_ -#define Hadrons_MContraction_Baryon2_hpp_ - -#include -#include -#include -#include - -BEGIN_HADRONS_NAMESPACE - -/****************************************************************************** - * Baryon2 * - ******************************************************************************/ -BEGIN_MODULE_NAMESPACE(MContraction) - -class Baryon2Par: Serializable -{ -public: - GRID_SERIALIZABLE_CLASS_MEMBERS(Baryon2Par, - std::string, q1, - std::string, q2, - std::string, q3, - std::string, gamma, - std::string, output); -}; - -template -class TBaryon2: public Module -{ -public: - FERM_TYPE_ALIASES(FImpl1, 1); - FERM_TYPE_ALIASES(FImpl2, 2); - FERM_TYPE_ALIASES(FImpl3, 3); - class Result: Serializable - { - public: - GRID_SERIALIZABLE_CLASS_MEMBERS(Result, - std::vector, corr); - }; -public: - // constructor - TBaryon2(const std::string name); - // destructor - virtual ~TBaryon2(void) {}; - // dependency relation - virtual std::vector getInput(void); - virtual std::vector getOutput(void); -protected: - // setup - virtual void setup(void); - // execution - virtual void execute(void); - // Which gamma algebra was specified - Gamma::Algebra al; -}; - -MODULE_REGISTER_TMP(Baryon2, ARG(TBaryon2), MContraction); - -/****************************************************************************** - * TBaryon2 implementation * - ******************************************************************************/ -// constructor ///////////////////////////////////////////////////////////////// -template -TBaryon2::TBaryon2(const std::string name) -: Module(name) -{} - -// dependencies/products /////////////////////////////////////////////////////// -template -std::vector TBaryon2::getInput(void) -{ - std::vector input = {par().q1, par().q2, par().q3}; - - return input; -} - -template -std::vector TBaryon2::getOutput(void) -{ - std::vector out = {}; - - return out; -} - -// setup /////////////////////////////////////////////////////////////////////// -template -void TBaryon2::setup(void) -{ - envTmpLat(LatticeComplex, "c"); - // envTmpLat(PropagatorField1, "diquark"); - // Translate the full string naming the desired gamma structure into the one we need to use - const std::string gamma{ par().gamma }; - int iGamma = 0; - do - { - const char * pGammaName = Gamma::name[iGamma]; - int iLen = 0; - while( pGammaName[iLen] && pGammaName[iLen] != ' ' ) - iLen++; - if( !gamma.compare( 0, gamma.size(), pGammaName, iLen ) ) - break; - } - while( ++iGamma < Gamma::nGamma ); - if( iGamma >= Gamma::nGamma ) { - LOG(Message) << "Unrecognised gamma structure \"" << gamma << "\"" << std::endl; - assert( 0 && "Invalid gamma structure specified" ); - } - switch( iGamma ) { - case Gamma::Algebra::GammaX: - std::cout << "using interpolator C gamma_X" << std::endl; - al = Gamma::Algebra::GammaZGamma5; //Still hardcoded CgX = i gamma_3 gamma_5 - break; - case Gamma::Algebra::GammaY: - std::cout << "using interpolator C gamma_Y" << std::endl; - al = Gamma::Algebra::GammaT; //Still hardcoded CgX = - gamma_4 - break; - case Gamma::Algebra::GammaZ: - std::cout << "using interpolator C gamma_Z" << std::endl; - al = Gamma::Algebra::GammaXGamma5; //Still hardcoded CgX = i gamma_1 gamma_5 - break; - default: - { - LOG(Message) << "Unsupported gamma structure " << gamma << " = " << iGamma << std::endl; - assert( 0 && "Unsupported gamma structure" ); - // or you could do something like - al = static_cast( iGamma ); - break; - } - } - LOG(Message) << "Gamma structure " << gamma << " = " << iGamma - << " translated to " << Gamma::name[al] << std::endl; -} - -// execution /////////////////////////////////////////////////////////////////// -template -void TBaryon2::execute(void) -{ - LOG(Message) << "Computing baryon contractions '" << getName() << "' using" - << " quarks '" << par().q1 << "', and a diquark formed of ('" << par().q2 << "', and '" - << par().q3 << "')" << std::endl; - - auto &q1 = envGet(PropagatorField1, par().q1); - auto &q2 = envGet(PropagatorField2, par().q2); - auto &q3 = envGet(PropagatorField3, par().q3); - envGetTmp(LatticeComplex, c); -// envGetTmp(PropagatorField1, diquark); //ACTUALLY MIX OF 2 AND 3!!!! - Result result; - int nt = env().getDim(Tp); - result.corr.resize(nt); - const std::string gamma{ par().gamma }; - std::vector buf; - - const Gamma GammaA{ Gamma::Algebra::Identity }; - const Gamma GammaB{ al }; - - LatticeSpinColourMatrix diquark( q1._grid ); // TODO: Felix, I added "q1._grid". I presume this is correct? - - diquark = BaryonUtils::quarkContract13(q2*GammaB,GammaB*q3); - - //result = trace(GammaA*GammaA * traceColour(q1*traceSpin(diquark))) + 2.0 * trace(GammaA*GammaA*traceColour(q1*diquark)); - //result = trace(q1*diquark); // TODO: Apologies, Felix - compiler errors - assert( 0 && "TODO: Felix, please fix prior line - compiler errors" ); - - sliceSum(c,buf,Tp); - - for (unsigned int t = 0; t < buf.size(); ++t) - { - result.corr[t] = TensorRemove(buf[t]); - } - - saveResult(par().output, "baryon", result); -} - -END_MODULE_NAMESPACE - -END_HADRONS_NAMESPACE - -#endif // Hadrons_MContraction_Baryon2_hpp_ diff --git a/Hadrons/Modules/MDistil/BC2.cc b/Hadrons/Modules/MDistil/BC2.cc deleted file mode 100644 index 187a2340..00000000 --- a/Hadrons/Modules/MDistil/BC2.cc +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************************* - - Grid physics library, www.github.com/paboyle/Grid - - Source file: Hadrons/Modules/MDistil/BC2.cc - - 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 */ - -#include - -using namespace Grid; -using namespace Hadrons; -using namespace MDistil; - -template class Grid::Hadrons::MDistil::TBC2; diff --git a/Hadrons/Modules/MDistil/BC2.hpp b/Hadrons/Modules/MDistil/BC2.hpp deleted file mode 100644 index a10d4eaa..00000000 --- a/Hadrons/Modules/MDistil/BC2.hpp +++ /dev/null @@ -1,244 +0,0 @@ -/************************************************************************************* - - Grid physics library, www.github.com/paboyle/Grid - - Source file: Hadrons/Modules/MDistil/BC2.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_MDistil_BC2_hpp_ -#define Hadrons_MDistil_BC2_hpp_ - -#include -#include -#include -#include -#include -#include -#include - -// These are members of Distillation -#include - -BEGIN_HADRONS_NAMESPACE - -/****************************************************************************** - * BC2 * - ******************************************************************************/ -BEGIN_MODULE_NAMESPACE(MDistil) - - // general baryon tensor set based on Eigen tensors and Grid-allocated memory - // Dimensions: - // 0 - ext - external field (momentum, EM field, ...) - // 1 - str - dirac structure - // 2 - t - timeslice - // 3 - s - free spin index - // 4 - i - left distillation mode index - // 5 - j - middle distillation mode index - // 6 - k - right distillation mode index - // template - // using BaryonTensorSet = Eigen::TensorMap>; - -class BC2Par: Serializable -{ -public: - GRID_SERIALIZABLE_CLASS_MEMBERS(BC2Par, - std::string, one, - std::string, two, - std::string, three, - std::string, output, - int, parity, - std::vector, mom); -}; - -template -class TBC2: public Module -{ -public: - FERM_TYPE_ALIASES(FImpl,); -public: - // constructor - TBC2(const std::string name); - // destructor - virtual ~TBC2(void) {}; - // dependency relation - virtual std::vector getInput(void); - virtual std::vector getOutput(void); - // setup - virtual void setup(void); - // execution - virtual void execute(void); -private: - bool hasPhase_{false}; - std::string momphName_; - std::vector gamma12_; - std::vector gamma23_; - std::vector> mom_; -protected: - GridCartesian * grid4d; - GridCartesian * grid3d; -}; - -MODULE_REGISTER_TMP(BC2, TBC2, MDistil); - -/****************************************************************************** - * TBC2 implementation * - ******************************************************************************/ -// constructor ///////////////////////////////////////////////////////////////// -template -TBC2::TBC2(const std::string name) -: Module(name) -, momphName_(name + "_momph") -{} - -// dependencies/products /////////////////////////////////////////////////////// -template -std::vector TBC2::getInput(void) -{ - std::vector in = {par().one, par().two, par().three}; - - return in; -} - -template -std::vector TBC2::getOutput(void) -{ - std::vector out = {}; - - return out; -} - -// setup /////////////////////////////////////////////////////////////////////// -template -void TBC2::setup(void) -{ - if(!mom_.size()) { - for (auto &pstr: par().mom) - { - auto p = strToVec(pstr); - - if (p.size() != env().getNd() - 1) - { - HADRONS_ERROR(Size, "Momentum has " + std::to_string(p.size()) + " components instead of " + std::to_string(env().getNd() - 1)); - } - mom_.push_back(p); - } - } - //envCache(std::vector, momphName_, 1, par().mom.size(), envGetGrid(ComplexField)); - static GridCartesian * MyGrid{env().getGrid()}; - if( MyGrid == envGetGrid(ComplexField) ) - LOG(Message) << "envGetGrid(ComplexField) == env().getGrid()" << std::endl; - else - LOG(Message) << "envGetGrid(ComplexField) != env().getGrid()" << std::endl; - envTmp(std::vector, "ph", 1, std::vector()); - envGetTmp(std::vector, ph); - if(!ph.size()) { - for (unsigned int j = 0; j < par().mom.size(); ++j) - ph.push_back(ComplexField(MyGrid)); - } - - envTmpLat(ComplexField, "coor"); -} - -// execution /////////////////////////////////////////////////////////////////// -template -void TBC2::execute(void) -{ - auto &one = envGet(std::vector, par().one); - auto &two = envGet(std::vector, par().two); - auto &three = envGet(std::vector, par().three); - const std::string &output{par().output}; - - int N_1 = static_cast(one.size()); - int N_2 = static_cast(two.size()); - int N_3 = static_cast(three.size()); - - LOG(Message) << "Computing distillation baryon fields" << std::endl; - LOG(Message) << "One: '" << par().one << "' Two: '" << par().two << "' Three: '" << par().three << "'" << std::endl; - LOG(Message) << "Momenta:" << std::endl; - for (auto &p: mom_) - { - LOG(Message) << " " << p << std::endl; - } - - - int Nmom = static_cast(mom_.size()); - const int Nt{env().getDim(Tdir)}; - - int parity = 1; - int orthogDim=3; - - //auto &ph = envGet(std::vector, momphName_); - envGetTmp(std::vector, ph); - - if (!hasPhase_) - { - startTimer("Momentum phases"); - for (unsigned int j = 0; j < Nmom; ++j) - { - Complex i(0.0,1.0); - std::vector p; - - envGetTmp(ComplexField, coor); - ph[j] = zero; - for(unsigned int mu = 0; mu < mom_[j].size(); mu++) - { - LatticeCoordinate(coor, mu); - ph[j] = ph[j] + (mom_[j][mu]/env().getDim(mu))*coor; - } - ph[j] = exp((Real)(2*M_PI)*i*ph[j]); - } - hasPhase_ = true; - stopTimer("Momentum phases"); - } - //envCache(std::vector, momphName_, 1, mom_.size(), envGetGrid(ComplexField)); - - Eigen::Tensor m(Nmom,Nt,N_1,N_2,N_3,4); - //A2Autils::NucleonFieldMom(m, &one[0], &two[0], &three[0], ph, parity, orthogDim); - A2Autils::NucleonFieldMom(m, one, two, three, ph, parity, orthogDim); - for (int is=0 ; is < 4 ; is++){ - for (int t=0 ; t < Nt ; t++){ - std::cout << "BaryonField(is=" << is << ",t=" << t << ") = " << m(0,t,0,0,0,is) << std::endl; - } - } - - //BFieldIO BField_save; - //BField_save.BField = m; - - - GridCartesian * grid = env().getGrid(); - if(grid->IsBoss()) { - std::string filename ="./" + output + ".h5"; - std::cout << "Writing to file " << filename << std::endl; - Grid::Hdf5Writer writer(filename); - //write(writer,"BaryonField",BField_save.BField); - write(writer,"BaryonField",m); - } -} - -END_MODULE_NAMESPACE - -END_HADRONS_NAMESPACE - -#endif // Hadrons_MDistil_BC2_hpp_ diff --git a/Hadrons/modules.inc b/Hadrons/modules.inc index 5fd2f6d8..53e71ee3 100644 --- a/Hadrons/modules.inc +++ b/Hadrons/modules.inc @@ -44,7 +44,6 @@ modules_cc =\ Modules/MDistil/DistilVectors.cc \ Modules/MDistil/BContraction.cc \ Modules/MDistil/Baryon2pt.cc \ - Modules/MDistil/BC2.cc \ Modules/MSource/Momentum.cc \ Modules/MSource/SeqAslash.cc \ Modules/MSource/Z2.cc \ @@ -56,7 +55,6 @@ modules_cc =\ Modules/MContraction/Meson.cc \ Modules/MContraction/A2AAslashField.cc \ Modules/MContraction/SelfContract.cc \ - Modules/MContraction/Baryon2.cc \ Modules/MContraction/Baryon.cc \ Modules/MContraction/Nucleon.cc \ Modules/MContraction/WeakNonEye3pt.cc \ @@ -122,7 +120,6 @@ modules_hpp =\ Modules/MUtilities/PrecisionCast.hpp \ Modules/MDistil/Noises.hpp \ Modules/MDistil/Perambulator.hpp \ - Modules/MDistil/BC2.hpp \ Modules/MDistil/g5_multiply.hpp \ Modules/MDistil/PerambFromSolve.hpp \ Modules/MDistil/Baryon2pt.hpp \ @@ -139,7 +136,6 @@ modules_hpp =\ Modules/MContraction/WeakMesonDecayKl2.hpp \ Modules/MContraction/Nucleon.hpp \ Modules/MContraction/A2AAslashField.hpp \ - Modules/MContraction/Baryon2.hpp \ Modules/MContraction/WeakEye3pt.hpp \ Modules/MContraction/WeakNonEye3pt.hpp \ Modules/MContraction/Baryon.hpp \