1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-09 21:50:45 +01:00

Ready to test spatial smearing (again)

This commit is contained in:
Michael Marshall 2019-04-26 08:54:30 +01:00
parent 50a74eaea3
commit 3ac5a69a57
2 changed files with 4 additions and 3 deletions

View File

@ -41,6 +41,7 @@ namespace QCD {
template <class Gimpl> template <class Gimpl>
class Smear_Stout : public Smear<Gimpl> { class Smear_Stout : public Smear<Gimpl> {
private: private:
const std::vector<double> SmearRho{};
// Smear<Gimpl>* ownership semantics: // Smear<Gimpl>* ownership semantics:
// Smear<Gimpl>* passed in to constructor are owned by caller, so we don't delete them here // Smear<Gimpl>* passed in to constructor are owned by caller, so we don't delete them here
// Smear<Gimpl>* created within constructor need to be deleted as part of the destructor // Smear<Gimpl>* created within constructor need to be deleted as part of the destructor
@ -72,8 +73,8 @@ public:
/*! Default constructor. rho is constant in all directions, optionally except for orthogonal dimension */ /*! Default constructor. rho is constant in all directions, optionally except for orthogonal dimension */
Smear_Stout(double rho, int orthogdim = -1) Smear_Stout(double rho, int orthogdim = -1)
: OwnedBase{(orthogdim<0 || orthogdim>=Nd) ? new Smear_APE<Gimpl>(rho) : new Smear_APE<Gimpl>(rho3D(rho,orthogdim))}, //: OwnedBase{(orthogdim<0 || orthogdim>=Nd) ? new Smear_APE<Gimpl>(rho) : new Smear_APE<Gimpl>(rho3D(rho,orthogdim))},
SmearBase{OwnedBase.get()} { : SmearRho{ rho3D(rho,orthogdim) }, OwnedBase{ new Smear_APE<Gimpl>(SmearRho) }, SmearBase{OwnedBase.get()} {
assert(Nc == 3 && "Stout smearing currently implemented only for Nc==3"); assert(Nc == 3 && "Stout smearing currently implemented only for Nc==3");
} }

View File

@ -235,7 +235,7 @@ void TLapEvec<GImpl>::execute(void)
{ {
const StoutParameters &Stout{par().Stout}; const StoutParameters &Stout{par().Stout};
envGetTmp(GaugeField, Umu_stout); envGetTmp(GaugeField, Umu_stout);
Smear_Stout<PeriodicGimplR> LS(Stout.parm );//, Tdir); // should be spatial - doesn't work yet Smear_Stout<PeriodicGimplR> LS(Stout.parm, Tdir); // spatial smearing only
for (int i = 0; i < Stout.steps; i++) { for (int i = 0; i < Stout.steps; i++) {
LS.smear(Umu_stout, Umu_smear); LS.smear(Umu_stout, Umu_smear);
Umu_smear = Umu_stout; Umu_smear = Umu_stout;