From 76f4fef9a21ad4a55b19238c774b47e1f4b3806c Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Thu, 4 Jun 2020 13:15:04 +0100 Subject: [PATCH 01/32] merged Perambulator and PerambFromSolve --- Hadrons/Modules/MDistil/Perambulator.hpp | 88 +++++++++++++++--------- 1 file changed, 56 insertions(+), 32 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index b9e7fbdd..816bfa05 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -50,6 +50,8 @@ class PerambulatorPar: Serializable std::string, noise, std::string, PerambFileName, std::string, UnsmearedSinkFileName, + std::string, unsmearedSink, + int, LoadUnsmearedSink, std::string, DistilParams); }; @@ -89,7 +91,11 @@ TPerambulator::TPerambulator(const std::string name) : Module std::vector TPerambulator::getInput(void) { - return {par().lapevec, par().solver, par().noise, par().DistilParams}; + // return {par().lapevec, par().solver, par().noise, par().DistilParams}; + std::vector out = {par().lapevec, par().solver, par().noise, par().DistilParams}; + const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); + if (bLoadUnsmearedSink) + out.push_back(par().unsmearedSink); } static const std::string UnsmearedSink{ "_unsmeared_sink" }; @@ -102,7 +108,10 @@ std::vector TPerambulator::getOutput(void) std::vector output{ objName }; // If unsmeared sink is specified, then output that as well const std::string UnsmearedSinkFileName{ par().UnsmearedSinkFileName }; - if( !UnsmearedSinkFileName.empty() ) + const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); + const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); + if( bSaveUnsmearedSink ) + //if( !UnsmearedSinkFileName.empty() ) { objName.append( UnsmearedSink ); output.push_back( objName ); @@ -121,26 +130,27 @@ void TPerambulator::setup(void) std::string objName{ getName() }; envCreate(PerambTensor, objName, 1, Nt, dp.nvec, dp.LI, dp.nnoise, dp.inversions, dp.SI); const std::string UnsmearedSinkFileName{ par().UnsmearedSinkFileName }; - if( !UnsmearedSinkFileName.empty() ) + const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); + const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); + if( bSaveUnsmearedSink ) { objName.append( UnsmearedSink ); envCreate(std::vector, objName, 1, dp.nnoise*dp.LI*Ns*dp.inversions, envGetGrid(FermionField)); } - envTmpLat(FermionField, "dist_source"); - envTmpLat(FermionField, "source4d"); - envTmp(FermionField, "source3d", 1, grid3d.get()); - envTmp(ColourVectorField, "source3d_nospin", 1, grid3d.get()); - envTmpLat(FermionField, "result4d"); - envTmpLat(ColourVectorField, "result4d_nospin"); - envTmp(ColourVectorField, "result3d_nospin", 1, grid3d.get()); - envTmp(ColourVectorField, "evec3d", 1, grid3d.get()); - + envTmpLat(FermionField, "dist_source"); + envTmpLat(FermionField, "source4d"); + envTmp(FermionField, "source3d", 1, grid3d.get()); + envTmp(ColourVectorField, "source3d_nospin", 1, grid3d.get()); + envTmpLat(FermionField, "result4d"); + envTmpLat(ColourVectorField, "result4d_nospin"); + envTmp(ColourVectorField, "result3d_nospin", 1, grid3d.get()); + envTmp(ColourVectorField, "evec3d", 1, grid3d.get()); Ls_ = env().getObjectLs(par().solver); - envTmpLat(FermionField, "v4dtmp"); - envTmpLat(FermionField, "v5dtmp", Ls_); - envTmpLat(FermionField, "v5dtmp_sol", Ls_); + envTmpLat(FermionField, "v4dtmp"); + envTmpLat(FermionField, "v5dtmp", Ls_); + envTmpLat(FermionField, "v5dtmp_sol", Ls_); } // execution /////////////////////////////////////////////////////////////////// @@ -161,7 +171,6 @@ void TPerambulator::execute(void) auto &epack = envGet(LapEvecs, par().lapevec); objName.append( UnsmearedSink ); const std::string UnsmearedSinkFileName{ par().UnsmearedSinkFileName }; - const bool bSaveUnsmearedSink( !UnsmearedSinkFileName.empty() ); envGetTmp(FermionField, dist_source); envGetTmp(FermionField, source4d); envGetTmp(FermionField, source3d); @@ -173,6 +182,14 @@ void TPerambulator::execute(void) GridCartesian * const grid4d{ env().getGrid() }; // Owned by environment (so I won't delete it) const int Ntlocal{grid4d->LocalDimensions()[3]}; const int Ntfirst{grid4d->LocalStarts()[3]}; + const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); + const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); + //const bool bSaveUnsmearedSink( !UnsmearedSinkFileName.empty() ); + std::vector unsmeared_sink; + if ( bLoadUnsmearedSink) + { + unsmeared_sink = envGet(std::vector, par().unsmearedSink); + } for (int inoise = 0; inoise < dp.nnoise; inoise++) { @@ -182,25 +199,32 @@ void TPerambulator::execute(void) { for (int ds = 0; ds < dp.SI; ds++) { - LOG(Message) << "LapH source vector from noise " << inoise << " and dilution component (d_k,d_t,d_alpha) : (" << dk << ","<< dt << "," << ds << ")" << std::endl; - dist_source = 0; - evec3d = 0; - for (int it = dt; it < Nt; it += dp.TI) - { - const int t_inv{(dp.tsrc + it)%Nt}; - if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) + if ( bLoadUnsmearedSink) + { + result4d = unsmeared_sink[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; + } + else + { + LOG(Message) << "LapH source vector from noise " << inoise << " and dilution component (d_k,d_t,d_alpha) : (" << dk << ","<< dt << "," << ds << ")" << std::endl; + dist_source = 0; + evec3d = 0; + for (int it = dt; it < Nt; it += dp.TI) { - for (int ik = dk; ik < dp.nvec; ik += dp.LI) + const int t_inv{(dp.tsrc + it)%Nt}; + if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) { - for (int is = ds; is < Ns; is += dp.SI) + for (int ik = dk; ik < dp.nvec; ik += dp.LI) { - ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Tdir); - source3d_nospin = evec3d * noise.tensor(inoise, t_inv, ik, is); - source3d=0; - pokeSpin(source3d,source3d_nospin,is); - source4d=0; - InsertSliceLocal(source3d,source4d,0,t_inv-Ntfirst,Tdir); - dist_source += source4d; + for (int is = ds; is < Ns; is += dp.SI) + { + ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Tdir); + source3d_nospin = evec3d * noise.tensor(inoise, t_inv, ik, is); + source3d=0; + pokeSpin(source3d,source3d_nospin,is); + source4d=0; + InsertSliceLocal(source3d,source4d,0,t_inv-Ntfirst,Tdir); + dist_source += source4d; + } } } } From aec5b0e44333f2bb95fc2511bede97caaf8c1c5d Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Thu, 11 Jun 2020 11:16:33 +0100 Subject: [PATCH 02/32] double free? --- Hadrons/Modules/MDistil/LapEvec.hpp | 11 +---------- Hadrons/Modules/MDistil/Perambulator.hpp | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/Hadrons/Modules/MDistil/LapEvec.hpp b/Hadrons/Modules/MDistil/LapEvec.hpp index 1fc7bcca..40168da9 100644 --- a/Hadrons/Modules/MDistil/LapEvec.hpp +++ b/Hadrons/Modules/MDistil/LapEvec.hpp @@ -3,18 +3,9 @@ * * Copyright (C) 2015 - 2020 * - * Author: Felix Erben - * Author: Michael Marshall - * Author: Antonin Portelli - * Author: Author Name <43034299+mmphys@users.noreply.github.com> - * Author: Felix Erben * Author: Felix Erben - * Author: Michael Marshall <43034299+mmphys@users.noreply.github.com> * Author: Michael Marshall - * Author: ferben - * Author: ferben - * Author: ferben - * Author: ferben + * Author: Antonin Portelli * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 816bfa05..8a8ff11d 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -52,6 +52,7 @@ class PerambulatorPar: Serializable std::string, UnsmearedSinkFileName, std::string, unsmearedSink, int, LoadUnsmearedSink, + int, nvec_reduced, std::string, DistilParams); }; @@ -126,17 +127,20 @@ void TPerambulator::setup(void) MakeLowerDimGrid(grid3d, env().getGrid()); const DistilParameters &dp = envGet(DistilParameters, par().DistilParams); const int Nt{env().getDim(Tdir)}; + const int nvec_reduced{par().nvec_reduced}; + assert(nvec_reduced <= dp.nvec); + std::string objName{ getName() }; - envCreate(PerambTensor, objName, 1, Nt, dp.nvec, dp.LI, dp.nnoise, dp.inversions, dp.SI); + //envCreate(PerambTensor, objName, 1, Nt, dp.nvec, dp.LI, dp.nnoise, dp.inversions, dp.SI); + envCreate(PerambTensor, objName, 1, Nt, nvec_reduced, dp.LI, dp.nnoise, dp.inversions, dp.SI); const std::string UnsmearedSinkFileName{ par().UnsmearedSinkFileName }; const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); if( bSaveUnsmearedSink ) { objName.append( UnsmearedSink ); - envCreate(std::vector, objName, 1, dp.nnoise*dp.LI*Ns*dp.inversions, - envGetGrid(FermionField)); + //envCreate(std::vector, objName, 1, dp.nnoise*dp.LI*Ns*dp.inversions, envGetGrid(FermionField)); } envTmpLat(FermionField, "dist_source"); @@ -185,11 +189,12 @@ void TPerambulator::execute(void) const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); //const bool bSaveUnsmearedSink( !UnsmearedSinkFileName.empty() ); - std::vector unsmeared_sink; + std::vector unsmearedSink; if ( bLoadUnsmearedSink) { - unsmeared_sink = envGet(std::vector, par().unsmearedSink); + //unsmearedSink = envGet(std::vector, par().unsmearedSink); } + const int nvec_reduced{par().nvec_reduced}; for (int inoise = 0; inoise < dp.nnoise; inoise++) { @@ -201,7 +206,7 @@ void TPerambulator::execute(void) { if ( bLoadUnsmearedSink) { - result4d = unsmeared_sink[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; + result4d = unsmearedSink[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; } else { @@ -251,7 +256,8 @@ void TPerambulator::execute(void) for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) { ExtractSliceLocal(result3d_nospin,result4d_nospin,0,t-Ntfirst,Tdir); - for (int ivec = 0; ivec < dp.nvec; ivec++) + //for (int ivec = 0; ivec < dp.nvec; ivec++) + for (int ivec = 0; ivec < nvec_reduced; ivec++) { ExtractSliceLocal(evec3d,epack.evec[ivec],0,t-Ntfirst,Tdir); pokeSpin(perambulator.tensor(t, ivec, dk, inoise,dt,ds),static_cast(innerProduct(evec3d, result3d_nospin)),is); From f27ea260cbcd4b6f461f9b022d38dc9d3eca490f Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Fri, 12 Jun 2020 18:05:38 +0100 Subject: [PATCH 03/32] modules merged, tested and working --- Hadrons/Modules/MDistil/Distil.hpp | 23 +++ Hadrons/Modules/MDistil/DistilVectors.hpp | 41 ++--- Hadrons/Modules/MDistil/Perambulator.hpp | 188 ++++++++++------------ Hadrons/Modules/MIO/LoadLapEvec.cpp | 7 + Hadrons/Modules/MIO/LoadLapEvec.hpp | 118 ++++++++++++++ 5 files changed, 257 insertions(+), 120 deletions(-) create mode 100644 Hadrons/Modules/MIO/LoadLapEvec.cpp create mode 100644 Hadrons/Modules/MIO/LoadLapEvec.hpp diff --git a/Hadrons/Modules/MDistil/Distil.hpp b/Hadrons/Modules/MDistil/Distil.hpp index d110588e..0e01c709 100644 --- a/Hadrons/Modules/MDistil/Distil.hpp +++ b/Hadrons/Modules/MDistil/Distil.hpp @@ -65,6 +65,29 @@ BEGIN_MODULE_NAMESPACE(MDistil) ******************************************************************************/ + +#define DIST_SOURCE \ +for (int it = dt; it < Nt; it += dp.TI) \ +{ \ + const int t_inv{(dp.tsrc + it)%Nt}; \ + if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) \ + { \ + for (int ik = dk; ik < dp.nvec; ik += dp.LI) \ + { \ + for (int is = ds; is < Ns; is += dp.SI) \ + { \ + ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Tdir); \ + cv3dtmp = evec3d * noise.tensor(inoise, t_inv, ik, is); \ + fermion3dtmp=0; \ + pokeSpin(fermion3dtmp,cv3dtmp,is); \ + fermion4dtmp=0; \ + InsertSliceLocal(fermion3dtmp,fermion4dtmp,0,t_inv-Ntfirst,Tdir); \ + dist_source += fermion4dtmp; \ + } \ + } \ + } \ +} + struct DistilParameters: Serializable { GRID_SERIALIZABLE_CLASS_MEMBERS(DistilParameters, int, nvec, diff --git a/Hadrons/Modules/MDistil/DistilVectors.hpp b/Hadrons/Modules/MDistil/DistilVectors.hpp index b9891204..18e430ee 100644 --- a/Hadrons/Modules/MDistil/DistilVectors.hpp +++ b/Hadrons/Modules/MDistil/DistilVectors.hpp @@ -143,10 +143,10 @@ void TDistilVectors::setup(void) GridCartesian * const grid4d{env().getGrid()}; MakeLowerDimGrid(grid3d, grid4d); - envTmpLat(FermionField, "source4d"); - envTmp(FermionField, "source3d", 1, grid3d.get()); - envTmp(ColourVectorField, "source3d_nospin", 1, grid3d.get()); - envTmp(FermionField, "sink3d", 1, grid3d.get()); + envTmpLat(FermionField, "dist_source"); + envTmpLat(FermionField, "fermion4dtmp"); + envTmp(FermionField, "fermion3dtmp", 1, grid3d.get()); + envTmp(ColourVectorField, "cv3dtmp", 1, grid3d.get()); envTmp(ColourVectorField, "evec3d", 1, grid3d.get()); } @@ -159,10 +159,10 @@ void TDistilVectors::execute(void) auto &epack = envGet(Grid::Hadrons::EigenPack, par().lapevec); const DistilParameters &dp{envGet(DistilParameters, par().DistilParams)}; - envGetTmp(FermionField, source4d); - envGetTmp(FermionField, source3d); - envGetTmp(ColourVectorField, source3d_nospin); - envGetTmp(FermionField, sink3d); + envGetTmp(FermionField, dist_source); + envGetTmp(FermionField, fermion4dtmp); + envGetTmp(FermionField, fermion3dtmp); + envGetTmp(ColourVectorField, cv3dtmp); envGetTmp(ColourVectorField, evec3d); GridCartesian * const grid4d{env().getGrid()}; @@ -184,7 +184,10 @@ void TDistilVectors::execute(void) for (int ds = 0; ds < dp.SI; ds++) { vecindex = inoise + dp.nnoise * (dk + dp.LI * (ds + dp.SI * dt)); - rho[vecindex] = 0; + dist_source = 0; + DIST_SOURCE + rho[vecindex]=dist_source; + /*rho[vecindex] = 0; for (int it = dt; it < Nt; it += dp.TI) { const int t_inv{(dp.tsrc + it)%Nt}; @@ -195,16 +198,16 @@ void TDistilVectors::execute(void) for (int is = ds; is < Ns; is += dp.SI) { ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Tdir); - source3d_nospin = evec3d * noise.tensor(inoise, t_inv, ik, is); - source3d=0; - pokeSpin(source3d,source3d_nospin,is); - source4d=0; - InsertSliceLocal(source3d,source4d,0,t_inv-Ntfirst,Tdir); - rho[vecindex] += source4d; + cv3dtmp = evec3d * noise.tensor(inoise, t_inv, ik, is); + fermion3dtmp=0; + pokeSpin(fermion3dtmp,cv3dtmp,is); + fermion4dtmp=0; + InsertSliceLocal(fermion3dtmp,fermion4dtmp,0,t_inv-Ntfirst,Tdir); + rho[vecindex] += fermion4dtmp; } } } - } + }*/ } } } @@ -225,13 +228,13 @@ void TDistilVectors::execute(void) phi[vecindex] = 0; for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) { - sink3d=0; + fermion3dtmp=0; for (int ivec = 0; ivec < dp.nvec; ivec++) { ExtractSliceLocal(evec3d,epack.evec[ivec],0,t-Ntfirst,Tdir); - sink3d += evec3d * perambulator.tensor(t, ivec, dk, inoise,dt,ds); + fermion3dtmp += evec3d * perambulator.tensor(t, ivec, dk, inoise,dt,ds); } - InsertSliceLocal(sink3d,phi[vecindex],0,t-Ntfirst,Tdir); + InsertSliceLocal(fermion3dtmp,phi[vecindex],0,t-Ntfirst,Tdir); } } } diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 8a8ff11d..4dee7eda 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -41,6 +41,9 @@ BEGIN_MODULE_NAMESPACE(MDistil) * Perambulator * ******************************************************************************/ +GRID_SERIALIZABLE_ENUM(Mode, undef, perambOnly, 0, inputSolve, 1, outputSolve, 2); + + class PerambulatorPar: Serializable { public: @@ -48,11 +51,11 @@ class PerambulatorPar: Serializable std::string, lapevec, std::string, solver, std::string, noise, - std::string, PerambFileName, - std::string, UnsmearedSinkFileName, - std::string, unsmearedSink, - int, LoadUnsmearedSink, - int, nvec_reduced, + std::string, perambFileName, + std::string, unsmearedSolveFileName, + std::string, unsmearedSolve, + Mode, perambMode, + int, nVec, std::string, DistilParams); }; @@ -92,14 +95,16 @@ TPerambulator::TPerambulator(const std::string name) : Module std::vector TPerambulator::getInput(void) { - // return {par().lapevec, par().solver, par().noise, par().DistilParams}; - std::vector out = {par().lapevec, par().solver, par().noise, par().DistilParams}; - const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); - if (bLoadUnsmearedSink) - out.push_back(par().unsmearedSink); + std::vector out={par().lapevec, par().solver, par().noise, par().DistilParams}; + Mode perambMode{par().perambMode}; + if(perambMode == Mode::inputSolve) + { + std::cout<< "unsmeared solves are an input" << std::endl; + out.push_back(par().unsmearedSolve); + } + return out; } -static const std::string UnsmearedSink{ "_unsmeared_sink" }; template std::vector TPerambulator::getOutput(void) @@ -107,14 +112,11 @@ std::vector TPerambulator::getOutput(void) // Always return perambulator with name of module std::string objName{ getName() }; std::vector output{ objName }; - // If unsmeared sink is specified, then output that as well - const std::string UnsmearedSinkFileName{ par().UnsmearedSinkFileName }; - const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); - const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); - if( bSaveUnsmearedSink ) - //if( !UnsmearedSinkFileName.empty() ) + Mode perambMode{par().perambMode}; + if(perambMode == Mode::outputSolve) { - objName.append( UnsmearedSink ); + std::cout<< "unsmeared solves are an output" << std::endl; + objName.append( "_unsmeared_solve" ); output.push_back( objName ); } return output; @@ -127,34 +129,28 @@ void TPerambulator::setup(void) MakeLowerDimGrid(grid3d, env().getGrid()); const DistilParameters &dp = envGet(DistilParameters, par().DistilParams); const int Nt{env().getDim(Tdir)}; - const int nvec_reduced{par().nvec_reduced}; - assert(nvec_reduced <= dp.nvec); - std::string objName{ getName() }; - //envCreate(PerambTensor, objName, 1, Nt, dp.nvec, dp.LI, dp.nnoise, dp.inversions, dp.SI); - envCreate(PerambTensor, objName, 1, Nt, nvec_reduced, dp.LI, dp.nnoise, dp.inversions, dp.SI); - const std::string UnsmearedSinkFileName{ par().UnsmearedSinkFileName }; - const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); - const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); - if( bSaveUnsmearedSink ) + envCreate(PerambTensor, objName, 1, Nt, dp.nvec, dp.LI, dp.nnoise, dp.inversions, dp.SI); + Mode perambMode{par().perambMode}; + if(perambMode == Mode::outputSolve) { - objName.append( UnsmearedSink ); - //envCreate(std::vector, objName, 1, dp.nnoise*dp.LI*Ns*dp.inversions, envGetGrid(FermionField)); + std::cout<< "setting up output field for unsmeared solves" << std::endl; + objName.append( "_unsmeared_solve" ); + envCreate(std::vector, objName, 1, dp.nnoise*dp.LI*Ns*dp.inversions, + envGetGrid(FermionField)); } - envTmpLat(FermionField, "dist_source"); - envTmpLat(FermionField, "source4d"); - envTmp(FermionField, "source3d", 1, grid3d.get()); - envTmp(ColourVectorField, "source3d_nospin", 1, grid3d.get()); - envTmpLat(FermionField, "result4d"); - envTmpLat(ColourVectorField, "result4d_nospin"); - envTmp(ColourVectorField, "result3d_nospin", 1, grid3d.get()); - envTmp(ColourVectorField, "evec3d", 1, grid3d.get()); + envTmpLat(FermionField, "dist_source"); + envTmpLat(FermionField, "fermion4dtmp"); + envTmp(FermionField, "fermion3dtmp", 1, grid3d.get()); + envTmpLat(ColourVectorField, "cv4dtmp"); + envTmp(ColourVectorField, "cv3dtmp", 1, grid3d.get()); + envTmp(ColourVectorField, "evec3d", 1, grid3d.get()); + Ls_ = env().getObjectLs(par().solver); - envTmpLat(FermionField, "v4dtmp"); - envTmpLat(FermionField, "v5dtmp", Ls_); - envTmpLat(FermionField, "v5dtmp_sol", Ls_); + envTmpLat(FermionField, "v5dtmp", Ls_); + envTmpLat(FermionField, "v5dtmp_sol", Ls_); } // execution /////////////////////////////////////////////////////////////////// @@ -166,35 +162,30 @@ void TPerambulator::execute(void) auto &solver=envGet(Solver, par().solver); auto &mat = solver.getFMat(); - envGetTmp(FermionField, v4dtmp); envGetTmp(FermionField, v5dtmp); envGetTmp(FermionField, v5dtmp_sol); auto &noise = envGet(NoiseTensor, par().noise); std::string objName{ getName() }; auto &perambulator = envGet(PerambTensor, objName); auto &epack = envGet(LapEvecs, par().lapevec); - objName.append( UnsmearedSink ); - const std::string UnsmearedSinkFileName{ par().UnsmearedSinkFileName }; - envGetTmp(FermionField, dist_source); - envGetTmp(FermionField, source4d); - envGetTmp(FermionField, source3d); - envGetTmp(ColourVectorField, source3d_nospin); - envGetTmp(FermionField, result4d); - envGetTmp(ColourVectorField, result4d_nospin); - envGetTmp(ColourVectorField, result3d_nospin); + objName.append( "_unsmeared_solve" ); + envGetTmp(FermionField, dist_source); + envGetTmp(FermionField, fermion4dtmp); + envGetTmp(FermionField, fermion3dtmp); + envGetTmp(ColourVectorField, cv4dtmp); + envGetTmp(ColourVectorField, cv3dtmp); envGetTmp(ColourVectorField, evec3d); GridCartesian * const grid4d{ env().getGrid() }; // Owned by environment (so I won't delete it) const int Ntlocal{grid4d->LocalDimensions()[3]}; const int Ntfirst{grid4d->LocalStarts()[3]}; - const bool bLoadUnsmearedSink( par().LoadUnsmearedSink == 1 ); - const bool bSaveUnsmearedSink( !bLoadUnsmearedSink && !UnsmearedSinkFileName.empty() ); - //const bool bSaveUnsmearedSink( !UnsmearedSinkFileName.empty() ); - std::vector unsmearedSink; - if ( bLoadUnsmearedSink) - { - //unsmearedSink = envGet(std::vector, par().unsmearedSink); - } - const int nvec_reduced{par().nvec_reduced}; + + Mode perambMode{par().perambMode}; + std::cout<< "Mode " << perambMode << std::endl; + + std::vector solveIn; + if(perambMode == Mode::inputSolve){ + solveIn = envGet(std::vector, par().unsmearedSolve); + } for (int inoise = 0; inoise < dp.nnoise; inoise++) { @@ -204,16 +195,14 @@ void TPerambulator::execute(void) { for (int ds = 0; ds < dp.SI; ds++) { - if ( bLoadUnsmearedSink) - { - result4d = unsmearedSink[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; - } - else - { + if(perambMode == Mode::inputSolve){ + fermion4dtmp = solveIn[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; + } else { LOG(Message) << "LapH source vector from noise " << inoise << " and dilution component (d_k,d_t,d_alpha) : (" << dk << ","<< dt << "," << ds << ")" << std::endl; dist_source = 0; evec3d = 0; - for (int it = dt; it < Nt; it += dp.TI) + DIST_SOURCE + /*for (int it = dt; it < Nt; it += dp.TI) { const int t_inv{(dp.tsrc + it)%Nt}; if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) @@ -223,44 +212,41 @@ void TPerambulator::execute(void) for (int is = ds; is < Ns; is += dp.SI) { ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Tdir); - source3d_nospin = evec3d * noise.tensor(inoise, t_inv, ik, is); - source3d=0; - pokeSpin(source3d,source3d_nospin,is); - source4d=0; - InsertSliceLocal(source3d,source4d,0,t_inv-Ntfirst,Tdir); - dist_source += source4d; - } + cv3dtmp = evec3d * noise.tensor(inoise, t_inv, ik, is); + fermion3dtmp=0; + pokeSpin(fermion3dtmp,cv3dtmp,is); + fermion4dtmp=0; + InsertSliceLocal(fermion3dtmp,fermion4dtmp,0,t_inv-Ntfirst,Tdir); + dist_source += fermion4dtmp; + } } } + }*/ + fermion4dtmp=0; + if (Ls_ == 1) + solver(fermion4dtmp, dist_source); + else + { + mat.ImportPhysicalFermionSource(dist_source, v5dtmp); + solver(v5dtmp_sol, v5dtmp); + mat.ExportPhysicalFermionSolution(v5dtmp_sol, fermion4dtmp); } - } - result4d=0; - v4dtmp = dist_source; - if (Ls_ == 1) - solver(result4d, v4dtmp); - else - { - mat.ImportPhysicalFermionSource(v4dtmp, v5dtmp); - solver(v5dtmp_sol, v5dtmp); - mat.ExportPhysicalFermionSolution(v5dtmp_sol, v4dtmp); - result4d = v4dtmp; - } - if( bSaveUnsmearedSink ) - { - auto &unsmeared_sink = envGet(std::vector, objName); - unsmeared_sink[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))] = result4d; - } + if(perambMode == Mode::outputSolve) + { + auto &solveOut = envGet(std::vector, objName); + solveOut[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))] = fermion4dtmp; + } + } for (int is = 0; is < Ns; is++) { - result4d_nospin = peekSpin(result4d,is); + cv4dtmp = peekSpin(fermion4dtmp,is); for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) { - ExtractSliceLocal(result3d_nospin,result4d_nospin,0,t-Ntfirst,Tdir); - //for (int ivec = 0; ivec < dp.nvec; ivec++) - for (int ivec = 0; ivec < nvec_reduced; ivec++) + ExtractSliceLocal(cv3dtmp,cv4dtmp,0,t-Ntfirst,Tdir); + for (int ivec = 0; ivec < dp.nvec; ivec++) { ExtractSliceLocal(evec3d,epack.evec[ivec],0,t-Ntfirst,Tdir); - pokeSpin(perambulator.tensor(t, ivec, dk, inoise,dt,ds),static_cast(innerProduct(evec3d, result3d_nospin)),is); + pokeSpin(perambulator.tensor(t, ivec, dk, inoise,dt,ds),static_cast(innerProduct(evec3d, cv3dtmp)),is); } } } @@ -295,18 +281,18 @@ void TPerambulator::execute(void) // Save the perambulator to disk from the boss node if (grid4d->IsBoss()) { - std::string sPerambName {par().PerambFileName}; + std::string sPerambName {par().perambFileName}; sPerambName.append("."); sPerambName.append(std::to_string(vm().getTrajectory())); perambulator.write(sPerambName.c_str()); } - //Save the unsmeared sinks if filename specified - if (bSaveUnsmearedSink) + //Save the unsmeared solves if module outpus them and filename specified + if(perambMode == Mode::outputSolve and !par().unsmearedSolveFileName.empty()) { - LOG(Message) << "Writing unsmeared sink to " << UnsmearedSinkFileName << std::endl; - auto &unsmeared_sink = envGet(std::vector, objName); - A2AVectorsIo::write(UnsmearedSinkFileName, unsmeared_sink, false, vm().getTrajectory()); + LOG(Message) << "Writing unsmeared solve to " << par().unsmearedSolveFileName << std::endl; + auto &solveOut = envGet(std::vector, objName); + A2AVectorsIo::write(par().unsmearedSolveFileName, solveOut, false, vm().getTrajectory()); } } diff --git a/Hadrons/Modules/MIO/LoadLapEvec.cpp b/Hadrons/Modules/MIO/LoadLapEvec.cpp new file mode 100644 index 00000000..ba77c8fb --- /dev/null +++ b/Hadrons/Modules/MIO/LoadLapEvec.cpp @@ -0,0 +1,7 @@ +#include + +using namespace Grid; +using namespace Hadrons; +using namespace MIO; + +template class Grid::Hadrons::MIO::TLoadLapEvec; diff --git a/Hadrons/Modules/MIO/LoadLapEvec.hpp b/Hadrons/Modules/MIO/LoadLapEvec.hpp new file mode 100644 index 00000000..cb48e79e --- /dev/null +++ b/Hadrons/Modules/MIO/LoadLapEvec.hpp @@ -0,0 +1,118 @@ +/* + * LoadPerambulator.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * + * Copyright (C) 2015 - 2020 + * + * Author: Felix Erben + * Author: Michael Marshall + * + * Hadrons 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. + * + * Hadrons 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 Hadrons. If not, see . + * + * See the full license in the file "LICENSE" in the top level distribution + * directory. + */ + +/* END LEGAL */ +#ifndef Hadrons_MIO_LoadLapEvec_hpp_ +#define Hadrons_MIO_LoadLapEvec_hpp_ + +#include +#include +#include + +#include + +BEGIN_HADRONS_NAMESPACE + +/****************************************************************************** + * LoadLapEvec * + ******************************************************************************/ +BEGIN_MODULE_NAMESPACE(MIO) + +class LoadLapEvecPar: Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(LoadLapEvecPar, + std::string, LapEvecFileName, + int, nVec); +}; + +template +class TLoadLapEvec: public Module +{ +public: + // constructor + TLoadLapEvec(const std::string name); + // destructor + virtual ~TLoadLapEvec(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(LoadLapEvec, TLoadLapEvec, MIO); + +/****************************************************************************** + * TLoadLapEvec implementation * + ******************************************************************************/ +// constructor ///////////////////////////////////////////////////////////////// +template +TLoadLapEvec::TLoadLapEvec(const std::string name) +: Module(name) +{} + +// dependencies/products /////////////////////////////////////////////////////// +template +std::vector TLoadLapEvec::getInput(void) +{ + std::vector in; + + return in; +} + +template +std::vector TLoadLapEvec::getOutput(void) +{ + std::vector out = {getName()}; + + return out; +} + +// setup /////////////////////////////////////////////////////////////////////// +template +void TLoadLapEvec::setup(void) +{ + envCreate(MDistil::LapEvecs, getName(), 1, par().nVec, env().getGrid()); +} + +// execution /////////////////////////////////////////////////////////////////// +template +void TLoadLapEvec::execute(void) +{ + auto & LapEvec4d = envGet(MDistil::LapEvecs, getName() ); + std::string fileName{ par().LapEvecFileName }; + fileName.append( 1, '.' ); + fileName.append( std::to_string( vm().getTrajectory() ) ); + LapEvec4d.read(fileName.c_str(),false); +} + +END_MODULE_NAMESPACE + +END_HADRONS_NAMESPACE + +#endif // Hadrons_MIO_LoadLapEvec_hpp_ From b8511487b54f6039fc58334ebd1ee4ba7bebf4ee Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Tue, 7 Jul 2020 10:44:50 +0100 Subject: [PATCH 04/32] implemented revision changes --- Hadrons/Modules/MDistil/Distil.hpp | 2 ++ Hadrons/Modules/MDistil/Perambulator.hpp | 33 ++++++++++++------------ 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Hadrons/Modules/MDistil/Distil.hpp b/Hadrons/Modules/MDistil/Distil.hpp index 0e01c709..e50a9bba 100644 --- a/Hadrons/Modules/MDistil/Distil.hpp +++ b/Hadrons/Modules/MDistil/Distil.hpp @@ -66,6 +66,8 @@ BEGIN_MODULE_NAMESPACE(MDistil) ******************************************************************************/ +GRID_SERIALIZABLE_ENUM(pMode, undef, perambOnly, 0, inputSolve, 1, outputSolve, 2); + #define DIST_SOURCE \ for (int it = dt; it < Nt; it += dp.TI) \ { \ diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 4dee7eda..def6477a 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -41,7 +41,6 @@ BEGIN_MODULE_NAMESPACE(MDistil) * Perambulator * ******************************************************************************/ -GRID_SERIALIZABLE_ENUM(Mode, undef, perambOnly, 0, inputSolve, 1, outputSolve, 2); class PerambulatorPar: Serializable @@ -54,7 +53,7 @@ class PerambulatorPar: Serializable std::string, perambFileName, std::string, unsmearedSolveFileName, std::string, unsmearedSolve, - Mode, perambMode, + pMode, perambMode, int, nVec, std::string, DistilParams); }; @@ -96,10 +95,10 @@ template std::vector TPerambulator::getInput(void) { std::vector out={par().lapevec, par().solver, par().noise, par().DistilParams}; - Mode perambMode{par().perambMode}; - if(perambMode == Mode::inputSolve) + pMode perambMode{par().perambMode}; + if(perambMode == pMode::inputSolve) { - std::cout<< "unsmeared solves are an input" << std::endl; + LOG(Message) << "unsmeared solves are an input" << std::endl; out.push_back(par().unsmearedSolve); } return out; @@ -112,10 +111,10 @@ std::vector TPerambulator::getOutput(void) // Always return perambulator with name of module std::string objName{ getName() }; std::vector output{ objName }; - Mode perambMode{par().perambMode}; - if(perambMode == Mode::outputSolve) + pMode perambMode{par().perambMode}; + if(perambMode == pMode::outputSolve) { - std::cout<< "unsmeared solves are an output" << std::endl; + LOG(Message)<< "unsmeared solves are an output" << std::endl; objName.append( "_unsmeared_solve" ); output.push_back( objName ); } @@ -132,10 +131,10 @@ void TPerambulator::setup(void) std::string objName{ getName() }; envCreate(PerambTensor, objName, 1, Nt, dp.nvec, dp.LI, dp.nnoise, dp.inversions, dp.SI); - Mode perambMode{par().perambMode}; - if(perambMode == Mode::outputSolve) + pMode perambMode{par().perambMode}; + if(perambMode == pMode::outputSolve) { - std::cout<< "setting up output field for unsmeared solves" << std::endl; + LOG(Message)<< "setting up output field for unsmeared solves" << std::endl; objName.append( "_unsmeared_solve" ); envCreate(std::vector, objName, 1, dp.nnoise*dp.LI*Ns*dp.inversions, envGetGrid(FermionField)); @@ -179,11 +178,11 @@ void TPerambulator::execute(void) const int Ntlocal{grid4d->LocalDimensions()[3]}; const int Ntfirst{grid4d->LocalStarts()[3]}; - Mode perambMode{par().perambMode}; - std::cout<< "Mode " << perambMode << std::endl; + pMode perambMode{par().perambMode}; + LOG(Message)<< "Mode " << perambMode << std::endl; std::vector solveIn; - if(perambMode == Mode::inputSolve){ + if(perambMode == pMode::inputSolve){ solveIn = envGet(std::vector, par().unsmearedSolve); } @@ -195,7 +194,7 @@ void TPerambulator::execute(void) { for (int ds = 0; ds < dp.SI; ds++) { - if(perambMode == Mode::inputSolve){ + if(perambMode == pMode::inputSolve){ fermion4dtmp = solveIn[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; } else { LOG(Message) << "LapH source vector from noise " << inoise << " and dilution component (d_k,d_t,d_alpha) : (" << dk << ","<< dt << "," << ds << ")" << std::endl; @@ -231,7 +230,7 @@ void TPerambulator::execute(void) solver(v5dtmp_sol, v5dtmp); mat.ExportPhysicalFermionSolution(v5dtmp_sol, fermion4dtmp); } - if(perambMode == Mode::outputSolve) + if(perambMode == pMode::outputSolve) { auto &solveOut = envGet(std::vector, objName); solveOut[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))] = fermion4dtmp; @@ -288,7 +287,7 @@ void TPerambulator::execute(void) } //Save the unsmeared solves if module outpus them and filename specified - if(perambMode == Mode::outputSolve and !par().unsmearedSolveFileName.empty()) + if(perambMode == pMode::outputSolve and !par().unsmearedSolveFileName.empty()) { LOG(Message) << "Writing unsmeared solve to " << par().unsmearedSolveFileName << std::endl; auto &solveOut = envGet(std::vector, objName); From 89ca264359d6d1cbff5c94ab07361de41cc3997e Mon Sep 17 00:00:00 2001 From: Raoul Hodgson Date: Fri, 10 Jul 2020 15:33:20 +0100 Subject: [PATCH 05/32] Added source sink module --- Hadrons/Modules/MSink/SourceSink.cpp | 33 +++++++ Hadrons/Modules/MSink/SourceSink.hpp | 130 +++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 Hadrons/Modules/MSink/SourceSink.cpp create mode 100644 Hadrons/Modules/MSink/SourceSink.hpp diff --git a/Hadrons/Modules/MSink/SourceSink.cpp b/Hadrons/Modules/MSink/SourceSink.cpp new file mode 100644 index 00000000..b0e2280d --- /dev/null +++ b/Hadrons/Modules/MSink/SourceSink.cpp @@ -0,0 +1,33 @@ +/* + * SourceSink.cpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * + * Copyright (C) 2015 - 2020 + * + * Author: Antonin Portelli + * + * Hadrons 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. + * + * Hadrons 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 Hadrons. If not, see . + * + * 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 MSink; + +template class Grid::Hadrons::MSink::TSourceSink; + diff --git a/Hadrons/Modules/MSink/SourceSink.hpp b/Hadrons/Modules/MSink/SourceSink.hpp new file mode 100644 index 00000000..19ed656a --- /dev/null +++ b/Hadrons/Modules/MSink/SourceSink.hpp @@ -0,0 +1,130 @@ + +/* + * SourceSink.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * + * Copyright (C) 2015 - 2020 + * + * Author: Raoul Hodgson + * + * Hadrons 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. + * + * Hadrons 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 Hadrons. If not, see . + * + * See the full license in the file "LICENSE" in the top level distribution + * directory. + */ + +/* END LEGAL */ + +#ifndef Hadrons_MSink_SourceSink_hpp_ +#define Hadrons_MSink_SourceSink_hpp_ + +#include +#include +#include + +BEGIN_HADRONS_NAMESPACE + +/****************************************************************************** + * SourceSink * + ******************************************************************************/ +BEGIN_MODULE_NAMESPACE(MSink) + +class SourceSinkPar: Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(SourceSinkPar, + std::string, source); +}; + +template +class TSourceSink: public Module +{ +public: + FERM_TYPE_ALIASES(FImpl,); + SINK_TYPE_ALIASES(); +public: + // constructor + TSourceSink(const std::string name); + // destructor + virtual ~TSourceSink(void) {}; + // dependency relation + virtual std::vector getInput(void); + virtual std::vector getOutput(void); +protected: + // setup + virtual void setup(void); + // execution + virtual void execute(void); +}; + +MODULE_REGISTER_TMP(SourceSink, TSourceSink, MSink); + +/****************************************************************************** + * TSourceSink implementation * + ******************************************************************************/ +// constructor ///////////////////////////////////////////////////////////////// +template +TSourceSink::TSourceSink(const std::string name) +: Module(name) +{} + +// dependencies/products /////////////////////////////////////////////////////// +template +std::vector TSourceSink::getInput(void) +{ + std::vector in = {par().source}; + + return in; +} + +template +std::vector TSourceSink::getOutput(void) +{ + std::vector out = {getName()}; + + return out; +} + +// setup /////////////////////////////////////////////////////////////////////// +template +void TSourceSink::setup(void) +{ + envCreate(SinkFn, getName(), 1, nullptr); +} + + +// execution /////////////////////////////////////////////////////////////////// +template +void TSourceSink::execute(void) +{ + LOG(Message) << "Setting up sink function with source '" << par().source << "' as the sink" << std::endl; + + PropagatorField &source = envGet(PropagatorField, par().source); + + auto sink = [this, source](const PropagatorField &field) + { + SlicedPropagator res; + PropagatorField tmp = source*field; + + sliceSum(tmp, res, Tp); + + return res; + }; + envGet(SinkFn, getName()) = sink; +} + +END_MODULE_NAMESPACE + +END_HADRONS_NAMESPACE + +#endif // Hadrons_MSink_SourceSink_hpp_ From 21e6746e454cd7b754d95c966fa9339d8c1dc38c Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Tue, 14 Jul 2020 14:03:27 +0100 Subject: [PATCH 06/32] added source times --- Hadrons/Modules/MDistil/Perambulator.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index def6477a..855c0438 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -186,6 +186,19 @@ void TPerambulator::execute(void) solveIn = envGet(std::vector, par().unsmearedSolve); } + std::vector> sourceTimes; + + for (int dt = 0; dt < dp.inversions; dt++) + { + std::vector sT; + for (int it = dt; it < Nt; it += dp.TI) + { + sT.push_back(it); + } + sourceTimes.push_back(sT); + } + LOG(Message) << "Source times" << sourceTimes << std::endl; + for (int inoise = 0; inoise < dp.nnoise; inoise++) { for (int dk = 0; dk < dp.LI; dk++) From 138761ec1ef9d2eddc391cc768669aea546082e6 Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Tue, 14 Jul 2020 14:51:47 +0100 Subject: [PATCH 07/32] added class for peramb + source times --- Hadrons/Modules/MDistil/Perambulator.hpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 855c0438..95b954ad 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -58,6 +58,20 @@ class PerambulatorPar: Serializable std::string, DistilParams); }; + +class PerambulatorIO : Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(PerambulatorIO, + PerambTensor, perambulator, + std::vector>, sourceTimes ); + PerambulatorIO(PerambTensor peramb, std::vector> sT) + { + perambulator=peramb; + sourceTimes=sT; + } +}; + template class TPerambulator: public Module { @@ -187,6 +201,8 @@ void TPerambulator::execute(void) } std::vector> sourceTimes; + PerambulatorIO perambObject(perambulator, sourceTimes); + for (int dt = 0; dt < dp.inversions; dt++) { @@ -195,9 +211,9 @@ void TPerambulator::execute(void) { sT.push_back(it); } - sourceTimes.push_back(sT); + perambObject.sourceTimes.push_back(sT); } - LOG(Message) << "Source times" << sourceTimes << std::endl; + LOG(Message) << "Source times" << perambObject.sourceTimes << std::endl; for (int inoise = 0; inoise < dp.nnoise; inoise++) { From 105abde4586e63df5aeb3dd17fddd97d3c0ad38a Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Tue, 14 Jul 2020 16:51:53 +0100 Subject: [PATCH 08/32] test something else.. --- Hadrons/Modules/MDistil/Perambulator.hpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 95b954ad..de9a89c3 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -62,14 +62,11 @@ class PerambulatorPar: Serializable class PerambulatorIO : Serializable { public: + using ET = Eigen::Tensor; GRID_SERIALIZABLE_CLASS_MEMBERS(PerambulatorIO, - PerambTensor, perambulator, + Eigen::TensorMap, tensor, + std::vector, IndexNames, std::vector>, sourceTimes ); - PerambulatorIO(PerambTensor peramb, std::vector> sT) - { - perambulator=peramb; - sourceTimes=sT; - } }; template @@ -201,7 +198,7 @@ void TPerambulator::execute(void) } std::vector> sourceTimes; - PerambulatorIO perambObject(perambulator, sourceTimes); + PerambulatorIO perambObject; for (int dt = 0; dt < dp.inversions; dt++) From bffb74c4fd9aa0fdb6bc659093dab95188c8d43e Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Wed, 15 Jul 2020 11:42:52 +0100 Subject: [PATCH 09/32] added perambulator metadata --- Hadrons/Modules/MDistil/Perambulator.hpp | 24 ++---------------------- Hadrons/NamedTensor.hpp | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index de9a89c3..d7fbbb39 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -58,17 +58,6 @@ class PerambulatorPar: Serializable std::string, DistilParams); }; - -class PerambulatorIO : Serializable -{ -public: - using ET = Eigen::Tensor; - GRID_SERIALIZABLE_CLASS_MEMBERS(PerambulatorIO, - Eigen::TensorMap, tensor, - std::vector, IndexNames, - std::vector>, sourceTimes ); -}; - template class TPerambulator: public Module { @@ -198,7 +187,6 @@ void TPerambulator::execute(void) } std::vector> sourceTimes; - PerambulatorIO perambObject; for (int dt = 0; dt < dp.inversions; dt++) @@ -208,9 +196,9 @@ void TPerambulator::execute(void) { sT.push_back(it); } - perambObject.sourceTimes.push_back(sT); + perambulator.MetaData.sourceTimes.push_back(sT); } - LOG(Message) << "Source times" << perambObject.sourceTimes << std::endl; + LOG(Message) << "Source times" << perambulator.MetaData.sourceTimes << std::endl; for (int inoise = 0; inoise < dp.nnoise; inoise++) { @@ -311,14 +299,6 @@ void TPerambulator::execute(void) sPerambName.append(std::to_string(vm().getTrajectory())); perambulator.write(sPerambName.c_str()); } - - //Save the unsmeared solves if module outpus them and filename specified - if(perambMode == pMode::outputSolve and !par().unsmearedSolveFileName.empty()) - { - LOG(Message) << "Writing unsmeared solve to " << par().unsmearedSolveFileName << std::endl; - auto &solveOut = envGet(std::vector, objName); - A2AVectorsIo::write(par().unsmearedSolveFileName, solveOut, false, vm().getTrajectory()); - } } END_MODULE_NAMESPACE diff --git a/Hadrons/NamedTensor.hpp b/Hadrons/NamedTensor.hpp index ef6dff10..fd451064 100644 --- a/Hadrons/NamedTensor.hpp +++ b/Hadrons/NamedTensor.hpp @@ -49,7 +49,13 @@ BEGIN_HADRONS_NAMESPACE extern const std::string NamedTensorFileExtension; -template +class NamedTensorDefaultMetadata : Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(NamedTensorDefaultMetadata, int, Version); +}; + +template class NamedTensor : Serializable { public: @@ -63,7 +69,8 @@ class NamedTensor : Serializable public: GRID_SERIALIZABLE_CLASS_MEMBERS(NamedTensor, Eigen::TensorMap, tensor, - std::vector, IndexNames ); + std::vector, IndexNames, + MetaData_, MetaData ); // Name of the object and Index names as set in the constructor const std::string &Name_; @@ -179,7 +186,14 @@ class NoiseTensor : public NamedTensor : NamedTensor{Name__, DefaultIndexNames__, nNoise, nT, nVec, nS} {} }; -class PerambTensor : public NamedTensor +class PerambMetadata : Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(PerambMetadata, int, Version, + std::vector>, sourceTimes ); +}; + +class PerambTensor : public NamedTensor { public: static const std::string Name__; From 990b2aa0ff660ebecad3e965fd6689f28deb4aa1 Mon Sep 17 00:00:00 2001 From: Michael Marshall <43034299+mmphys@users.noreply.github.com> Date: Mon, 14 Sep 2020 20:30:54 +0100 Subject: [PATCH 10/32] First version using GlobalSum. Ready for testing --- Hadrons/Modules/MDistil/Perambulator.hpp | 41 +++++++++++++++++------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index def3db22..80ddaf03 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -143,6 +143,19 @@ void TPerambulator::setup(void) envTmpLat(FermionField, "v5dtmp_sol", Ls_); } +template typename std::enable_if::value>::type +GlobalSumHelper(GridCartesian * const grid,T * data,int N) +{ + grid->GlobalSumVector(data,N); +} +template typename std::enable_if<::Grid::EigenIO::is_complex::value>::type +GlobalSumHelper(GridCartesian * const grid,T * data,int N) +{ + using Scalar = typename ::Grid::RealPart::type; + Scalar * p = reinterpret_cast( data ); + grid->GlobalSumVector(p,2*N); +} + // execution /////////////////////////////////////////////////////////////////// template void TPerambulator::execute(void) @@ -244,20 +257,24 @@ void TPerambulator::execute(void) { LOG(Debug) << "Sharing perambulator data with other nodes" << std::endl; const int MySlice {grid4d->_processor_coor[Tdir]}; - const int SliceCount {static_cast(perambulator.tensor.size()/NumSlices)}; - PerambTensor::Scalar * const MyData {perambulator.tensor.data()+MySlice*SliceCount}; - Coordinate coor(Nd); - for (int i = 0 ; i < Tdir ; i++) coor[i] = grid4d->_processor_coor[i]; - for (int i = 1; i < NumSlices ; i++) + const int TensorSize {static_cast(perambulator.tensor.size() * PerambTensor::Traits::count)}; + assert (TensorSize == perambulator.tensor.size() * PerambTensor::Traits::count && "peramb size overflow"); + const int SliceCount {TensorSize/NumSlices}; + using InnerScalar = typename PerambTensor::Traits::scalar_type; + InnerScalar * const PerambData {EigenIO::getFirstScalar( perambulator.tensor )}; + // Zero data for all timeslices other than the slice computed by 3d boss nodes + for (int Slice = 0 ; Slice < SliceCount ; ++Slice) { - coor[Tdir] = (MySlice+i)%NumSlices; - const int SendRank { grid4d->RankFromProcessorCoor(coor) }; - const int RecvSlice { ( MySlice - i + NumSlices ) % NumSlices }; - coor[Tdir] = RecvSlice; - const auto RecvRank = grid4d->RankFromProcessorCoor(coor); - grid4d->SendToRecvFrom(MyData,SendRank, perambulator.tensor.data() - + RecvSlice*SliceCount,RecvRank,SliceCount*sizeof(PerambTensor::Scalar)); + if (!grid3d->IsBoss() || Slice != MySlice) + { + InnerScalar * const SliceData {PerambData + Slice * SliceCount}; + for (int j = 0 ; j < SliceCount ; ++j) + { + SliceData[j] = 0.; + } + } } + GlobalSumHelper(grid4d, PerambData, TensorSize); } // Save the perambulator to disk from the boss node From c082afeff1f0138190d68a2c1d5460973e8f3a9c Mon Sep 17 00:00:00 2001 From: Michael Marshall <43034299+mmphys@users.noreply.github.com> Date: Mon, 14 Sep 2020 20:51:06 +0100 Subject: [PATCH 11/32] GlobalSumHelper not required ... now that I have peeled back to InnerScalar --- Hadrons/Modules/MDistil/Perambulator.hpp | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 80ddaf03..b5da33b6 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -143,19 +143,6 @@ void TPerambulator::setup(void) envTmpLat(FermionField, "v5dtmp_sol", Ls_); } -template typename std::enable_if::value>::type -GlobalSumHelper(GridCartesian * const grid,T * data,int N) -{ - grid->GlobalSumVector(data,N); -} -template typename std::enable_if<::Grid::EigenIO::is_complex::value>::type -GlobalSumHelper(GridCartesian * const grid,T * data,int N) -{ - using Scalar = typename ::Grid::RealPart::type; - Scalar * p = reinterpret_cast( data ); - grid->GlobalSumVector(p,2*N); -} - // execution /////////////////////////////////////////////////////////////////// template void TPerambulator::execute(void) @@ -274,7 +261,7 @@ void TPerambulator::execute(void) } } } - GlobalSumHelper(grid4d, PerambData, TensorSize); + grid4d->GlobalSumVector(PerambData, TensorSize); } // Save the perambulator to disk from the boss node From e064e49d360ab2306cb4bba3a2d5c516f648b7a6 Mon Sep 17 00:00:00 2001 From: Michael Marshall <43034299+mmphys@users.noreply.github.com> Date: Thu, 17 Sep 2020 14:18:54 +0100 Subject: [PATCH 12/32] Without the buffer overrun bug. Urgh. I shouldn't be nocturnal. --- Hadrons/Modules/MDistil/Perambulator.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index b5da33b6..ae12070c 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -7,7 +7,6 @@ * Author: Michael Marshall * Author: Antonin Portelli * Author: Felix Erben - * Author: Michael Marshall <43034299+mmphys@users.noreply.github.com> * Author: ferben * * Hadrons is free software: you can redistribute it and/or modify @@ -250,7 +249,7 @@ void TPerambulator::execute(void) using InnerScalar = typename PerambTensor::Traits::scalar_type; InnerScalar * const PerambData {EigenIO::getFirstScalar( perambulator.tensor )}; // Zero data for all timeslices other than the slice computed by 3d boss nodes - for (int Slice = 0 ; Slice < SliceCount ; ++Slice) + for (int Slice = 0 ; Slice < NumSlices ; ++Slice) { if (!grid3d->IsBoss() || Slice != MySlice) { From e6cba170b33f1b1fdc71603b7c89a01fae3c2a6f Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Thu, 17 Sep 2020 16:17:00 +0100 Subject: [PATCH 13/32] changes --- Hadrons/Modules/MDistil/Perambulator.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index d7fbbb39..00a01c33 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -186,9 +186,6 @@ void TPerambulator::execute(void) solveIn = envGet(std::vector, par().unsmearedSolve); } - std::vector> sourceTimes; - - for (int dt = 0; dt < dp.inversions; dt++) { std::vector sT; From 53f13bf4ec04ab6060a7dddc74b8caa68fa7a30e Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Mon, 19 Oct 2020 11:52:28 +0100 Subject: [PATCH 14/32] Database: mitigating synchronisation issues on parallel FS --- Hadrons/Database.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Hadrons/Database.cpp b/Hadrons/Database.cpp index 63edfc4c..38061a92 100644 --- a/Hadrons/Database.cpp +++ b/Hadrons/Database.cpp @@ -163,6 +163,9 @@ void Database::setFilename(const std::string filename, GridBase *grid, const std { randomWait(100, grid_); execute("PRAGMA journal_mode=" + mode + ";"); +#ifndef HADRONS_SQLITE_SYNC + execute("PRAGMA synchronous = 0;"); +#endif } } From 2d7581217c7d7216548cce2b85d536cc93a2603b Mon Sep 17 00:00:00 2001 From: Raoul Hodgson Date: Mon, 19 Oct 2020 16:41:40 +0100 Subject: [PATCH 15/32] Added option for untraced baryon contraction --- Hadrons/Modules/MContraction/Baryon.hpp | 213 +++++++++++++++++------- 1 file changed, 155 insertions(+), 58 deletions(-) diff --git a/Hadrons/Modules/MContraction/Baryon.hpp b/Hadrons/Modules/MContraction/Baryon.hpp index 09cd0799..299883cd 100644 --- a/Hadrons/Modules/MContraction/Baryon.hpp +++ b/Hadrons/Modules/MContraction/Baryon.hpp @@ -60,6 +60,7 @@ class BaryonPar: Serializable std::string, sinkq3, bool, sim_sink, std::string, gammas, + bool, trace, int, parity, std::string, output); }; @@ -70,8 +71,14 @@ class TBaryon: public Module public: FERM_TYPE_ALIASES(FImpl,); SINK_TYPE_ALIASES(); + BASIC_TYPE_ALIASES(ScalarImplCR, Scalar); SINK_TYPE_ALIASES(Scalar); + + typedef Lattice,Ns>>> FieldMat; + typedef std::vector SlicedPropagatorMat; + typedef std::function SinkFnMat; + class Metadata: Serializable { public: @@ -86,6 +93,7 @@ class TBaryon: public Module int, parity); }; typedef Correlator Result; + typedef Correlator ResultMat; public: // constructor TBaryon(const std::string name); @@ -135,7 +143,12 @@ std::vector TBaryon::getOutput(void) template std::vector TBaryon::getOutputFiles(void) { - std::vector output = {resultFilename(par().output)}; + std::vector output; + + if (par().trace) + output.push_back( resultFilename(par().output) ); + else + output.push_back( resultFilename(par().output+"_Matrix") ); return output; } @@ -199,7 +212,10 @@ void TBaryon::parseGammaString(std::vector &gammaList) template void TBaryon::setup(void) { - envTmpLat(LatticeComplex, "c"); + if (par().trace) + envTmpLat(LatticeComplex, "c"); + else + envTmpLat(SpinMatrixField, "cMat"); } // execution /////////////////////////////////////////////////////////////////// @@ -240,34 +256,32 @@ void TBaryon::execute(void) if (par().sim_sink) assert(par().sinkq1==par().sinkq2 && par().sinkq2==par().sinkq3 && "when sim_sink is true all three sinks must be the same"); - assert(par().parity == 1 || par().parity == -1 && "parity must be 1 or -1"); + assert(par().parity == 1 || par().parity == -1 && "parity must be 1 or -1"); // TODO: allow 0 for traceless? std::vector gammaList; parseGammaString(gammaList); LOG(Message) << "Computing baryon contractions '" << getName() << "'" << std::endl; - LOG(Message) << " using shuffle " << shuffle << " and parity " << par().parity << std::endl; + LOG(Message) << " using shuffle " << shuffle << std::endl; LOG(Message) << " using quarksL (" << quarksL << ") with left propagators (" << propsL[0] << ", " << propsL[1] << ", and " << propsL[2] << ")" << std::endl; - LOG(Message) << " using quarksR (" << quarksR << ") "; + LOG(Message) << " using quarksR (" << quarksR << ") " << std::endl; if (par().sim_sink) - LOG(Message) << "with simultaneous sink " << par().sinkq1 << std::endl; + LOG(Message) << " with simultaneous sink " << par().sinkq1 << std::endl; else - LOG(Message) << "with sinks (" << par().sinkq1 << ", " << par().sinkq2 << ", and " << par().sinkq3 << ")" << std::endl; + LOG(Message) << " with sinks (" << par().sinkq1 << ", " << par().sinkq2 << ", and " << par().sinkq3 << ")" << std::endl; + + if (par().trace) + LOG(Message) << " and parity " << par().parity << std::endl; + else + LOG(Message) << " with no parity projection or trace" << std::endl; for (int iG = 0; iG < gammaList.size(); iG++) LOG(Message) << " with (Gamma^A,Gamma^B)_left = ( " << gammaList[iG].first.first << " , " << gammaList[iG].first.second << "') and (Gamma^A,Gamma^B)_right = ( " << gammaList[iG].second.first << " , " << gammaList[iG].second.second << ")" << std::endl; envGetTmp(LatticeComplex, c); + envGetTmp(SpinMatrixField, cMat); int nt = env().getDim(Tp); - - std::vector result; - Result r; - r.info.parity = par().parity; - - r.info.quarksR = quarksR; - r.info.quarksL = quarksL; - r.info.shuffle = par().shuffle; bool wick_contractions[6]; BaryonUtils::Wick_Contractions(quarksL,quarksR,wick_contractions); @@ -276,16 +290,36 @@ void TBaryon::execute(void) PropagatorField &q2 = envGet(PropagatorField, propsL[1]); PropagatorField &q3 = envGet(PropagatorField, propsL[2]); - if (par().sim_sink) { + std::vector result; + Result r; + r.info.parity = par().parity; + r.info.quarksR = quarksR; + r.info.quarksL = quarksL; + r.info.shuffle = par().shuffle; + + std::vector resultMat; + ResultMat rMat; + rMat.info.parity = 0; // TODO: what should this be? + rMat.info.quarksR = quarksR; + rMat.info.quarksL = quarksL; + rMat.info.shuffle = par().shuffle; + + if (par().sim_sink) { for (unsigned int i = 0; i < gammaList.size(); ++i) { std::vector buf; + std::vector bufMat(nt, Zero()); r.info.gammaA_left = gammaList[i].first.first; r.info.gammaB_left = gammaList[i].first.second; r.info.gammaA_right = gammaList[i].second.first; r.info.gammaB_right = gammaList[i].second.second; + rMat.info.gammaA_left = gammaList[i].first.first; + rMat.info.gammaB_left = gammaList[i].first.second; + rMat.info.gammaA_right = gammaList[i].second.first; + rMat.info.gammaB_right = gammaList[i].second.second; + Gamma gAl(gammaList[i].first.first); Gamma gBl(gammaList[i].first.second); Gamma gAr(gammaList[i].second.first); @@ -294,37 +328,78 @@ void TBaryon::execute(void) std::string ns = vm().getModuleNamespace(env().getObjectModule(par().sinkq1)); if (ns == "MSource") { - c=Zero(); - BaryonUtils::ContractBaryons(q1,q2,q3, - gAl,gBl,gAr,gBr, - wick_contractions, - par().parity, - c); - PropagatorField &sink = envGet(PropagatorField, par().sinkq1); - auto test = closure(trace(sink*c)); - sliceSum(test, buf, Tp); + + if (par().trace) { + c=Zero(); + BaryonUtils::ContractBaryons(q1,q2,q3, + gAl,gBl,gAr,gBr, + wick_contractions, + par().parity, + c); + + auto test = closure(trace(sink*c)); + sliceSum(test, buf, Tp); + } else { + cMat=Zero(); + BaryonUtils::ContractBaryons_matrix(q1,q2,q3, + gAl,gBl,gAr,gBr, + wick_contractions, + cMat); + + auto sinkTr = closure(trace(sink)); + + GridBase *grid = sink.Grid(); + + autoView( vsinkTr, sinkTr, CpuRead); + autoView( vcMat , cMat , CpuWrite); + + accelerator_for(ss, grid->oSites(), grid->Nsimd(), { + vcMat[ss] = vsinkTr[ss]*vcMat[ss]; + } );//end loop over lattice sites + + sliceSum(cMat, bufMat, Tp); + } } else if (ns == "MSink") { - c=Zero(); - BaryonUtils::ContractBaryons(q1,q2,q3, - gAl,gBl,gAr,gBr, - wick_contractions, - par().parity, - c); - - SinkFnScalar &sink = envGet(SinkFnScalar, par().sinkq1); - buf = sink(c); - } - r.corr.clear(); - for (unsigned int t = 0; t < buf.size(); ++t) - { - r.corr.push_back(TensorRemove(buf[t])); + if (par().trace) { + c=Zero(); + BaryonUtils::ContractBaryons(q1,q2,q3, + gAl,gBl,gAr,gBr, + wick_contractions, + par().parity, + c); + + SinkFnScalar &sink = envGet(SinkFnScalar, par().sinkq1); + buf = sink(c); + } else { + cMat=Zero(); + BaryonUtils::ContractBaryons_matrix(q1,q2,q3, + gAl,gBl,gAr,gBr, + wick_contractions, + cMat); + + SinkFnMat &sink = envGet(SinkFnMat, par().sinkq1); + bufMat = sink(cMat); + } + } + + if (par().trace) { + r.corr.clear(); + for (unsigned int t = 0; t < buf.size(); ++t) + r.corr.push_back(TensorRemove(buf[t])); + result.push_back(r); + } else { + rMat.corr.clear(); + for (unsigned int t = 0; t < bufMat.size(); ++t) + rMat.corr.push_back(bufMat[t]); + resultMat.push_back(rMat); } - result.push_back(r); } + } else { + const int epsilon[6][3] = {{0,1,2},{1,2,0},{2,0,1},{0,2,1},{2,1,0},{1,0,2}}; SinkFn* sinkFn[3]; @@ -343,9 +418,19 @@ void TBaryon::execute(void) q3_slice[ie] = (*sinkFn[epsilon[ie][2]])(q3); } - std::vector buf; for (int iG = 0; iG < gammaList.size(); iG++) { - buf = std::vector(nt, Zero()); + std::vector buf(nt, Zero()); + std::vector bufMat(nt, Zero()); + + r.info.gammaA_left = gammaList[iG].first.first; + r.info.gammaB_left = gammaList[iG].first.second; + r.info.gammaA_right = gammaList[iG].second.first; + r.info.gammaB_right = gammaList[iG].second.second; + + rMat.info.gammaA_left = gammaList[iG].first.first; + rMat.info.gammaB_left = gammaList[iG].first.second; + rMat.info.gammaA_right = gammaList[iG].second.first; + rMat.info.gammaB_right = gammaList[iG].second.second; Gamma gAl(gammaList[iG].first.first); Gamma gBl(gammaList[iG].first.second); @@ -359,29 +444,41 @@ void TBaryon::execute(void) for (int i=0; i<6; i++) wc[i] = (i == ie); - BaryonUtils::ContractBaryons_Sliced( q1_slice[ie],q2_slice[ie],q3_slice[ie], - gAl,gBl,gAr,gBr, - wc, - par().parity, - nt, - buf); + if (par().trace) { + BaryonUtils::ContractBaryons_Sliced( q1_slice[ie],q2_slice[ie],q3_slice[ie], + gAl,gBl,gAr,gBr, + wc, + par().parity, + nt, + buf); + } else { + BaryonUtils::ContractBaryons_Sliced_matrix( q1_slice[ie],q2_slice[ie],q3_slice[ie], + gAl,gBl,gAr,gBr, + wc, + nt, + bufMat); + } } } - r.info.gammaA_left = gammaList[iG].first.first; - r.info.gammaB_left = gammaList[iG].first.second; - r.info.gammaA_right = gammaList[iG].second.first; - r.info.gammaB_right = gammaList[iG].second.second; - r.corr.clear(); - for (int t = 0; t < nt; t++) { - r.corr.push_back(TensorRemove(buf[t])); + if (par().trace) { + r.corr.clear(); + for (int t = 0; t < nt; t++) + r.corr.push_back(TensorRemove(buf[t])); + result.push_back(r); + } else { + rMat.corr.clear(); + for (unsigned int t = 0; t < bufMat.size(); ++t) + rMat.corr.push_back(bufMat[t]); + resultMat.push_back(rMat); } - result.push_back(r); } - } - saveResult(par().output, "baryon", result); + if (par().trace) + saveResult(par().output, "baryon", result); + else + saveResult(par().output + "_Matrix", "baryonMat", resultMat); } From 31ebedfb9c79238bfa064e7662622491f8f8dd49 Mon Sep 17 00:00:00 2001 From: Raoul Hodgson Date: Mon, 19 Oct 2020 16:55:57 +0100 Subject: [PATCH 16/32] Changed Point sink to take arbitrary fields --- Hadrons/Modules/MSink/Point.cpp | 7 +++++-- Hadrons/Modules/MSink/Point.hpp | 35 +++++++++++++++++++-------------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/Hadrons/Modules/MSink/Point.cpp b/Hadrons/Modules/MSink/Point.cpp index 75b80395..2c2fc274 100644 --- a/Hadrons/Modules/MSink/Point.cpp +++ b/Hadrons/Modules/MSink/Point.cpp @@ -29,6 +29,9 @@ using namespace Grid; using namespace Hadrons; using namespace MSink; -template class Grid::Hadrons::MSink::TPoint; -template class Grid::Hadrons::MSink::TPoint; +typedef Lattice,Ns>>> SpinMatField; + +template class Grid::Hadrons::MSink::TPoint; +template class Grid::Hadrons::MSink::TPoint; +template class Grid::Hadrons::MSink::TPoint; diff --git a/Hadrons/Modules/MSink/Point.hpp b/Hadrons/Modules/MSink/Point.hpp index bd44f3d0..27ddd56b 100644 --- a/Hadrons/Modules/MSink/Point.hpp +++ b/Hadrons/Modules/MSink/Point.hpp @@ -48,12 +48,14 @@ class PointPar: Serializable std::string, mom); }; -template +template class TPoint: public Module { public: - BASIC_TYPE_ALIASES(FImpl,); - SINK_TYPE_ALIASES(); + typedef Field PropagatorField; + typedef std::vector SlicedPropagator; + typedef std::function SinkFn; + public: // constructor TPoint(const std::string name); @@ -72,30 +74,33 @@ class TPoint: public Module std::string momphName_; }; -MODULE_REGISTER_TMP(Point, TPoint, MSink); -MODULE_REGISTER_TMP(ScalarPoint, TPoint, MSink); +typedef Lattice,Ns>>> SpinMatField; + +MODULE_REGISTER_TMP(Point, TPoint , MSink); +MODULE_REGISTER_TMP(ScalarPoint, TPoint , MSink); +MODULE_REGISTER_TMP(SMatPoint, TPoint , MSink); /****************************************************************************** * TPoint implementation * ******************************************************************************/ // constructor ///////////////////////////////////////////////////////////////// -template -TPoint::TPoint(const std::string name) +template +TPoint::TPoint(const std::string name) : Module(name) , momphName_ (name + "_momph") {} // dependencies/products /////////////////////////////////////////////////////// -template -std::vector TPoint::getInput(void) +template +std::vector TPoint::getInput(void) { std::vector in; return in; } -template -std::vector TPoint::getOutput(void) +template +std::vector TPoint::getOutput(void) { std::vector out = {getName()}; @@ -103,8 +108,8 @@ std::vector TPoint::getOutput(void) } // setup /////////////////////////////////////////////////////////////////////// -template -void TPoint::setup(void) +template +void TPoint::setup(void) { envTmpLat(LatticeComplex, "coor"); envCacheLat(LatticeComplex, momphName_); @@ -112,8 +117,8 @@ void TPoint::setup(void) } // execution /////////////////////////////////////////////////////////////////// -template -void TPoint::execute(void) +template +void TPoint::execute(void) { LOG(Message) << "Setting up point sink function for momentum [" << par().mom << "]" << std::endl; From 30ce3ae7db07d4e90ffc881ad4a772ae8ddd6e66 Mon Sep 17 00:00:00 2001 From: Raoul Hodgson Date: Mon, 19 Oct 2020 16:56:35 +0100 Subject: [PATCH 17/32] Changed Smear module to take arbitrary fields --- Hadrons/Modules/MSink/Smear.cpp | 2 +- Hadrons/Modules/MSink/Smear.hpp | 36 ++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Hadrons/Modules/MSink/Smear.cpp b/Hadrons/Modules/MSink/Smear.cpp index 9355fb1e..5c7db8fd 100644 --- a/Hadrons/Modules/MSink/Smear.cpp +++ b/Hadrons/Modules/MSink/Smear.cpp @@ -29,5 +29,5 @@ using namespace Grid; using namespace Hadrons; using namespace MSink; -template class Grid::Hadrons::MSink::TSmear; +template class Grid::Hadrons::MSink::TSmear; diff --git a/Hadrons/Modules/MSink/Smear.hpp b/Hadrons/Modules/MSink/Smear.hpp index 42aa19d4..84fc4f98 100644 --- a/Hadrons/Modules/MSink/Smear.hpp +++ b/Hadrons/Modules/MSink/Smear.hpp @@ -47,12 +47,12 @@ class SmearPar: Serializable std::string, sink); }; -template +template class TSmear: public Module { public: - FERM_TYPE_ALIASES(FImpl,); - SINK_TYPE_ALIASES(); + typedef std::vector SlicedField; + typedef std::function SinkFn; public: // constructor TSmear(const std::string name); @@ -68,28 +68,28 @@ class TSmear: public Module virtual void execute(void); }; -MODULE_REGISTER_TMP(Smear, TSmear, MSink); +MODULE_REGISTER_TMP(Smear, TSmear , MSink); /****************************************************************************** * TSmear implementation * ******************************************************************************/ // constructor ///////////////////////////////////////////////////////////////// -template -TSmear::TSmear(const std::string name) +template +TSmear::TSmear(const std::string name) : Module(name) {} // dependencies/products /////////////////////////////////////////////////////// -template -std::vector TSmear::getInput(void) +template +std::vector TSmear::getInput(void) { std::vector in = {par().q, par().sink}; return in; } -template -std::vector TSmear::getOutput(void) +template +std::vector TSmear::getOutput(void) { std::vector out = {getName()}; @@ -97,23 +97,23 @@ std::vector TSmear::getOutput(void) } // setup /////////////////////////////////////////////////////////////////////// -template -void TSmear::setup(void) +template +void TSmear::setup(void) { - envCreate(SlicedPropagator, getName(), 1, env().getDim(Tp)); + envCreate(SlicedField, getName(), 1, env().getDim(Tp)); } // execution /////////////////////////////////////////////////////////////////// -template -void TSmear::execute(void) +template +void TSmear::execute(void) { - LOG(Message) << "Sink smearing propagator '" << par().q + LOG(Message) << "Sink smearing field '" << par().q << "' using sink function '" << par().sink << "'." << std::endl; auto &sink = envGet(SinkFn, par().sink); - auto &q = envGet(PropagatorField, par().q); - auto &out = envGet(SlicedPropagator, getName()); + auto &q = envGet(Field, par().q); + auto &out = envGet(SlicedField, getName()); out = sink(q); } From 77d565c4e073d14b30d7934140fb8f8caba220a2 Mon Sep 17 00:00:00 2001 From: Raoul Hodgson Date: Tue, 20 Oct 2020 14:37:09 +0100 Subject: [PATCH 18/32] Baryon fix --- Hadrons/Modules/MContraction/Baryon.hpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Hadrons/Modules/MContraction/Baryon.hpp b/Hadrons/Modules/MContraction/Baryon.hpp index 299883cd..39753ab1 100644 --- a/Hadrons/Modules/MContraction/Baryon.hpp +++ b/Hadrons/Modules/MContraction/Baryon.hpp @@ -256,7 +256,7 @@ void TBaryon::execute(void) if (par().sim_sink) assert(par().sinkq1==par().sinkq2 && par().sinkq2==par().sinkq3 && "when sim_sink is true all three sinks must be the same"); - assert(par().parity == 1 || par().parity == -1 && "parity must be 1 or -1"); // TODO: allow 0 for traceless? + assert(par().parity == 1 || par().parity == -1 || par().parity == 0 && "parity must be 1 or -1 (or tracless 0)"); std::vector gammaList; parseGammaString(gammaList); @@ -279,8 +279,6 @@ void TBaryon::execute(void) for (int iG = 0; iG < gammaList.size(); iG++) LOG(Message) << " with (Gamma^A,Gamma^B)_left = ( " << gammaList[iG].first.first << " , " << gammaList[iG].first.second << "') and (Gamma^A,Gamma^B)_right = ( " << gammaList[iG].second.first << " , " << gammaList[iG].second.second << ")" << std::endl; - envGetTmp(LatticeComplex, c); - envGetTmp(SpinMatrixField, cMat); int nt = env().getDim(Tp); bool wick_contractions[6]; @@ -299,7 +297,7 @@ void TBaryon::execute(void) std::vector resultMat; ResultMat rMat; - rMat.info.parity = 0; // TODO: what should this be? + rMat.info.parity = 0; rMat.info.quarksR = quarksR; rMat.info.quarksL = quarksL; rMat.info.shuffle = par().shuffle; @@ -331,6 +329,7 @@ void TBaryon::execute(void) PropagatorField &sink = envGet(PropagatorField, par().sinkq1); if (par().trace) { + envGetTmp(LatticeComplex, c); c=Zero(); BaryonUtils::ContractBaryons(q1,q2,q3, gAl,gBl,gAr,gBr, @@ -341,6 +340,7 @@ void TBaryon::execute(void) auto test = closure(trace(sink*c)); sliceSum(test, buf, Tp); } else { + envGetTmp(SpinMatrixField, cMat); cMat=Zero(); BaryonUtils::ContractBaryons_matrix(q1,q2,q3, gAl,gBl,gAr,gBr, @@ -364,6 +364,7 @@ void TBaryon::execute(void) else if (ns == "MSink") { if (par().trace) { + envGetTmp(LatticeComplex, c); c=Zero(); BaryonUtils::ContractBaryons(q1,q2,q3, gAl,gBl,gAr,gBr, @@ -374,6 +375,7 @@ void TBaryon::execute(void) SinkFnScalar &sink = envGet(SinkFnScalar, par().sinkq1); buf = sink(c); } else { + envGetTmp(SpinMatrixField, cMat); cMat=Zero(); BaryonUtils::ContractBaryons_matrix(q1,q2,q3, gAl,gBl,gAr,gBr, From a9dbaa6d4280ee4118e6b3fd0a3e59ff7f445493 Mon Sep 17 00:00:00 2001 From: Raoul Hodgson Date: Wed, 21 Oct 2020 12:00:04 +0100 Subject: [PATCH 19/32] BaryonUtils function naming change --- Hadrons/Modules/MContraction/Baryon.hpp | 10 +++++----- Hadrons/Modules/MContraction/BaryonGamma3pt.hpp | 6 +++--- Hadrons/Modules/MContraction/SigmaToNucleonEye.hpp | 4 ++-- Hadrons/Modules/MContraction/SigmaToNucleonNonEye.hpp | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Hadrons/Modules/MContraction/Baryon.hpp b/Hadrons/Modules/MContraction/Baryon.hpp index 39753ab1..6e0178b3 100644 --- a/Hadrons/Modules/MContraction/Baryon.hpp +++ b/Hadrons/Modules/MContraction/Baryon.hpp @@ -282,7 +282,7 @@ void TBaryon::execute(void) int nt = env().getDim(Tp); bool wick_contractions[6]; - BaryonUtils::Wick_Contractions(quarksL,quarksR,wick_contractions); + BaryonUtils::WickContractions(quarksL,quarksR,wick_contractions); PropagatorField &q1 = envGet(PropagatorField, propsL[0]); PropagatorField &q2 = envGet(PropagatorField, propsL[1]); @@ -342,7 +342,7 @@ void TBaryon::execute(void) } else { envGetTmp(SpinMatrixField, cMat); cMat=Zero(); - BaryonUtils::ContractBaryons_matrix(q1,q2,q3, + BaryonUtils::ContractBaryonsMatrix(q1,q2,q3, gAl,gBl,gAr,gBr, wick_contractions, cMat); @@ -377,7 +377,7 @@ void TBaryon::execute(void) } else { envGetTmp(SpinMatrixField, cMat); cMat=Zero(); - BaryonUtils::ContractBaryons_matrix(q1,q2,q3, + BaryonUtils::ContractBaryonsMatrix(q1,q2,q3, gAl,gBl,gAr,gBr, wick_contractions, cMat); @@ -447,14 +447,14 @@ void TBaryon::execute(void) wc[i] = (i == ie); if (par().trace) { - BaryonUtils::ContractBaryons_Sliced( q1_slice[ie],q2_slice[ie],q3_slice[ie], + BaryonUtils::ContractBaryonsSliced( q1_slice[ie],q2_slice[ie],q3_slice[ie], gAl,gBl,gAr,gBr, wc, par().parity, nt, buf); } else { - BaryonUtils::ContractBaryons_Sliced_matrix( q1_slice[ie],q2_slice[ie],q3_slice[ie], + BaryonUtils::ContractBaryonsSlicedMatrix( q1_slice[ie],q2_slice[ie],q3_slice[ie], gAl,gBl,gAr,gBr, wc, nt, diff --git a/Hadrons/Modules/MContraction/BaryonGamma3pt.hpp b/Hadrons/Modules/MContraction/BaryonGamma3pt.hpp index 39e1b2d5..a317578a 100644 --- a/Hadrons/Modules/MContraction/BaryonGamma3pt.hpp +++ b/Hadrons/Modules/MContraction/BaryonGamma3pt.hpp @@ -437,7 +437,7 @@ void TBaryonGamma3pt::execute(void) auto propQ2_spec = propQL2_slice[ie][par().tf]; auto propQ3_spec = propQL3_slice[ie][par().tf]; - BaryonUtils::Baryon_Gamma_3pt(propQL1, propQ2_spec, propQ3_spec, *propQR[epsilon[ie][0]], + BaryonUtils::BaryonGamma3pt(propQL1, propQ2_spec, propQ3_spec, *propQR[epsilon[ie][0]], 1, ie+1, GJ, GLR.first.second, GLR.second.second, c); } } @@ -446,7 +446,7 @@ void TBaryonGamma3pt::execute(void) auto propQ1_spec = propQL1_slice[ie][par().tf]; auto propQ3_spec = propQL3_slice[ie][par().tf]; - BaryonUtils::Baryon_Gamma_3pt(propQL2, propQ1_spec, propQ3_spec, *propQR[epsilon[ie][1]], + BaryonUtils::BaryonGamma3pt(propQL2, propQ1_spec, propQ3_spec, *propQR[epsilon[ie][1]], 2, ie+1, GJ, GLR.first.second, GLR.second.second, c); } } @@ -455,7 +455,7 @@ void TBaryonGamma3pt::execute(void) auto propQ1_spec = propQL1_slice[ie][par().tf]; auto propQ2_spec = propQL2_slice[ie][par().tf]; - BaryonUtils::Baryon_Gamma_3pt(propQL3, propQ1_spec, propQ2_spec, *propQR[epsilon[ie][2]], + BaryonUtils::BaryonGamma3pt(propQL3, propQ1_spec, propQ2_spec, *propQR[epsilon[ie][2]], 3, ie+1, GJ, GLR.first.second, GLR.second.second, c); } } diff --git a/Hadrons/Modules/MContraction/SigmaToNucleonEye.hpp b/Hadrons/Modules/MContraction/SigmaToNucleonEye.hpp index 04e3a9df..c00b131d 100644 --- a/Hadrons/Modules/MContraction/SigmaToNucleonEye.hpp +++ b/Hadrons/Modules/MContraction/SigmaToNucleonEye.hpp @@ -193,7 +193,7 @@ void TSigmaToNucleonEye::execute(void) r.info.gammaH = G.g; //Operator Q1, equivalent to the two-trace case in the rare-kaons module c=Zero(); - BaryonUtils::Sigma_to_Nucleon_Eye(qqLoop,qut,qdTf,qsTi,G,GammaB,GammaB,"Q1",c); + BaryonUtils::SigmaToNucleonEye(qqLoop,qut,qdTf,qsTi,G,GammaB,GammaB,"Q1",c); sliceSum(c,buf,Tp); r.corr.clear(); for (unsigned int t = 0; t < buf.size(); ++t) @@ -204,7 +204,7 @@ void TSigmaToNucleonEye::execute(void) result.push_back(r); //Operator Q2, equivalent to the one-trace case in the rare-kaons module c=Zero(); - BaryonUtils::Sigma_to_Nucleon_Eye(qqLoop,qut,qdTf,qsTi,G,GammaB,GammaB,"Q2",c); + BaryonUtils::SigmaToNucleonEye(qqLoop,qut,qdTf,qsTi,G,GammaB,GammaB,"Q2",c); sliceSum(c,buf,Tp); r.corr.clear(); for (unsigned int t = 0; t < buf.size(); ++t) diff --git a/Hadrons/Modules/MContraction/SigmaToNucleonNonEye.hpp b/Hadrons/Modules/MContraction/SigmaToNucleonNonEye.hpp index 706c08c9..d399a8c4 100644 --- a/Hadrons/Modules/MContraction/SigmaToNucleonNonEye.hpp +++ b/Hadrons/Modules/MContraction/SigmaToNucleonNonEye.hpp @@ -199,7 +199,7 @@ void TSigmaToNucleonNonEye::execute(void) r.info.gammaH = G.g; //Operator Q1, equivalent to the two-trace case in the rare-kaons module c=Zero(); - BaryonUtils::Sigma_to_Nucleon_NonEye(quTi,quTf,qut,qdTf,qsTi,G,GammaB,GammaB,"Q1",c); + BaryonUtils::SigmaToNucleonNonEye(quTi,quTf,qut,qdTf,qsTi,G,GammaB,GammaB,"Q1",c); sliceSum(c,buf,Tp); r.corr.clear(); for (unsigned int t = 0; t < buf.size(); ++t) @@ -210,7 +210,7 @@ void TSigmaToNucleonNonEye::execute(void) result.push_back(r); //Operator Q2, equivalent to the one-trace case in the rare-kaons module c=Zero(); - BaryonUtils::Sigma_to_Nucleon_NonEye(quTi,quTf,qut,qdTf,qsTi,G,GammaB,GammaB,"Q2",c); + BaryonUtils::SigmaToNucleonNonEye(quTi,quTf,qut,qdTf,qsTi,G,GammaB,GammaB,"Q2",c); sliceSum(c,buf,Tp); r.corr.clear(); for (unsigned int t = 0; t < buf.size(); ++t) From 1acf51a820db22ed0a616f46c544b41f22e59435 Mon Sep 17 00:00:00 2001 From: Raoul Hodgson Date: Wed, 21 Oct 2020 12:31:57 +0100 Subject: [PATCH 20/32] Baryon whitespace fixes --- Hadrons/Modules/MContraction/Baryon.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Hadrons/Modules/MContraction/Baryon.hpp b/Hadrons/Modules/MContraction/Baryon.hpp index 6e0178b3..41d08412 100644 --- a/Hadrons/Modules/MContraction/Baryon.hpp +++ b/Hadrons/Modules/MContraction/Baryon.hpp @@ -183,7 +183,7 @@ void TBaryon::parseGammaString(std::vector &gammaList) //couldn't find out how to count the size in the iterator, other than looping through it... /* int nGamma=0; for (std::sregex_iterator i = gamma_begin; i != gamma_end; ++i) { - nGamma++; + nGamma++; } */ gammaList.resize(nGamma/4); @@ -194,13 +194,13 @@ void TBaryon::parseGammaString(std::vector &gammaList) for (std::sregex_iterator i = gamma_begin; i != gamma_end; ++i) { std::smatch match = *i; gS[iG] = match.str(); - iG++; + iG++; } for (int i = 0; i < gammaList.size(); i++){ - std::vector gS1 = strToVec(gS[4*i]); - std::vector gS2 = strToVec(gS[4*i+1]); - std::vector gS3 = strToVec(gS[4*i+2]); - std::vector gS4 = strToVec(gS[4*i+3]); + std::vector gS1 = strToVec(gS[4*i]); + std::vector gS2 = strToVec(gS[4*i+1]); + std::vector gS3 = strToVec(gS[4*i+2]); + std::vector gS4 = strToVec(gS[4*i+3]); gammaList[i].first.first=gS1[0]; gammaList[i].first.second=gS2[0]; gammaList[i].second.first=gS3[0]; From 2bbbccc08130ccfa418660edaf0404e017b79897 Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Tue, 27 Oct 2020 14:56:06 +0000 Subject: [PATCH 21/32] lapevec module --- Hadrons/Modules/MIO/LoadLapEvec.cpp | 7 ++ Hadrons/Modules/MIO/LoadLapEvec.hpp | 118 ++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 Hadrons/Modules/MIO/LoadLapEvec.cpp create mode 100644 Hadrons/Modules/MIO/LoadLapEvec.hpp diff --git a/Hadrons/Modules/MIO/LoadLapEvec.cpp b/Hadrons/Modules/MIO/LoadLapEvec.cpp new file mode 100644 index 00000000..ba77c8fb --- /dev/null +++ b/Hadrons/Modules/MIO/LoadLapEvec.cpp @@ -0,0 +1,7 @@ +#include + +using namespace Grid; +using namespace Hadrons; +using namespace MIO; + +template class Grid::Hadrons::MIO::TLoadLapEvec; diff --git a/Hadrons/Modules/MIO/LoadLapEvec.hpp b/Hadrons/Modules/MIO/LoadLapEvec.hpp new file mode 100644 index 00000000..cb48e79e --- /dev/null +++ b/Hadrons/Modules/MIO/LoadLapEvec.hpp @@ -0,0 +1,118 @@ +/* + * LoadPerambulator.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * + * Copyright (C) 2015 - 2020 + * + * Author: Felix Erben + * Author: Michael Marshall + * + * Hadrons 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. + * + * Hadrons 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 Hadrons. If not, see . + * + * See the full license in the file "LICENSE" in the top level distribution + * directory. + */ + +/* END LEGAL */ +#ifndef Hadrons_MIO_LoadLapEvec_hpp_ +#define Hadrons_MIO_LoadLapEvec_hpp_ + +#include +#include +#include + +#include + +BEGIN_HADRONS_NAMESPACE + +/****************************************************************************** + * LoadLapEvec * + ******************************************************************************/ +BEGIN_MODULE_NAMESPACE(MIO) + +class LoadLapEvecPar: Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(LoadLapEvecPar, + std::string, LapEvecFileName, + int, nVec); +}; + +template +class TLoadLapEvec: public Module +{ +public: + // constructor + TLoadLapEvec(const std::string name); + // destructor + virtual ~TLoadLapEvec(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(LoadLapEvec, TLoadLapEvec, MIO); + +/****************************************************************************** + * TLoadLapEvec implementation * + ******************************************************************************/ +// constructor ///////////////////////////////////////////////////////////////// +template +TLoadLapEvec::TLoadLapEvec(const std::string name) +: Module(name) +{} + +// dependencies/products /////////////////////////////////////////////////////// +template +std::vector TLoadLapEvec::getInput(void) +{ + std::vector in; + + return in; +} + +template +std::vector TLoadLapEvec::getOutput(void) +{ + std::vector out = {getName()}; + + return out; +} + +// setup /////////////////////////////////////////////////////////////////////// +template +void TLoadLapEvec::setup(void) +{ + envCreate(MDistil::LapEvecs, getName(), 1, par().nVec, env().getGrid()); +} + +// execution /////////////////////////////////////////////////////////////////// +template +void TLoadLapEvec::execute(void) +{ + auto & LapEvec4d = envGet(MDistil::LapEvecs, getName() ); + std::string fileName{ par().LapEvecFileName }; + fileName.append( 1, '.' ); + fileName.append( std::to_string( vm().getTrajectory() ) ); + LapEvec4d.read(fileName.c_str(),false); +} + +END_MODULE_NAMESPACE + +END_HADRONS_NAMESPACE + +#endif // Hadrons_MIO_LoadLapEvec_hpp_ From 0e8dc86e59b905ecfce9daf1d95f0d9c9a34b78b Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Tue, 27 Oct 2020 15:08:07 +0000 Subject: [PATCH 22/32] removed PerambFromSolve --- Hadrons/Modules/MDistil/PerambFromSolve.cpp | 33 ---- Hadrons/Modules/MDistil/PerambFromSolve.hpp | 185 -------------------- Hadrons/Modules/MDistil/Perambulator.hpp | 6 +- 3 files changed, 4 insertions(+), 220 deletions(-) delete mode 100644 Hadrons/Modules/MDistil/PerambFromSolve.cpp delete mode 100644 Hadrons/Modules/MDistil/PerambFromSolve.hpp diff --git a/Hadrons/Modules/MDistil/PerambFromSolve.cpp b/Hadrons/Modules/MDistil/PerambFromSolve.cpp deleted file mode 100644 index bc202440..00000000 --- a/Hadrons/Modules/MDistil/PerambFromSolve.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * PerambFromSolve.cpp, part of Hadrons (https://github.com/aportelli/Hadrons) - * - * Copyright (C) 2015 - 2020 - * - * Author: Antonin Portelli - * - * Hadrons 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. - * - * Hadrons 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 Hadrons. If not, see . - * - * 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::TPerambFromSolve; diff --git a/Hadrons/Modules/MDistil/PerambFromSolve.hpp b/Hadrons/Modules/MDistil/PerambFromSolve.hpp deleted file mode 100644 index 97dd1824..00000000 --- a/Hadrons/Modules/MDistil/PerambFromSolve.hpp +++ /dev/null @@ -1,185 +0,0 @@ -/* - * PerambFromSolve.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) - * - * Copyright (C) 2015 - 2020 - * - * Author: Felix Erben - * Author: Michael Marshall - * Author: Antonin Portelli - * Author: Felix Erben - * Author: Felix Erben - * Author: Michael Marshall <43034299+mmphys@users.noreply.github.com> - * Author: ferben - * Author: ferben - * Author: ferben - * - * Hadrons 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. - * - * Hadrons 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 Hadrons. If not, see . - * - * See the full license in the file "LICENSE" in the top level distribution - * directory. - */ - -/* END LEGAL */ - -#ifndef Hadrons_MDistil_PerambFromSolve_hpp_ -#define Hadrons_MDistil_PerambFromSolve_hpp_ - -#include - -BEGIN_HADRONS_NAMESPACE -BEGIN_MODULE_NAMESPACE(MDistil) - -/****************************************************************************** - * PerambFromSolve - - This module computes a perambulator from an already completed solve. - Optionally, the number of eigenvectors used in the perambulator and the - parameter LI can be chosen to be lower than the ones in the solve, allowing - for a study of the signal with different values of nvec. - - LI_reduced : value of LI actually used in the computation - nvec_reduced: value of nvec actually used in the computation - LI : value of LI used to compute the 'solve' - nvec : value of nvec used to compute the 'solve' - - ******************************************************************************/ - -class PerambFromSolvePar: Serializable -{ -public: - GRID_SERIALIZABLE_CLASS_MEMBERS(PerambFromSolvePar, - std::string, lapevec, - std::string, PerambFileName, - std::string, solve, - int, nvec_reduced, - int, LI_reduced, - std::string, DistilParams); -}; - -template -class TPerambFromSolve: public Module -{ -public: - FERM_TYPE_ALIASES(FImpl,); - // constructor - TPerambFromSolve(const std::string name); - // destructor - virtual ~TPerambFromSolve(void) {}; - // dependency relation - virtual std::vector getInput(void); - virtual std::vector getOutput(void); - // setup - virtual void setup(void); - // execution - virtual void execute(void); -protected: - std::unique_ptr grid3d; // Owned by me, so I must delete it -}; - -MODULE_REGISTER_TMP(PerambFromSolve, TPerambFromSolve, MDistil); - -/****************************************************************************** - * TPerambFromSolve implementation * - ******************************************************************************/ -// constructor ///////////////////////////////////////////////////////////////// -template -TPerambFromSolve::TPerambFromSolve(const std::string name) : Module(name){} - -// dependencies/products /////////////////////////////////////////////////////// -template -std::vector TPerambFromSolve::getInput(void) -{ - return {par().solve, par().lapevec, par().DistilParams}; -} - -template -std::vector TPerambFromSolve::getOutput(void) -{ - return std::vector{getName()}; -} - -// setup /////////////////////////////////////////////////////////////////////// -template -void TPerambFromSolve::setup(void) -{ - const DistilParameters & dp{envGet(MDistil::DistilParameters, par().DistilParams)}; - const int Nt{env().getDim(Tdir)}; - MakeLowerDimGrid( grid3d, env().getGrid() ); - const int nvec_reduced{par().nvec_reduced}; - const int LI_reduced{ par().LI_reduced}; - envCreate(PerambTensor, getName(), 1, Nt,nvec_reduced,LI_reduced,dp.nnoise,dp.inversions,dp.SI); - envCreate(NoiseTensor, getName() + "_noise", 1, dp.nnoise, Nt, dp.nvec, Ns ); - envTmp(ColourVectorField, "result3d_nospin", 1, grid3d.get()); - envTmp(ColourVectorField, "evec3d", 1, grid3d.get()); - envTmpLat(ColourVectorField, "result4d_nospin"); -} - -// execution /////////////////////////////////////////////////////////////////// -template -void TPerambFromSolve::execute(void) -{ - GridCartesian * grid4d = env().getGrid(); - const int Ntlocal{grid4d->LocalDimensions()[3]}; - const int Ntfirst{grid4d->LocalStarts()[3]}; - const DistilParameters &dp{envGet(DistilParameters, par().DistilParams)}; - const int Nt{env().getDim(Tdir)}; - const bool full_tdil{ dp.TI == Nt }; - const int nvec_reduced{par().nvec_reduced}; - const int LI_reduced{ par().LI_reduced}; - auto &perambulator = envGet(PerambTensor, getName()); - auto &solve = envGet(std::vector, par().solve); - auto &epack = envGet(Grid::Hadrons::EigenPack, par().lapevec); - - envGetTmp(ColourVectorField, result4d_nospin); - envGetTmp(ColourVectorField, result3d_nospin); - envGetTmp(ColourVectorField, evec3d); - - for (int inoise = 0; inoise < dp.nnoise; inoise++) - { - for (int dk = 0; dk < LI_reduced; dk++) - { - for (int dt = 0; dt < dp.inversions; dt++) - { - for (int ds = 0; ds < dp.SI; ds++) - { - for (int is = 0; is < Ns; is++) - { - result4d_nospin = peekSpin(solve[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))],is); - for (int t = Ntfirst; t < Ntfirst + Ntlocal; t++) - { - ExtractSliceLocal(result3d_nospin,result4d_nospin,0,t-Ntfirst,Tdir); - for (int ivec = 0; ivec < nvec_reduced; ivec++) - { - ExtractSliceLocal(evec3d,epack.evec[ivec],0,t-Ntfirst,Tdir); - pokeSpin(perambulator.tensor(t, ivec, dk, inoise,dt,ds),static_cast(innerProduct(evec3d, result3d_nospin)),is); - LOG(Message) << "perambulator(t, ivec, dk, inoise,dt,ds)(is) = (" << t << "," << ivec << "," << dk << "," << inoise << "," << dt << "," << ds << ")(" << is << ") = " << perambulator.tensor(t, ivec, dk, inoise,dt,ds)()(is)() << std::endl; - } - } - } - } - } - } - } - if(grid4d->IsBoss()) - { - std::string sPerambName{par().PerambFileName}; - sPerambName.append( "." ); - sPerambName.append( std::to_string(vm().getTrajectory())); - perambulator.write(sPerambName.c_str()); - } -} - -END_MODULE_NAMESPACE -END_HADRONS_NAMESPACE -#endif // Hadrons_MDistil_PerambFromSolve_hpp_ diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 49a3bf44..f1630caa 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -181,7 +181,8 @@ void TPerambulator::execute(void) LOG(Message)<< "Mode " << perambMode << std::endl; std::vector solveIn; - if(perambMode == pMode::inputSolve){ + if(perambMode == pMode::inputSolve) + { solveIn = envGet(std::vector, par().unsmearedSolve); } @@ -204,7 +205,8 @@ void TPerambulator::execute(void) { for (int ds = 0; ds < dp.SI; ds++) { - if(perambMode == pMode::inputSolve){ + if(perambMode == pMode::inputSolve) + { fermion4dtmp = solveIn[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; } else { LOG(Message) << "LapH source vector from noise " << inoise << " and dilution component (d_k,d_t,d_alpha) : (" << dk << ","<< dt << "," << ds << ")" << std::endl; From 34d499b87e12d85e9bd4c18d62cf1a2752e3b56e Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Tue, 27 Oct 2020 15:15:48 +0000 Subject: [PATCH 23/32] style --- Hadrons/Modules/MDistil/DistilVectors.hpp | 21 -------------------- Hadrons/Modules/MDistil/Perambulator.hpp | 24 +++-------------------- 2 files changed, 3 insertions(+), 42 deletions(-) diff --git a/Hadrons/Modules/MDistil/DistilVectors.hpp b/Hadrons/Modules/MDistil/DistilVectors.hpp index 18e430ee..3f72711b 100644 --- a/Hadrons/Modules/MDistil/DistilVectors.hpp +++ b/Hadrons/Modules/MDistil/DistilVectors.hpp @@ -187,27 +187,6 @@ void TDistilVectors::execute(void) dist_source = 0; DIST_SOURCE rho[vecindex]=dist_source; - /*rho[vecindex] = 0; - for (int it = dt; it < Nt; it += dp.TI) - { - const int t_inv{(dp.tsrc + it)%Nt}; - if (t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal) - { - for (int ik = dk; ik < dp.nvec; ik += dp.LI) - { - for (int is = ds; is < Ns; is += dp.SI) - { - ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Tdir); - cv3dtmp = evec3d * noise.tensor(inoise, t_inv, ik, is); - fermion3dtmp=0; - pokeSpin(fermion3dtmp,cv3dtmp,is); - fermion4dtmp=0; - InsertSliceLocal(fermion3dtmp,fermion4dtmp,0,t_inv-Ntfirst,Tdir); - rho[vecindex] += fermion4dtmp; - } - } - } - }*/ } } } diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index f1630caa..31882234 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -208,31 +208,13 @@ void TPerambulator::execute(void) if(perambMode == pMode::inputSolve) { fermion4dtmp = solveIn[inoise+dp.nnoise*(dk+dp.LI*(dt+dp.inversions*ds))]; - } else { + } + else + { LOG(Message) << "LapH source vector from noise " << inoise << " and dilution component (d_k,d_t,d_alpha) : (" << dk << ","<< dt << "," << ds << ")" << std::endl; dist_source = 0; evec3d = 0; DIST_SOURCE - /*for (int it = dt; it < Nt; it += dp.TI) - { - const int t_inv{(dp.tsrc + it)%Nt}; - if( t_inv >= Ntfirst && t_inv < Ntfirst + Ntlocal ) - { - for (int ik = dk; ik < dp.nvec; ik += dp.LI) - { - for (int is = ds; is < Ns; is += dp.SI) - { - ExtractSliceLocal(evec3d,epack.evec[ik],0,t_inv-Ntfirst,Tdir); - cv3dtmp = evec3d * noise.tensor(inoise, t_inv, ik, is); - fermion3dtmp=0; - pokeSpin(fermion3dtmp,cv3dtmp,is); - fermion4dtmp=0; - InsertSliceLocal(fermion3dtmp,fermion4dtmp,0,t_inv-Ntfirst,Tdir); - dist_source += fermion4dtmp; - } - } - } - }*/ fermion4dtmp=0; if (Ls_ == 1) solver(fermion4dtmp, dist_source); From 866760e7f4f2eec91c2a05ff1978cfb28021d273 Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Tue, 3 Nov 2020 22:54:04 +0000 Subject: [PATCH 24/32] Hadrons C++ application template --- application-template/Makefile.am | 6 +++ application-template/bootstrap.sh | 7 +++ application-template/configure.ac | 68 ++++++++++++++++++++++++++++ application-template/main.cpp | 60 ++++++++++++++++++++++++ application-template/par-example.xml | 52 +++++++++++++++++++++ 5 files changed, 193 insertions(+) create mode 100644 application-template/Makefile.am create mode 100755 application-template/bootstrap.sh create mode 100644 application-template/configure.ac create mode 100644 application-template/main.cpp create mode 100644 application-template/par-example.xml diff --git a/application-template/Makefile.am b/application-template/Makefile.am new file mode 100644 index 00000000..01017326 --- /dev/null +++ b/application-template/Makefile.am @@ -0,0 +1,6 @@ + + ACLOCAL_AMFLAGS = -I .buildutils/m4 + + bin_PROGRAMS = my-hadrons-app + + my_hadrons_app_SOURCES = main.cpp \ No newline at end of file diff --git a/application-template/bootstrap.sh b/application-template/bootstrap.sh new file mode 100755 index 00000000..37849606 --- /dev/null +++ b/application-template/bootstrap.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + set -e + + echo '-- generating configure script...' + mkdir -p .buildutils/m4 + autoreconf -fvi + \ No newline at end of file diff --git a/application-template/configure.ac b/application-template/configure.ac new file mode 100644 index 00000000..6ef91351 --- /dev/null +++ b/application-template/configure.ac @@ -0,0 +1,68 @@ +AC_PREREQ([2.69]) +AC_INIT([my-hadrons-app], [0.1], [name@domain.suf]) +AC_CANONICAL_BUILD +AC_CANONICAL_HOST +AC_CANONICAL_TARGET +AC_CONFIG_SRCDIR([main.cpp]) +AC_CONFIG_MACRO_DIR([.buildutils/m4]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +# Checks for programs. +AC_PROG_CXX +AC_PROG_CC +AC_PROG_RANLIB +AM_PROG_AR +AC_LANG([C++]) + +AC_ARG_WITH([hadrons], + [AS_HELP_STRING([--with-hadrons=], + [try this for a non-standard install prefix of Hadrons])], + [PATH="$with_hadrons/bin$PATH_SEPARATOR$PATH"] + [CXXFLAGS="$CXXFLAGS -I$with_hadrons/include"] + [LDFLAGS="$LDFLAGS -L$with_hadrons/lib"]) +AC_CHECK_PROG([HADCONF],[hadrons-config],[yes]) +if test x"$HADCONF" != x"yes" ; then + AC_MSG_ERROR([hadrons-config not found]) +fi +AC_ARG_WITH([grid], + [AS_HELP_STRING([--with-grid=], + [try this for a non-standard install prefix of Grid])], + [PATH="$with_grid/bin$PATH_SEPARATOR$PATH"] + [CXXFLAGS="$CXXFLAGS -I$with_grid/include"] + [LDFLAGS="$LDFLAGS -L$with_grid/lib"]) +CXXFLAGS="$CXXFLAGS `hadrons-config --cxxflags`" +LDFLAGS="$LDFLAGS `hadrons-config --ldflags`" +CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS" +LDFLAGS="$AM_LDFLAGS $LDFLAGS" +LIBS=" -lHadrons $LIBS `hadrons-config --libs`" + +AC_MSG_CHECKING([that a minimal Grid/Hadrons program compiles]); +AC_LINK_IFELSE( + [AC_LANG_SOURCE([[ + #include + #include + + using namespace Grid; + using namespace Hadrons; + + int main(int argc, char *argv[]) + { + Grid_init(&argc, &argv); + Grid_finalize(); + Application application; + application.run(); + + return 0; + } + + ]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])] + [AC_MSG_ERROR([Could not compile a minimal Hadrons program])]) + +AC_SUBST([AM_CXXFLAGS]) +AC_SUBST([AM_LDFLAGS]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/application-template/main.cpp b/application-template/main.cpp new file mode 100644 index 00000000..42bb705a --- /dev/null +++ b/application-template/main.cpp @@ -0,0 +1,60 @@ +#include +#include + +using namespace Grid; +using namespace Hadrons; + +int main(int argc, char *argv[]) +{ + // parse command line ////////////////////////////////////////////////////// + std::string parameterFileName; + + if (argc < 2) + { + std::cerr << "usage: " << argv[0] << " [Grid options]"; + std::cerr << std::endl; + std::exit(EXIT_FAILURE); + } + parameterFileName = argv[1]; + + // initialise Grid ///////////////////////////////////////////////////////// + Grid_init(&argc, &argv); + + // initialise application ////////////////////////////////////////////////// + Application application; + Application::GlobalPar globalPar; + + // reading parameters + { + XmlReader reader(parameterFileName); + + read(reader, "global", globalPar); + + // read other application-specific parameters here + } + + // global initialisation + application.setPar(globalPar); + + // create modules ////////////////////////////////////////////////////////// + + // add modules here with application.createModule<...>(...) + // the one below is just an example + application.createModule("gauge"); + + // execution /////////////////////////////////////////////////////////////// + try + { + application.run(); + } + catch (const std::exception& e) + { + Exceptions::abort(e); + } + + // epilogue //////////////////////////////////////////////////////////////// + LOG(Message) << "Grid is finalizing now" << std::endl; + Grid_finalize(); + + return EXIT_SUCCESS; +} diff --git a/application-template/par-example.xml b/application-template/par-example.xml new file mode 100644 index 00000000..f260ebd8 --- /dev/null +++ b/application-template/par-example.xml @@ -0,0 +1,52 @@ + + + + + + + + 1500 + 1520 + 20 + + + + app.db + + results.db + + false + + false + + false + + true + + + + + 20 + + 1000 + + 100 + + 0.1 + + + id + + + + + + false + + + + + + -1 + + \ No newline at end of file From 500b60ba55ff34d600dc129b2ed8a12ceec2a624 Mon Sep 17 00:00:00 2001 From: Felix Erben Date: Wed, 4 Nov 2020 09:48:18 +0000 Subject: [PATCH 25/32] spectrum test fixed --- tests/Test_hadrons_spectrum.cpp | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/tests/Test_hadrons_spectrum.cpp b/tests/Test_hadrons_spectrum.cpp index 853cd313..886bbc44 100644 --- a/tests/Test_hadrons_spectrum.cpp +++ b/tests/Test_hadrons_spectrum.cpp @@ -90,6 +90,7 @@ int main(int argc, char *argv[]) MSink::Point::Par sinkPar; sinkPar.mom = "0 0 0"; application.createModule("sink", sinkPar); + application.createModule("sinkMat", sinkPar); // set fermion boundary conditions to be periodic space, antiperiodic time. std::string boundary = "1 1 1 -1"; @@ -155,6 +156,7 @@ int main(int argc, char *argv[]) application.setResultMetadata("meson_Z2_" + flavour[i] + flavour[j], "meson", mesEntry); } + bool computeTrace = false; for (unsigned int i = 0; i < flavour.size(); ++i) for (unsigned int j = i; j < flavour.size(); ++j) for (unsigned int k = j; k < flavour.size(); ++k) @@ -168,17 +170,30 @@ int main(int argc, char *argv[]) barPar.q3 = "Qpt_" + flavour[k]; barPar.quarks = flavour_baryon[i] + flavour_baryon[j] + flavour_baryon[k]; barPar.shuffle = "123"; - barPar.sinkq1 = "sink"; - barPar.sinkq2 = "sink"; - barPar.sinkq3 = "sink"; + if (computeTrace) + { + barPar.trace = 1; + barPar.sinkq1 = "sink"; + barPar.sinkq2 = "sink"; + barPar.sinkq3 = "sink"; + computeTrace = false; // alternate between trace and matrix to test both + } + else + { + barPar.trace = 0; + barPar.sinkq1 = "sinkMat"; + barPar.sinkq2 = "sinkMat"; + barPar.sinkq3 = "sinkMat"; + computeTrace = true; // alternate between trace and matrix to test both + } barPar.sim_sink = true; - barPar.gammas = "(j12 j12) (j32X j32Y)"; - barPar.parity = 1; + barPar.gammas = "(j12 j12) (j32X j32Y)"; + barPar.parity = 1; - barEntry.q1 = flavour[i]; - barEntry.q2 = flavour[j]; - barEntry.q3 = flavour[k]; - barEntry.source = "pt"; + barEntry.q1 = flavour[i]; + barEntry.q2 = flavour[j]; + barEntry.q3 = flavour[k]; + barEntry.source = "pt"; application.createModule( "baryon_pt_" + flavour[i] + flavour[j] + flavour[k], barPar); From d7469bff7283b0666c9b4a13f725e10962dbdad1 Mon Sep 17 00:00:00 2001 From: Joseph Lee Date: Fri, 6 Nov 2020 15:11:45 +0000 Subject: [PATCH 26/32] add MScalarSUN/WilsonFlow module --- Hadrons/Modules/MScalarSUN/WilsonFlow.cpp | 36 ++++++ Hadrons/Modules/MScalarSUN/WilsonFlow.hpp | 143 ++++++++++++++++++++++ 2 files changed, 179 insertions(+) create mode 100644 Hadrons/Modules/MScalarSUN/WilsonFlow.cpp create mode 100644 Hadrons/Modules/MScalarSUN/WilsonFlow.hpp diff --git a/Hadrons/Modules/MScalarSUN/WilsonFlow.cpp b/Hadrons/Modules/MScalarSUN/WilsonFlow.cpp new file mode 100644 index 00000000..2d913e8f --- /dev/null +++ b/Hadrons/Modules/MScalarSUN/WilsonFlow.cpp @@ -0,0 +1,36 @@ +/* + * WilsonFlow.cpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * + * Copyright (C) 2015 - 2020 + * + * Author: Antonin Portelli + * + * Hadrons 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. + * + * Hadrons 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 Hadrons. If not, see . + * + * 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 MScalarSUN; + +template class Grid::Hadrons::MScalarSUN::TWilsonFlow>; +template class Grid::Hadrons::MScalarSUN::TWilsonFlow>; +template class Grid::Hadrons::MScalarSUN::TWilsonFlow>; +template class Grid::Hadrons::MScalarSUN::TWilsonFlow>; +template class Grid::Hadrons::MScalarSUN::TWilsonFlow>; diff --git a/Hadrons/Modules/MScalarSUN/WilsonFlow.hpp b/Hadrons/Modules/MScalarSUN/WilsonFlow.hpp new file mode 100644 index 00000000..5c0a145b --- /dev/null +++ b/Hadrons/Modules/MScalarSUN/WilsonFlow.hpp @@ -0,0 +1,143 @@ +/* + * WilsonFlow.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * + * Copyright (C) 2015 - 2020 + * + * Author: Antonin Portelli + * Author: Joseph K. L. Lee + * + * Hadrons 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. + * + * Hadrons 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 Hadrons. If not, see . + * + * See the full license in the file "LICENSE" in the top level distribution + * directory. + */ + +/* END LEGAL */ +#ifndef Hadrons_MScalarSUN_WilsonFlow_hpp_ +#define Hadrons_MScalarSUN_WilsonFlow_hpp_ + +#include +#include +#include + +BEGIN_HADRONS_NAMESPACE + +/****************************************************************************** + * WilsonFlow * + ******************************************************************************/ +BEGIN_MODULE_NAMESPACE(MScalarSUN) + +class WilsonFlowPar: Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(WilsonFlowPar, + std::string, field, + double, flowtime); +}; + +class ScalarActionParameters: Serializable +{ +public: + GRID_SERIALIZABLE_CLASS_MEMBERS(ScalarActionParameters, + double, mass_squared, + double, lambda, + double, g); +}; + +template +class TWilsonFlow: public Module +{ +public: + typedef typename SImpl::Field Field; + typedef typename SImpl::ComplexField ComplexField; + typedef typename SImpl::Group Group; + typedef typename SImpl::SiteField::scalar_object Site; +public: + // constructor + TWilsonFlow(const std::string name); + // destructor + virtual ~TWilsonFlow(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(WilsonFlowSU2, TWilsonFlow>, MScalarSUN); +MODULE_REGISTER_TMP(WilsonFlowSU3, TWilsonFlow>, MScalarSUN); +MODULE_REGISTER_TMP(WilsonFlowSU4, TWilsonFlow>, MScalarSUN); +MODULE_REGISTER_TMP(WilsonFlowSU5, TWilsonFlow>, MScalarSUN); +MODULE_REGISTER_TMP(WilsonFlowSU6, TWilsonFlow>, MScalarSUN); +/****************************************************************************** + * TWilsonFlow implementation * + ******************************************************************************/ +// constructor ///////////////////////////////////////////////////////////////// +template +TWilsonFlow::TWilsonFlow(const std::string name) +: Module(name) +{} + +// dependencies/products /////////////////////////////////////////////////////// +template +std::vector TWilsonFlow::getInput(void) +{ + std::vector in= {par().field}; + + return in; +} + +template +std::vector TWilsonFlow::getOutput(void) +{ + std::vector out = {getName()}; + + return out; +} + +// setup /////////////////////////////////////////////////////////////////////// +template +void TWilsonFlow::setup(void) +{ + envTmpLat(Field, "phift"); + envTmpLat(ComplexField, "flowfactor"); + envCreateLat(Field, getName()); +} + +// execution /////////////////////////////////////////////////////////////////// +template +void TWilsonFlow::execute(void) +{ + auto &phi = envGet(Field, par().field); + auto &flowed_phi = envGet(Field, getName()); + envGetTmp(Field, phift); + envGetTmp(ComplexField, flowfactor); + FFT fft(envGetGrid(Field)); + + + fft.FFT_all_dim(phift, phi, FFT::forward); + SImpl::MomentaSquare(flowfactor); + LOG(Message) << " flowtime = " << par().flowtime << std::endl; + flowfactor = exp(-par().flowtime*flowfactor); + phift *= flowfactor; + fft.FFT_all_dim(flowed_phi, phift, FFT::backward); +} + +END_MODULE_NAMESPACE + +END_HADRONS_NAMESPACE + +#endif // Hadrons_MScalarSUN_WilsonFlow_hpp_ From 38fb13225d2b7c9e1472690d80dc03483fbb8608 Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Tue, 24 Nov 2020 14:16:06 +0000 Subject: [PATCH 27/32] new logo --- README.md | 7 ++++++- graphics/hadrons-icon-title.png | Bin 0 -> 385566 bytes 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 graphics/hadrons-icon-title.png diff --git a/README.md b/README.md index 879a9a96..5adbe312 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ -# Hadrons [![License: GPL v3](https://img.shields.io/badge/License-GPLv2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![DOI](https://zenodo.org/badge/250348196.svg)](https://zenodo.org/badge/latestdoi/250348196) [![Teamcity status](http://ci.cliath.ph.ed.ac.uk/app/rest/builds/aggregated/strob:(buildType:(affectedProject(id:GridBasedSoftware_Hadrons)),branch:name:develop)/statusIcon.svg)](http://ci.cliath.ph.ed.ac.uk/project.html?projectId=GridBasedSoftware_Hadrons&tab=projectOverview) + + _[Grid](https://github.com/paboyle/Grid)-based workflow management system for lattice field theory simulations_ +
+ +[![License: GPL v3](https://img.shields.io/badge/License-GPLv2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![DOI](https://zenodo.org/badge/250348196.svg)](https://zenodo.org/badge/latestdoi/250348196) [![Teamcity status](http://ci.cliath.ph.ed.ac.uk/app/rest/builds/aggregated/strob:(buildType:(affectedProject(id:GridBasedSoftware_Hadrons)),branch:name:develop)/statusIcon.svg)](http://ci.cliath.ph.ed.ac.uk/project.html?projectId=GridBasedSoftware_Hadrons&tab=projectOverview) + __If Grid & Hadrons played an important role in the production of scientific results leading to a peer-reviewed publication, we would be grateful if you consider citing the GitHub repository in your paper, and/or invite some contributors for authorship if relevant (especially PhD students & postdoctoral researchers).__ diff --git a/graphics/hadrons-icon-title.png b/graphics/hadrons-icon-title.png new file mode 100644 index 0000000000000000000000000000000000000000..5d8854792e42a31682472d09b5491ede59ffd237 GIT binary patch literal 385566 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

D=pA6Lv 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π>9ds7kbL@r&khY)X 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 vN(RX6D> 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 Date: Tue, 24 Nov 2020 14:18:54 +0000 Subject: [PATCH 28/32] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5adbe312..896c9f87 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ - + _[Grid](https://github.com/paboyle/Grid)-based workflow management system for lattice field theory simulations_ -
[![License: GPL v3](https://img.shields.io/badge/License-GPLv2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![DOI](https://zenodo.org/badge/250348196.svg)](https://zenodo.org/badge/latestdoi/250348196) [![Teamcity status](http://ci.cliath.ph.ed.ac.uk/app/rest/builds/aggregated/strob:(buildType:(affectedProject(id:GridBasedSoftware_Hadrons)),branch:name:develop)/statusIcon.svg)](http://ci.cliath.ph.ed.ac.uk/project.html?projectId=GridBasedSoftware_Hadrons&tab=projectOverview) - +--- __If Grid & Hadrons played an important role in the production of scientific results leading to a peer-reviewed publication, we would be grateful if you consider citing the GitHub repository in your paper, and/or invite some contributors for authorship if relevant (especially PhD students & postdoctoral researchers).__ From 11b440c893873cda4b9d70417e421f720568dd78 Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Tue, 24 Nov 2020 14:19:11 +0000 Subject: [PATCH 29/32] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 896c9f87..31b336d9 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ _[Grid](https://github.com/paboyle/Grid)-based workflow management system for -lattice field theory simulations_ - +lattice field theory simulations_ [![License: GPL v3](https://img.shields.io/badge/License-GPLv2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![DOI](https://zenodo.org/badge/250348196.svg)](https://zenodo.org/badge/latestdoi/250348196) [![Teamcity status](http://ci.cliath.ph.ed.ac.uk/app/rest/builds/aggregated/strob:(buildType:(affectedProject(id:GridBasedSoftware_Hadrons)),branch:name:develop)/statusIcon.svg)](http://ci.cliath.ph.ed.ac.uk/project.html?projectId=GridBasedSoftware_Hadrons&tab=projectOverview) --- From 63547feea09b15b353dd77774a4cb9ba4d970707 Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Tue, 24 Nov 2020 14:19:48 +0000 Subject: [PATCH 30/32] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 31b336d9..3325db28 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ +[![License: GPL v3](https://img.shields.io/badge/License-GPLv2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![DOI](https://zenodo.org/badge/250348196.svg)](https://zenodo.org/badge/latestdoi/250348196) [![Teamcity status](http://ci.cliath.ph.ed.ac.uk/app/rest/builds/aggregated/strob:(buildType:(affectedProject(id:GridBasedSoftware_Hadrons)),branch:name:develop)/statusIcon.svg)](http://ci.cliath.ph.ed.ac.uk/project.html?projectId=GridBasedSoftware_Hadrons&tab=projectOverview) _[Grid](https://github.com/paboyle/Grid)-based workflow management system for lattice field theory simulations_ -[![License: GPL v3](https://img.shields.io/badge/License-GPLv2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![DOI](https://zenodo.org/badge/250348196.svg)](https://zenodo.org/badge/latestdoi/250348196) [![Teamcity status](http://ci.cliath.ph.ed.ac.uk/app/rest/builds/aggregated/strob:(buildType:(affectedProject(id:GridBasedSoftware_Hadrons)),branch:name:develop)/statusIcon.svg)](http://ci.cliath.ph.ed.ac.uk/project.html?projectId=GridBasedSoftware_Hadrons&tab=projectOverview) + --- __If Grid & Hadrons played an important role in the production of scientific results leading to a peer-reviewed publication, we would be grateful if you consider citing the GitHub repository in your paper, and/or invite some contributors for authorship if relevant (especially PhD students & postdoctoral researchers).__ From 4f75778b299df96579a68965eacc3bf1a59153ee Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Fri, 27 Nov 2020 16:59:14 +0000 Subject: [PATCH 31/32] Copyright update --- .../MContraction/A2ASmearedMesonField.cpp | 1 + .../MContraction/A2ASmearedMesonField.hpp | 1 + Hadrons/Modules/MContraction/Loop.cpp | 1 + Hadrons/Modules/MContraction/Loop.hpp | 1 + Hadrons/Modules/MDistil/LapEvec.hpp | 9 ++++++- Hadrons/Modules/MDistil/Perambulator.hpp | 2 ++ Hadrons/Modules/MIO/LoadLapEvec.cpp | 25 +++++++++++++++++++ Hadrons/Modules/MIO/LoadLapEvec.hpp | 3 ++- .../MNoise/CheckerboardSpinColorDiagonal.cpp | 1 + .../MNoise/CheckerboardSpinColorDiagonal.hpp | 1 + Hadrons/Modules/MScalarSUN/WilsonFlow.cpp | 1 + Hadrons/Modules/MScalarSUN/WilsonFlow.hpp | 1 + Hadrons/Modules/MSink/Point.cpp | 1 + Hadrons/Modules/MSink/Point.hpp | 1 + Hadrons/Modules/MSink/Smear.cpp | 1 + Hadrons/Modules/MSink/Smear.hpp | 1 + Hadrons/Modules/MSink/SourceSink.cpp | 1 + Hadrons/Modules/MSink/SourceSink.hpp | 2 +- Hadrons/Modules/MSource/Random.cpp | 1 + Hadrons/Modules/MSource/Z2Diluted.cpp | 1 + Hadrons/Modules/MSource/Z2Diluted.hpp | 1 + Hadrons/NamedTensor.hpp | 1 + tests/Test_database_concurrency.cpp | 2 +- tests/Test_hadrons_spectrum.cpp | 1 + 24 files changed, 57 insertions(+), 4 deletions(-) diff --git a/Hadrons/Modules/MContraction/A2ASmearedMesonField.cpp b/Hadrons/Modules/MContraction/A2ASmearedMesonField.cpp index f6945157..4e5128f8 100644 --- a/Hadrons/Modules/MContraction/A2ASmearedMesonField.cpp +++ b/Hadrons/Modules/MContraction/A2ASmearedMesonField.cpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Nils Asmussen * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MContraction/A2ASmearedMesonField.hpp b/Hadrons/Modules/MContraction/A2ASmearedMesonField.hpp index 170e24f6..006a3774 100644 --- a/Hadrons/Modules/MContraction/A2ASmearedMesonField.hpp +++ b/Hadrons/Modules/MContraction/A2ASmearedMesonField.hpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Nils Asmussen * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MContraction/Loop.cpp b/Hadrons/Modules/MContraction/Loop.cpp index 3e4134f9..6abc035b 100644 --- a/Hadrons/Modules/MContraction/Loop.cpp +++ b/Hadrons/Modules/MContraction/Loop.cpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Fionn O hOgain * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MContraction/Loop.hpp b/Hadrons/Modules/MContraction/Loop.hpp index 65b0a119..a4f31458 100644 --- a/Hadrons/Modules/MContraction/Loop.hpp +++ b/Hadrons/Modules/MContraction/Loop.hpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Fionn O hOgain * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MDistil/LapEvec.hpp b/Hadrons/Modules/MDistil/LapEvec.hpp index 40168da9..b20048e9 100644 --- a/Hadrons/Modules/MDistil/LapEvec.hpp +++ b/Hadrons/Modules/MDistil/LapEvec.hpp @@ -3,9 +3,16 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli + * Author: Author Name <43034299+mmphys@users.noreply.github.com> + * Author: Felix Erben * Author: Felix Erben + * Author: Michael Marshall <43034299+mmphys@users.noreply.github.com> * Author: Michael Marshall - * Author: Antonin Portelli + * Author: ferben + * Author: ferben + * Author: ferben + * Author: ferben * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MDistil/Perambulator.hpp b/Hadrons/Modules/MDistil/Perambulator.hpp index 31882234..50ac8c03 100644 --- a/Hadrons/Modules/MDistil/Perambulator.hpp +++ b/Hadrons/Modules/MDistil/Perambulator.hpp @@ -7,6 +7,8 @@ * Author: Michael Marshall * Author: Antonin Portelli * Author: Felix Erben + * Author: Felix Erben + * Author: Michael Marshall <43034299+mmphys@users.noreply.github.com> * Author: ferben * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MIO/LoadLapEvec.cpp b/Hadrons/Modules/MIO/LoadLapEvec.cpp index ba77c8fb..867cad49 100644 --- a/Hadrons/Modules/MIO/LoadLapEvec.cpp +++ b/Hadrons/Modules/MIO/LoadLapEvec.cpp @@ -1,3 +1,28 @@ +/* + * LoadLapEvec.cpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * + * Copyright (C) 2015 - 2020 + * + * Author: Felix Erben + * + * Hadrons 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. + * + * Hadrons 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 Hadrons. If not, see . + * + * See the full license in the file "LICENSE" in the top level distribution + * directory. + */ + +/* END LEGAL */ #include using namespace Grid; diff --git a/Hadrons/Modules/MIO/LoadLapEvec.hpp b/Hadrons/Modules/MIO/LoadLapEvec.hpp index cb48e79e..829aba8d 100644 --- a/Hadrons/Modules/MIO/LoadLapEvec.hpp +++ b/Hadrons/Modules/MIO/LoadLapEvec.hpp @@ -1,10 +1,11 @@ /* - * LoadPerambulator.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) + * LoadLapEvec.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) * * Copyright (C) 2015 - 2020 * * Author: Felix Erben * Author: Michael Marshall + * Author: Felix Erben * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.cpp b/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.cpp index a3bb6491..8b3520d8 100644 --- a/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.cpp +++ b/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.cpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Fionn O hOgain * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.hpp b/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.hpp index cda561c7..2914d72d 100644 --- a/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.hpp +++ b/Hadrons/Modules/MNoise/CheckerboardSpinColorDiagonal.hpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Fionn O hOgain * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MScalarSUN/WilsonFlow.cpp b/Hadrons/Modules/MScalarSUN/WilsonFlow.cpp index 2d913e8f..15e27906 100644 --- a/Hadrons/Modules/MScalarSUN/WilsonFlow.cpp +++ b/Hadrons/Modules/MScalarSUN/WilsonFlow.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2015 - 2020 * * Author: Antonin Portelli + * Author: Joseph Lee * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MScalarSUN/WilsonFlow.hpp b/Hadrons/Modules/MScalarSUN/WilsonFlow.hpp index 5c0a145b..480b2e78 100644 --- a/Hadrons/Modules/MScalarSUN/WilsonFlow.hpp +++ b/Hadrons/Modules/MScalarSUN/WilsonFlow.hpp @@ -5,6 +5,7 @@ * * Author: Antonin Portelli * Author: Joseph K. L. Lee + * Author: Joseph Lee * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MSink/Point.cpp b/Hadrons/Modules/MSink/Point.cpp index 2c2fc274..a4c8d879 100644 --- a/Hadrons/Modules/MSink/Point.cpp +++ b/Hadrons/Modules/MSink/Point.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2015 - 2020 * * Author: Antonin Portelli + * Author: Raoul Hodgson * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MSink/Point.hpp b/Hadrons/Modules/MSink/Point.hpp index 27ddd56b..9e491dc6 100644 --- a/Hadrons/Modules/MSink/Point.hpp +++ b/Hadrons/Modules/MSink/Point.hpp @@ -7,6 +7,7 @@ * Author: Guido Cossu * Author: Lanny91 * Author: Peter Boyle + * Author: Raoul Hodgson * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MSink/Smear.cpp b/Hadrons/Modules/MSink/Smear.cpp index 5c7db8fd..a8ffc734 100644 --- a/Hadrons/Modules/MSink/Smear.cpp +++ b/Hadrons/Modules/MSink/Smear.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2015 - 2020 * * Author: Antonin Portelli + * Author: Raoul Hodgson * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MSink/Smear.hpp b/Hadrons/Modules/MSink/Smear.hpp index 84fc4f98..22969228 100644 --- a/Hadrons/Modules/MSink/Smear.hpp +++ b/Hadrons/Modules/MSink/Smear.hpp @@ -5,6 +5,7 @@ * * Author: Antonin Portelli * Author: Lanny91 + * Author: Raoul Hodgson * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MSink/SourceSink.cpp b/Hadrons/Modules/MSink/SourceSink.cpp index b0e2280d..a5ace38b 100644 --- a/Hadrons/Modules/MSink/SourceSink.cpp +++ b/Hadrons/Modules/MSink/SourceSink.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2015 - 2020 * * Author: Antonin Portelli + * Author: Raoul Hodgson * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MSink/SourceSink.hpp b/Hadrons/Modules/MSink/SourceSink.hpp index 19ed656a..c0b6b2fb 100644 --- a/Hadrons/Modules/MSink/SourceSink.hpp +++ b/Hadrons/Modules/MSink/SourceSink.hpp @@ -1,10 +1,10 @@ - /* * SourceSink.hpp, part of Hadrons (https://github.com/aportelli/Hadrons) * * Copyright (C) 2015 - 2020 * * Author: Raoul Hodgson + * Author: Raoul Hodgson * * Hadrons is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/Hadrons/Modules/MSource/Random.cpp b/Hadrons/Modules/MSource/Random.cpp index 0883c133..5e71778b 100644 --- a/Hadrons/Modules/MSource/Random.cpp +++ b/Hadrons/Modules/MSource/Random.cpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: ferben * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MSource/Z2Diluted.cpp b/Hadrons/Modules/MSource/Z2Diluted.cpp index a470a60d..384e37ce 100644 --- a/Hadrons/Modules/MSource/Z2Diluted.cpp +++ b/Hadrons/Modules/MSource/Z2Diluted.cpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Fionn O hOgain * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/Modules/MSource/Z2Diluted.hpp b/Hadrons/Modules/MSource/Z2Diluted.hpp index ca377034..398df059 100644 --- a/Hadrons/Modules/MSource/Z2Diluted.hpp +++ b/Hadrons/Modules/MSource/Z2Diluted.hpp @@ -3,6 +3,7 @@ * * Copyright (C) 2015 - 2020 * + * Author: Antonin Portelli * Author: Fionn O hOgain * * Hadrons is free software: you can redistribute it and/or modify diff --git a/Hadrons/NamedTensor.hpp b/Hadrons/NamedTensor.hpp index fd451064..130dfc52 100644 --- a/Hadrons/NamedTensor.hpp +++ b/Hadrons/NamedTensor.hpp @@ -6,6 +6,7 @@ * Author: Felix Erben * Author: Michael Marshall * Author: Antonin Portelli + * Author: Felix Erben * Author: Michael Marshall <43034299+mmphys@users.noreply.github.com> * Author: ferben * diff --git a/tests/Test_database_concurrency.cpp b/tests/Test_database_concurrency.cpp index a49c9e02..e0ffcc60 100644 --- a/tests/Test_database_concurrency.cpp +++ b/tests/Test_database_concurrency.cpp @@ -104,4 +104,4 @@ int main(int argc, char *argv[]) Grid_finalize(); return EXIT_SUCCESS; -} \ No newline at end of file +} diff --git a/tests/Test_hadrons_spectrum.cpp b/tests/Test_hadrons_spectrum.cpp index 886bbc44..b8e18bfa 100644 --- a/tests/Test_hadrons_spectrum.cpp +++ b/tests/Test_hadrons_spectrum.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2015 - 2020 * * Author: Antonin Portelli + * Author: Felix Erben * Author: Raoul Hodgson * * Hadrons is free software: you can redistribute it and/or modify From f8f1e345606be4c0ac1a696816435b5ed35ab1ed Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Fri, 27 Nov 2020 17:00:29 +0000 Subject: [PATCH 32/32] version number update --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 8d34ee0e..092864ee 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.63]) -AC_INIT(Hadrons,[v1.0],[antonin.portelli@ed.ac.uk],[hadrons]) +AC_INIT(Hadrons,[v1.2],[antonin.portelli@ed.ac.uk],[hadrons]) AC_CANONICAL_BUILD AC_CANONICAL_HOST AC_CANONICAL_TARGET