mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-13 01:05:36 +00:00
Momentum rescaling
This commit is contained in:
parent
a104115c7d
commit
ea5b3ed8a2
@ -105,7 +105,7 @@ class Integrator {
|
|||||||
GF force = Rep.RtoFundamentalProject(forceR); // Ta for the fundamental rep
|
GF force = Rep.RtoFundamentalProject(forceR); // Ta for the fundamental rep
|
||||||
Real force_abs = std::sqrt(norm2(force)/(U._grid->gSites()));
|
Real force_abs = std::sqrt(norm2(force)/(U._grid->gSites()));
|
||||||
std::cout << GridLogIntegrator << "Hirep Force average: " << force_abs << std::endl;
|
std::cout << GridLogIntegrator << "Hirep Force average: " << force_abs << std::endl;
|
||||||
Mom -= force * ep ;
|
Mom -= force * ep* HMC_MOMENTUM_DENOMINATOR;;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} update_P_hireps{};
|
} update_P_hireps{};
|
||||||
@ -129,7 +129,7 @@ class Integrator {
|
|||||||
double end_force = usecond();
|
double end_force = usecond();
|
||||||
Real force_abs = std::sqrt(norm2(force)/U._grid->gSites());
|
Real force_abs = std::sqrt(norm2(force)/U._grid->gSites());
|
||||||
std::cout << GridLogIntegrator << "["<<level<<"]["<<a<<"] Force average: " << force_abs << std::endl;
|
std::cout << GridLogIntegrator << "["<<level<<"]["<<a<<"] Force average: " << force_abs << std::endl;
|
||||||
Mom -= force * ep;
|
Mom -= force * ep* HMC_MOMENTUM_DENOMINATOR;;
|
||||||
double end_full = usecond();
|
double end_full = usecond();
|
||||||
double time_full = (end_full - start_full) / 1e3;
|
double time_full = (end_full - start_full) / 1e3;
|
||||||
double time_force = (end_force - start_force) / 1e3;
|
double time_force = (end_force - start_force) / 1e3;
|
||||||
@ -268,17 +268,17 @@ class Integrator {
|
|||||||
// Calculate action
|
// Calculate action
|
||||||
RealD S(Field& U) { // here also U not used
|
RealD S(Field& U) { // here also U not used
|
||||||
|
|
||||||
RealD H = - FieldImplementation::FieldSquareNorm(P); // - trace (P*P)
|
|
||||||
|
RealD H = - FieldImplementation::FieldSquareNorm(P)/HMC_MOMENTUM_DENOMINATOR; // - trace (P*P)/denom
|
||||||
|
std::cout << " Momentum hamiltonian "<< -H<<std::endl;
|
||||||
RealD Hterm;
|
RealD Hterm;
|
||||||
std::cout << GridLogMessage << "Momentum action H_p = " << H << "\n";
|
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
for (int level = 0; level < as.size(); ++level) {
|
for (int level = 0; level < as.size(); ++level) {
|
||||||
for (int actionID = 0; actionID < as[level].actions.size(); ++actionID) {
|
for (int actionID = 0; actionID < as[level].actions.size(); ++actionID) {
|
||||||
// get gauge field from the SmearingPolicy and
|
// get gauge field from the SmearingPolicy and
|
||||||
// based on the boolean is_smeared in actionID
|
// based on the boolean is_smeared in actionID
|
||||||
Field& Us =
|
Field& Us = Smearer.get_U(as[level].actions.at(actionID)->is_smeared);
|
||||||
Smearer.get_U(as[level].actions.at(actionID)->is_smeared);
|
|
||||||
Hterm = as[level].actions.at(actionID)->S(Us);
|
Hterm = as[level].actions.at(actionID)->S(Us);
|
||||||
std::cout << GridLogMessage << "S Level " << level << " term "
|
std::cout << GridLogMessage << "S Level " << level << " term "
|
||||||
<< actionID << " H = " << Hterm << std::endl;
|
<< actionID << " H = " << Hterm << std::endl;
|
||||||
|
Loading…
Reference in New Issue
Block a user