From 5e3be47117534384cffbc4e8461f4ef176c6a42e Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Mon, 14 May 2018 18:58:39 +0100 Subject: [PATCH] Hadrons: scalar SU(N) various fixes --- extras/Hadrons/Modules/MScalarSUN/ShiftProbe.hpp | 10 +++++----- extras/Hadrons/Modules/MScalarSUN/StochFreeField.hpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/extras/Hadrons/Modules/MScalarSUN/ShiftProbe.hpp b/extras/Hadrons/Modules/MScalarSUN/ShiftProbe.hpp index cd7c15eb..edd38e42 100644 --- a/extras/Hadrons/Modules/MScalarSUN/ShiftProbe.hpp +++ b/extras/Hadrons/Modules/MScalarSUN/ShiftProbe.hpp @@ -40,7 +40,7 @@ BEGIN_HADRONS_NAMESPACE ******************************************************************************/ BEGIN_MODULE_NAMESPACE(MScalarSUN) -typedef std::pair ShiftPair; +typedef std::pair ShiftPair; class ShiftProbePar: Serializable { @@ -127,7 +127,7 @@ void TShiftProbe::execute(void) << std::endl; std::vector shift; - unsigned int sign; + double sign; auto &phi = envGet(Field, par().field); auto &probe = envGet(ComplexField, getName()); @@ -136,7 +136,7 @@ void TShiftProbe::execute(void) { HADRONS_ERROR(Size, "the number of shifts is odd"); } - sign = (shift.size() % 4 == 0) ? 1 : -1; + sign = (shift.size() % 4 == 0) ? 1. : -1.; for (auto &s: shift) { if (s.first >= env().getNd()) @@ -147,7 +147,7 @@ void TShiftProbe::execute(void) } } envGetTmp(Field, acc); - acc = 1.; + acc = 1.; for (unsigned int i = 0; i < shift.size(); ++i) { if (shift[i].second == 0) @@ -159,7 +159,7 @@ void TShiftProbe::execute(void) acc *= Cshift(phi, shift[i].first, shift[i].second); } } - probe = real(sign*trace(acc)); + probe = sign*trace(acc); if (!par().output.empty()) { ShiftProbeResult r; diff --git a/extras/Hadrons/Modules/MScalarSUN/StochFreeField.hpp b/extras/Hadrons/Modules/MScalarSUN/StochFreeField.hpp index 0dcd0177..6800de53 100644 --- a/extras/Hadrons/Modules/MScalarSUN/StochFreeField.hpp +++ b/extras/Hadrons/Modules/MScalarSUN/StochFreeField.hpp @@ -116,7 +116,7 @@ void TStochFreeField::execute(void) SImpl::MomentumSpacePropagator(w, sqrt(par().m2)); w *= par().g/N; - w = sqrt(vol*real(w)); + w = sqrt(vol)*sqrt(w); } LOG(Message) << "Generating random momentum-space field" << std::endl; envGetTmp(Field, phift);