diff --git a/lib/qcd/action/ActionBase.h b/lib/qcd/action/ActionBase.h index df5ee50b..d0140101 100644 --- a/lib/qcd/action/ActionBase.h +++ b/lib/qcd/action/ActionBase.h @@ -7,16 +7,15 @@ template class Action { public: - virtual void init (const GaugeField &U, GridParallelRNG& pRNG) = 0; // + // Boundary conditions? // Heatbath? + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) = 0;// refresh pseudofermions virtual RealD S (const GaugeField &U) = 0; // evaluate the action virtual void deriv(const GaugeField &U,GaugeField & dSdU ) = 0; // evaluate the action derivative - virtual void refresh(const GaugeField & ) {}; // Default to no-op for actions with no internal fields - // Boundary conditions? - // Heatbath? virtual ~Action() {}; }; // Could derive PseudoFermion action with a PF field, FermionField, and a Grid; implement refresh +/* template class PseudoFermionAction : public Action { public: @@ -32,5 +31,28 @@ class PseudoFermionAction : public Action { }; }; +*/ + +template struct ActionLevel{ +public: + + typedef Action* ActPtr; // now force the same colours as the rest of the code + + int multiplier; + + std::vector actions; + + ActionLevel(int mul = 1) : multiplier(mul) { + assert (mul > 0); + }; + + void push_back(ActPtr ptr){ + actions.push_back(ptr); + } +}; + +template using ActionSet = std::vector >; + + }} #endif diff --git a/lib/qcd/action/gauge/WilsonGaugeAction.h b/lib/qcd/action/gauge/WilsonGaugeAction.h index 7c492927..16cef0c0 100644 --- a/lib/qcd/action/gauge/WilsonGaugeAction.h +++ b/lib/qcd/action/gauge/WilsonGaugeAction.h @@ -18,7 +18,7 @@ namespace Grid{ public: WilsonGaugeAction(RealD b):beta(b){}; - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) {}; + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) {}; // noop as no pseudoferms virtual RealD S(const GaugeField &U) { RealD plaq = WilsonLoops::avgPlaquette(U); diff --git a/lib/qcd/action/pseudofermion/OneFlavourEvenOddRational.h b/lib/qcd/action/pseudofermion/OneFlavourEvenOddRational.h index beb3abc1..d257bd9e 100644 --- a/lib/qcd/action/pseudofermion/OneFlavourEvenOddRational.h +++ b/lib/qcd/action/pseudofermion/OneFlavourEvenOddRational.h @@ -61,7 +61,7 @@ namespace Grid{ PowerNegQuarter.Init(remez,param.tolerance,true); }; - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // P(phi) = e^{- phi^dag (MpcdagMpc)^-1/2 phi} // = e^{- phi^dag (MpcdagMpc)^-1/4 (MpcdagMpc)^-1/4 phi} diff --git a/lib/qcd/action/pseudofermion/OneFlavourEvenOddRationalRatio.h b/lib/qcd/action/pseudofermion/OneFlavourEvenOddRationalRatio.h index f8bfe9cd..15366944 100644 --- a/lib/qcd/action/pseudofermion/OneFlavourEvenOddRationalRatio.h +++ b/lib/qcd/action/pseudofermion/OneFlavourEvenOddRationalRatio.h @@ -61,7 +61,7 @@ namespace Grid{ PowerNegQuarter.Init(remez,param.tolerance,true); }; - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // S_f = chi^dag* P(V^dag*V)/Q(V^dag*V)* N(M^dag*M)/D(M^dag*M)* P(V^dag*V)/Q(V^dag*V)* chi // diff --git a/lib/qcd/action/pseudofermion/OneFlavourRational.h b/lib/qcd/action/pseudofermion/OneFlavourRational.h index e7596065..0c6ee41a 100644 --- a/lib/qcd/action/pseudofermion/OneFlavourRational.h +++ b/lib/qcd/action/pseudofermion/OneFlavourRational.h @@ -57,7 +57,7 @@ namespace Grid{ PowerNegQuarter.Init(remez,param.tolerance,true); }; - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // P(phi) = e^{- phi^dag (MdagM)^-1/2 phi} // = e^{- phi^dag (MdagM)^-1/4 (MdagM)^-1/4 phi} diff --git a/lib/qcd/action/pseudofermion/OneFlavourRationalRatio.h b/lib/qcd/action/pseudofermion/OneFlavourRationalRatio.h index 1144af17..9e65c773 100644 --- a/lib/qcd/action/pseudofermion/OneFlavourRationalRatio.h +++ b/lib/qcd/action/pseudofermion/OneFlavourRationalRatio.h @@ -55,7 +55,7 @@ namespace Grid{ PowerNegQuarter.Init(remez,param.tolerance,true); }; - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // S_f = chi^dag* P(V^dag*V)/Q(V^dag*V)* N(M^dag*M)/D(M^dag*M)* P(V^dag*V)/Q(V^dag*V)* chi // diff --git a/lib/qcd/action/pseudofermion/TwoFlavour.h b/lib/qcd/action/pseudofermion/TwoFlavour.h index db907260..9e26b25b 100644 --- a/lib/qcd/action/pseudofermion/TwoFlavour.h +++ b/lib/qcd/action/pseudofermion/TwoFlavour.h @@ -35,7 +35,7 @@ namespace Grid{ ////////////////////////////////////////////////////////////////////////////////////// // Push the gauge field in to the dops. Assume any BC's and smearing already applied ////////////////////////////////////////////////////////////////////////////////////// - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // P(phi) = e^{- phi^dag (MdagM)^-1 phi} // Phi = Mdag eta diff --git a/lib/qcd/action/pseudofermion/TwoFlavourEvenOdd.h b/lib/qcd/action/pseudofermion/TwoFlavourEvenOdd.h index 3b06a792..3ed7fdb4 100644 --- a/lib/qcd/action/pseudofermion/TwoFlavourEvenOdd.h +++ b/lib/qcd/action/pseudofermion/TwoFlavourEvenOdd.h @@ -44,7 +44,7 @@ namespace Grid{ ////////////////////////////////////////////////////////////////////////////////////// // Push the gauge field in to the dops. Assume any BC's and smearing already applied ////////////////////////////////////////////////////////////////////////////////////// - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // P(phi) = e^{- phi^dag (MpcdagMpc)^-1 phi} // Phi = McpDag eta diff --git a/lib/qcd/action/pseudofermion/TwoFlavourEvenOddRatio.h b/lib/qcd/action/pseudofermion/TwoFlavourEvenOddRatio.h index 563249d1..b9e8187a 100644 --- a/lib/qcd/action/pseudofermion/TwoFlavourEvenOddRatio.h +++ b/lib/qcd/action/pseudofermion/TwoFlavourEvenOddRatio.h @@ -40,7 +40,7 @@ namespace Grid{ conformable(_NumOp.GaugeRedBlackGrid(), _DenOp.GaugeRedBlackGrid()); }; - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // P(phi) = e^{- phi^dag Vpc (MpcdagMpc)^-1 Vpcdag phi} // diff --git a/lib/qcd/action/pseudofermion/TwoFlavourRatio.h b/lib/qcd/action/pseudofermion/TwoFlavourRatio.h index da15e629..b1e8eab8 100644 --- a/lib/qcd/action/pseudofermion/TwoFlavourRatio.h +++ b/lib/qcd/action/pseudofermion/TwoFlavourRatio.h @@ -28,7 +28,7 @@ namespace Grid{ OperatorFunction & AS ) : NumOp(_NumOp), DenOp(_DenOp), DerivativeSolver(DS), ActionSolver(AS), Phi(_NumOp.FermionGrid()) {}; - virtual void init(const GaugeField &U, GridParallelRNG& pRNG) { + virtual void refresh(const GaugeField &U, GridParallelRNG& pRNG) { // P(phi) = e^{- phi^dag V (MdagM)^-1 Vdag phi} // diff --git a/lib/qcd/hmc/HMC.h b/lib/qcd/hmc/HMC.h index e2e4f376..84b355fa 100644 --- a/lib/qcd/hmc/HMC.h +++ b/lib/qcd/hmc/HMC.h @@ -28,7 +28,7 @@ namespace Grid{ }; // template - template + template class HybridMonteCarlo { private: @@ -36,7 +36,7 @@ namespace Grid{ GridSerialRNG &sRNG; // Fixme: need a RNG management strategy. GridParallelRNG &pRNG; // Fixme: need a RNG management strategy. - typedef Integrator IntegratorType; + IntegratorType &TheIntegrator; ///////////////////////////////////////////////////////// @@ -69,7 +69,7 @@ namespace Grid{ ///////////////////////////////////////////////////////// RealD evolve_step(GaugeField& U){ - TheIntegrator.init(U); // set U and initialize P and phi's + TheIntegrator.refresh(U,pRNG); // set U and initialize P and phi's RealD H0 = TheIntegrator.S(U); // initial state action diff --git a/lib/qcd/hmc/integrators/Integrator.h b/lib/qcd/hmc/integrators/Integrator.h index 56d83727..0e278fc4 100644 --- a/lib/qcd/hmc/integrators/Integrator.h +++ b/lib/qcd/hmc/integrators/Integrator.h @@ -24,9 +24,9 @@ namespace Grid{ RealD trajL; // trajectory length RealD stepsize; - IntegratorParameters(int Nexp_, - int MDsteps_, - RealD trajL_): + IntegratorParameters(int MDsteps_, + RealD trajL_=1.0, + int Nexp_=12): Nexp(Nexp_), MDsteps(MDsteps_), trajL(trajL_), @@ -37,54 +37,36 @@ namespace Grid{ }; - // Should match any legal (SU(n)) gauge field - // Need to use this template to match Ncol to pass to SU class - template void generate_momenta(Lattice< iVector< iScalar< iMatrix >, Nd> > & P,GridParallelRNG& pRNG){ - typedef Lattice< iScalar< iScalar< iMatrix > > > GaugeLinkField; - GaugeLinkField Pmu(P._grid); - Pmu = zero; - for(int mu=0;mu::GaussianLieAlgebraMatrix(pRNG, Pmu); - PokeIndex(P, Pmu, mu); - } - } - - template struct ActionLevel{ - public: - - typedef Action* ActPtr; // now force the same colours as the rest of the code - - int multiplier; - - std::vector actions; - - ActionLevel(int mul = 1) : multiplier(mul) { - assert (mul > 0); - }; - - void push_back(ActPtr ptr){ - actions.push_back(ptr); - } - }; - - template using ActionSet = std::vector >; - /*! @brief Class for Molecular Dynamics management */ - template - class Integrator : public Algorithm { + template + class Integrator { - private: + protected: + + typedef IntegratorParameters ParameterType; IntegratorParameters Params; - GridParallelRNG pRNG; // Store this somewhere more sensible and pass as reference const ActionSet as; int levels; // double t_U; // Track time passing on each level and for U and for P std::vector t_P; // - GaugeField P; // is a pointer really necessary? + GaugeField P; + + // Should match any legal (SU(n)) gauge field + // Need to use this template to match Ncol to pass to SU class + template void generate_momenta(Lattice< iVector< iScalar< iMatrix >, Nd> > & P,GridParallelRNG& pRNG){ + typedef Lattice< iScalar< iScalar< iMatrix > > > GaugeLinkField; + GaugeLinkField Pmu(P._grid); + Pmu = zero; + for(int mu=0;mu::GaussianLieAlgebraMatrix(pRNG, Pmu); + PokeIndex(P, Pmu, mu); + } + } + //ObserverList observers; // not yet // typedef std::vector ObserverList; @@ -125,10 +107,14 @@ namespace Grid{ } - friend void Algorithm::step (GaugeField& U, + /* + friend void Algorithm::step (GaugeField& U, int level, std::vector& clock, Integrator* Integ); + */ + + virtual void step (GaugeField& U,int level, std::vector& clock)=0; public: @@ -138,25 +124,21 @@ namespace Grid{ Params(Par), as(Aset), P(grid), - pRNG(grid), levels(Aset.size()) { - std::vector seeds({1,2,3,4,5}); // Fixme; Pass it the RNG as a ref - pRNG.SeedFixedIntegers(seeds); - t_P.resize(levels,0.0); t_U=0.0; }; - ~Integrator(){} + virtual ~Integrator(){} //Initialization of momenta and actions - void init(GaugeField& U){ - std::cout<init(U, pRNG); + as[level].actions.at(actionID)->refresh(U, pRNG); } } } @@ -197,12 +179,14 @@ namespace Grid{ // All the clock stuff is removed if we pass first, last to the step down the way for(int step=0; step< Params.MDsteps; ++step){ // MD step - Algorithm::step(U,0,clock, (this)); + int first_step = (step==0); + int last_step = (step==Params.MDsteps-1); + this->step(U,0,clock); } // Check the clocks all match for(int level=0; level class LeapFrog { + template class LeapFrog : public Integrator { public: typedef LeapFrog Algorithm; - void step (GaugeField& U, - int level, std::vector& clock, - Integrator * Integ){ + LeapFrog(GridBase* grid, + IntegratorParameters Par, + ActionSet & Aset): Integrator(grid,Par,Aset) {}; + + void step (GaugeField& U, int level, std::vector& clock){ + + int fl = this->as.size() -1; // level : current level // fl : final level // eps : current step size - int fl = Integ->as.size() -1; - // Get current level step size - int fin = 2*Integ->Params.MDsteps; - for(int l=0; l<=level; ++l) fin*= Integ->as[l].multiplier; + int fin = 2*this->Params.MDsteps; + for(int l=0; l<=level; ++l) fin*= this->as[l].multiplier; fin = fin-1; - double eps = Integ->Params.stepsize; - for(int l=0; l<=level; ++l) eps/= Integ->as[l].multiplier; + double eps = this->Params.stepsize; + for(int l=0; l<=level; ++l) eps/= this->as[l].multiplier; - int multiplier = Integ->as[level].multiplier; + int multiplier = this->as[level].multiplier; for(int e=0; eupdate_P(U, level,eps/2.0); ++clock[level]; + this->update_P(U, level,eps/2.0); ++clock[level]; } if(level == fl){ // lowest level - Integ->update_U(U, eps); + this->update_U(U, eps); }else{ // recursive function call - step(U, level+1,clock, Integ); + this->step(U, level+1,clock); } last_step = (clock[level]==fin); int mm = last_step ? 1 : 2; - Integ->update_P(U, level,mm*eps/2.0); + this->update_P(U, level,mm*eps/2.0); clock[level]+=mm; } } }; - template class MinimumNorm2 { - public: - typedef MinimumNorm2 Algorithm; - + template class MinimumNorm2 : public Integrator { private: const double lambda = 0.1931833275037836; + public: - void step (GaugeField& U, - int level, std::vector& clock, - Integrator* Integ){ + MinimumNorm2(GridBase* grid, + IntegratorParameters Par, + ActionSet & Aset): Integrator(grid,Par,Aset) {}; + + void step (GaugeField& U, int level, std::vector& clock){ // level : current level // fl : final level // eps : current step size - int fl = Integ->as.size() -1; + int fl = this->as.size() -1; - double eps = Integ->Params.stepsize; + double eps = this->Params.stepsize; - for(int l=0; l<=level; ++l) eps/= 2.0*Integ->as[l].multiplier; + for(int l=0; l<=level; ++l) eps/= 2.0*this->as[l].multiplier; // which is final half step - int fin = Integ->as[0].multiplier; - for(int l=1; l<=level; ++l) fin*= 2.0*Integ->as[l].multiplier; - fin = 3*Integ->Params.MDsteps*fin -1; + int fin = this->as[0].multiplier; + for(int l=1; l<=level; ++l) fin*= 2.0*this->as[l].multiplier; + fin = 3*this->Params.MDsteps*fin -1; - int multiplier = Integ->as[level].multiplier; + int multiplier = this->as[level].multiplier; for(int e=0; eupdate_P(U,level,lambda*eps); ++clock[level]; + this->update_P(U,level,lambda*eps); ++clock[level]; } if(level == fl){ // lowest level - Integ->update_U(U,0.5*eps); + this->update_U(U,0.5*eps); }else{ // recursive function call - step(U,level+1,clock, Integ); + this->step(U,level+1,clock); } - Integ->update_P(U,level,(1.0-2.0*lambda)*eps); ++clock[level]; + this->update_P(U,level,(1.0-2.0*lambda)*eps); ++clock[level]; if(level == fl){ // lowest level - Integ->update_U(U,0.5*eps); + this->update_U(U,0.5*eps); }else{ // recursive function call - step(U,level+1,clock, Integ); + this->step(U,level+1,clock); } last_step = (clock[level]==fin); int mm = (last_step) ? 1 : 2; - Integ->update_P(U,level,lambda*eps*mm); clock[level]+=mm; + this->update_P(U,level,lambda*eps*mm); clock[level]+=mm; } } diff --git a/tests/Test_hmc_EODWFRatio.cc b/tests/Test_hmc_EODWFRatio.cc index e6a5cbb2..881f0a54 100644 --- a/tests/Test_hmc_EODWFRatio.cc +++ b/tests/Test_hmc_EODWFRatio.cc @@ -47,14 +47,13 @@ int main (int argc, char ** argv) FullSet.push_back(Level1); // Create integrator - // typedef LeapFrog IntegratorAlgorithm;// change here to change the algorithm - typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(UGrid,MDpar, FullSet); + typedef MinimumNorm2 IntegratorType;// change here to change the algorithm + IntegratorParameters MDpar(20); + IntegratorType MDynamics(UGrid,MDpar, FullSet); // Create HMC HMCparameters HMCpar; - HybridMonteCarlo HMC(HMCpar, MDynamics,sRNG,pRNG); + HybridMonteCarlo HMC(HMCpar, MDynamics,sRNG,pRNG); // Run it HMC.evolve(U); diff --git a/tests/Test_hmc_EOWilsonFermionGauge.cc b/tests/Test_hmc_EOWilsonFermionGauge.cc index 0d20e207..fc996984 100644 --- a/tests/Test_hmc_EOWilsonFermionGauge.cc +++ b/tests/Test_hmc_EOWilsonFermionGauge.cc @@ -52,8 +52,8 @@ int main (int argc, char ** argv) // typedef LeapFrog IntegratorAlgorithm;// change here to change the algorithm // IntegratorParameters MDpar(12,40,1.0); typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,10,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(10); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_hmc_EOWilsonRatio.cc b/tests/Test_hmc_EOWilsonRatio.cc index 9f47770d..2f492ea4 100644 --- a/tests/Test_hmc_EOWilsonRatio.cc +++ b/tests/Test_hmc_EOWilsonRatio.cc @@ -51,8 +51,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm // typedef LeapFrog IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_hmc_WilsonFermionGauge.cc b/tests/Test_hmc_WilsonFermionGauge.cc index 93412536..4ad18c50 100644 --- a/tests/Test_hmc_WilsonFermionGauge.cc +++ b/tests/Test_hmc_WilsonFermionGauge.cc @@ -52,8 +52,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm // typedef LeapFrog IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_hmc_WilsonGauge.cc b/tests/Test_hmc_WilsonGauge.cc index 448b11cd..2e1a61e0 100644 --- a/tests/Test_hmc_WilsonGauge.cc +++ b/tests/Test_hmc_WilsonGauge.cc @@ -47,8 +47,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to modify the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_hmc_WilsonRatio.cc b/tests/Test_hmc_WilsonRatio.cc index 16bee903..eabbd8ab 100644 --- a/tests/Test_hmc_WilsonRatio.cc +++ b/tests/Test_hmc_WilsonRatio.cc @@ -51,8 +51,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm // typedef LeapFrog IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_rhmc_EOWilson1p1.cc b/tests/Test_rhmc_EOWilson1p1.cc index 86f2bfe2..9ff86d65 100644 --- a/tests/Test_rhmc_EOWilson1p1.cc +++ b/tests/Test_rhmc_EOWilson1p1.cc @@ -52,8 +52,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_rhmc_EOWilsonRatio.cc b/tests/Test_rhmc_EOWilsonRatio.cc index c28d30a7..3c1a58a7 100644 --- a/tests/Test_rhmc_EOWilsonRatio.cc +++ b/tests/Test_rhmc_EOWilsonRatio.cc @@ -54,8 +54,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm // typedef LeapFrog IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_rhmc_Wilson1p1.cc b/tests/Test_rhmc_Wilson1p1.cc index bee457f6..891d3ae5 100644 --- a/tests/Test_rhmc_Wilson1p1.cc +++ b/tests/Test_rhmc_Wilson1p1.cc @@ -52,8 +52,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar; diff --git a/tests/Test_rhmc_WilsonRatio.cc b/tests/Test_rhmc_WilsonRatio.cc index a47d1eaa..543557e3 100644 --- a/tests/Test_rhmc_WilsonRatio.cc +++ b/tests/Test_rhmc_WilsonRatio.cc @@ -54,8 +54,8 @@ int main (int argc, char ** argv) // Create integrator typedef MinimumNorm2 IntegratorAlgorithm;// change here to change the algorithm // typedef LeapFrog IntegratorAlgorithm;// change here to change the algorithm - IntegratorParameters MDpar(12,20,1.0); - Integrator MDynamics(&Fine,MDpar, FullSet); + IntegratorParameters MDpar(20); + IntegratorAlgorithm MDynamics(&Fine,MDpar, FullSet); // Create HMC HMCparameters HMCpar;