1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00

add gauge transformation matrix as output to module MGauge/GaugeFix

This commit is contained in:
Nils Asmussen 2019-03-05 16:16:30 +00:00
parent 0a270b3e93
commit b1d3d1f1a9

View File

@ -94,7 +94,7 @@ std::vector<std::string> TGaugeFix<GImpl>::getInput(void)
template <typename GImpl> template <typename GImpl>
std::vector<std::string> TGaugeFix<GImpl>::getOutput(void) std::vector<std::string> TGaugeFix<GImpl>::getOutput(void)
{ {
std::vector<std::string> out = {getName()}; std::vector<std::string> out = {getName(), getName()+"_xform"};
return out; return out;
} }
@ -103,6 +103,7 @@ template <typename GImpl>
void TGaugeFix<GImpl>::setup(void) void TGaugeFix<GImpl>::setup(void)
{ {
envCreateLat(GaugeField, getName()); envCreateLat(GaugeField, getName());
envCreateLat(LatticeColourMatrix, getName()+"_xform");
} }
@ -116,6 +117,7 @@ void TGaugeFix<GImpl>::execute(void)
LOG(Message) << par().gauge << std::endl; LOG(Message) << par().gauge << std::endl;
auto &U = envGet(GaugeField, par().gauge); auto &U = envGet(GaugeField, par().gauge);
auto &Umu = envGet(GaugeField, getName()); auto &Umu = envGet(GaugeField, getName());
auto &xform = envGet(LatticeColourMatrix, getName()+"_xform");
LOG(Message) << "Gauge Field fetched" << std::endl; LOG(Message) << "Gauge Field fetched" << std::endl;
//do we allow maxiter etc to be user set? //do we allow maxiter etc to be user set?
Real alpha = par().alpha; Real alpha = par().alpha;
@ -123,7 +125,7 @@ void TGaugeFix<GImpl>::execute(void)
Real Omega_tol = par().Omega_tol; Real Omega_tol = par().Omega_tol;
Real Phi_tol = par().Phi_tol; Real Phi_tol = par().Phi_tol;
bool Fourier = par().Fourier; bool Fourier = par().Fourier;
FourierAcceleratedGaugeFixer<PeriodicGimplR>::SteepestDescentGaugeFix(U,alpha,maxiter,Omega_tol,Phi_tol,Fourier); FourierAcceleratedGaugeFixer<PeriodicGimplR>::SteepestDescentGaugeFix(U,xform,alpha,maxiter,Omega_tol,Phi_tol,Fourier);
Umu = U; Umu = U;
LOG(Message) << "Gauge Fixed" << std::endl; LOG(Message) << "Gauge Fixed" << std::endl;
} }