diff --git a/Hadrons/Modules/MGauge/GaugeFix.hpp b/Hadrons/Modules/MGauge/GaugeFix.hpp index 87822a7e..57b1e082 100644 --- a/Hadrons/Modules/MGauge/GaugeFix.hpp +++ b/Hadrons/Modules/MGauge/GaugeFix.hpp @@ -7,6 +7,7 @@ Source file: Hadrons/Modules/MGauge/GaugeFix.hpp Copyright (C) 2015-2019 Author: Antonin Portelli +Author: Nils Asmussen Author: Peter Boyle This program is free software; you can redistribute it and/or modify @@ -58,6 +59,7 @@ class TGaugeFix: public Module { public: GAUGE_TYPE_ALIASES(GImpl,); + typedef typename GImpl::GaugeLinkField GaugeMat; public: // constructor TGaugeFix(const std::string name); @@ -94,7 +96,7 @@ std::vector TGaugeFix::getInput(void) template std::vector TGaugeFix::getOutput(void) { - std::vector out = {getName()}; + std::vector out = {getName(), getName()+"_xform"}; return out; } @@ -103,6 +105,7 @@ template void TGaugeFix::setup(void) { envCreateLat(GaugeField, getName()); + envCreateLat(GaugeMat, getName()+"_xform"); } @@ -116,6 +119,7 @@ void TGaugeFix::execute(void) LOG(Message) << par().gauge << std::endl; auto &U = envGet(GaugeField, par().gauge); auto &Umu = envGet(GaugeField, getName()); + auto &xform = envGet(GaugeMat, getName()+"_xform"); LOG(Message) << "Gauge Field fetched" << std::endl; //do we allow maxiter etc to be user set? Real alpha = par().alpha; @@ -123,8 +127,8 @@ void TGaugeFix::execute(void) Real Omega_tol = par().Omega_tol; Real Phi_tol = par().Phi_tol; bool Fourier = par().Fourier; - FourierAcceleratedGaugeFixer::SteepestDescentGaugeFix(U,alpha,maxiter,Omega_tol,Phi_tol,Fourier); Umu = U; + FourierAcceleratedGaugeFixer::SteepestDescentGaugeFix(Umu,xform,alpha,maxiter,Omega_tol,Phi_tol,Fourier); LOG(Message) << "Gauge Fixed" << std::endl; }