6#define HMC_MOMENTUM_DENOMINATOR (2.0)
8#define HMC_MOMENTUM_DENOMINATOR (1.0)
18 template <
typename vtype>
71 for(
int mu = 0; mu < nd; mu++)
76 kmu = 2.*
sin(.5*twoPiL*kmu);
83 const Field &momKernel)
89 inFT = inFT*momKernel;
103 #ifdef USE_FFT_ACCELERATION
105 #error "USE_FFT_ACCELERATION is defined but not FFT_MASS"
109template <
class S,
unsigned int N>
115 template <
typename vtype>
117 template <
typename vtype>
135 for (
int mu = 0; mu < grid->
Nd(); mu++)
139 kmu = 2.0 *
sin(0.5 * twoPiL * kmu);
157#ifndef USE_FFT_ACCELERATION
184#ifndef USE_FFT_ACCELERATION
188 double total_time = (t1-t0)/1e6;
189 std::cout <<
GridLogIntegrator <<
"Total time for updating field (s) : " << total_time << std::endl;
204 static bool first_call =
true;
220#ifndef USE_FFT_ACCELERATION
AcceleratorVector< int, MaxDims > Coordinate
GaugeGroup< ncolour, GroupName::SU > SU
#define HMC_MOMENTUM_DENOMINATOR
accelerator_inline Grid_simd2< S, V > trace(const Grid_simd2< S, V > &arg)
accelerator_inline Grid_simd< S, V > sin(const Grid_simd< S, V > &r)
accelerator_inline Grid_simd< S, V > sqrt(const Grid_simd< S, V > &r)
void LatticeCoordinate(Lattice< iobj > &l, int mu)
Lattice< vobj > real(const Lattice< vobj > &lhs)
Lattice< vobj > adj(const Lattice< vobj > &lhs)
vobj::scalar_object sum(const vobj *arg, Integer osites)
void gaussian(GridParallelRNG &rng, Lattice< vobj > &l)
GridLogger GridLogIntegrator(1, "Integrator", GridLogColours, "BLUE")
#define NAMESPACE_BEGIN(A)
ScalarImplTypes< vRealF > ScalarImplF
ScalarAdjMatrixImplTypes< vComplex, Nc > ScalarAdjImplR
ScalarAdjMatrixImplTypes< vComplexD, Nc > ScalarAdjImplD
ScalarAdjMatrixImplTypes< vComplexD, Colours > ScalarNxNAdjImplD
ScalarAdjMatrixImplTypes< vComplexF, Nc > ScalarAdjImplF
ScalarImplTypes< vComplex > ScalarImplCR
ScalarImplTypes< vRealD > ScalarImplD
ScalarImplTypes< vComplexF > ScalarImplCF
ScalarAdjMatrixImplTypes< vComplex, Colours > ScalarNxNAdjImplR
ScalarImplTypes< vComplexD > ScalarImplCD
ScalarImplTypes< vReal > ScalarImplR
ScalarAdjMatrixImplTypes< vComplexF, Colours > ScalarNxNAdjImplF
std::complex< Real > Complex
accelerator_inline iScalar< vtype > Ta(const iScalar< vtype > &r)
accelerator_inline std::enable_if<!isGridTensor< T >::value, T >::type TensorRemove(T arg)
static INTERNAL_PRECISION U
unsigned long _ndimension
static const int backward
void FFT_all_dim(Lattice< vobj > &result, const Lattice< vobj > &source, int sign)
static void GaussianFundamentalLieAlgebraMatrix(GridParallelRNG &pRNG, LatticeMatrix &out, Real scale=1.0)
const Coordinate & FullDimensions(void)
GridBase * Grid(void) const
static void update_field(Field &P, Field &U, double ep)
iImplComplex< Simd > SiteComplex
Lattice< SiteField > Field
static void Project(Field &U)
static RealD FieldSquareNorm(Field &U)
Lattice< SiteComplex > ComplexField
static void generate_momenta(Field &P, GridSerialRNG &sRNG, GridParallelRNG &pRNG)
iScalar< iScalar< iScalar< vtype > > > iImplComplex
static void TepidConfiguration(GridParallelRNG &pRNG, Field &U)
iScalar< iScalar< iMatrix< vtype, N > > > iImplField
static void ColdConfiguration(GridParallelRNG &pRNG, Field &U)
static void HotConfiguration(GridParallelRNG &pRNG, Field &U)
static void MomentumSpacePropagator(ComplexField &out, RealD m)
static Field projectForce(Field &P)
iImplField< Simd > SiteField
static void MomentaSquare(ComplexField &out)
Lattice< SiteField > Field
static Field projectForce(Field &P)
static void update_field(Field &P, Field &U, double ep)
static void ColdConfiguration(GridParallelRNG &pRNG, Field &U)
static void TepidConfiguration(GridParallelRNG &pRNG, Field &U)
static void generate_momenta(Field &P, GridSerialRNG &sRNG, GridParallelRNG &pRNG)
static void MomentumSpacePropagator(Field &out, RealD m)
iImplField< Simd > SiteField
static RealD FieldSquareNorm(Field &U)
static void Project(Field &U)
iScalar< iScalar< iScalar< vtype > > > iImplField
static void FreePropagator(const Field &in, Field &out, const Field &momKernel)
static void HotConfiguration(GridParallelRNG &pRNG, Field &U)
static void FreePropagator(const Field &in, Field &out, RealD m)