diff --git a/tests/forces/Test_ddhmc_boundary.cc b/tests/forces/Test_ddhmc_boundary.cc index 9c7e0dc4..f182593f 100644 --- a/tests/forces/Test_ddhmc_boundary.cc +++ b/tests/forces/Test_ddhmc_boundary.cc @@ -63,7 +63,7 @@ void ForceTest(Action &action,LatticeGaugeField & U,MomentumF Filter.applyFilter(P); SU::HotConfiguration(RNG4,U); - + action.refresh(U,sRNG,RNG4); std::cout << GridLogMessage << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"< DirichletFermion; Coordinate Block({16,16,16,8}); + // Double versions + typedef WilsonImplD FimplD; + typedef DirichletFermionOperator DirichletFermion; DomainWallFermionR DdwfPeriodic(U,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); DomainWallFermionR Ddwf(U,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); DirichletFermion DdwfDirichlet(Ddwf,Block); @@ -158,6 +166,17 @@ int main (int argc, char ** argv) DomainWallFermionR PV(U,*FGrid,*FrbGrid,*UGrid,*UrbGrid,1.0,M5); DirichletFermion PVDirichlet(PV,Block); + // Single versions + typedef WilsonImplF FimplF; + typedef DirichletFermionOperator DirichletFermionF; + DomainWallFermionF DdwfPeriodicF(UF,*FGridF,*FrbGridF,*UGridF,*UrbGridF,mass,M5); + DomainWallFermionF DdwfF(UF,*FGridF,*FrbGridF,*UGridF,*UrbGridF,mass,M5); + DirichletFermionF DdwfDirichletF(DdwfF,Block); + + DomainWallFermionF PVPeriodicF(UF,*FGridF,*FrbGridF,*UGridF,*UrbGridF,1.0,M5); + DomainWallFermionF PVF(UF,*FGridF,*FrbGridF,*UGridF,*UrbGridF,1.0,M5); + DirichletFermionF PVDirichletF(PVF,Block); + double StoppingCondition = 1.0e-12; double MaxCGIterations = 10000; ConjugateGradient CG(StoppingCondition,MaxCGIterations); @@ -166,46 +185,44 @@ int main (int argc, char ** argv) DirichletFilter FilterDDHMC(Block); //////////////////// Two Flavour Determinant Ratio /////////////////////////////// - typedef WilsonImplR FermionImplPolicy; - TwoFlavourRatioPseudoFermionAction Nf2(PVPeriodic, DdwfPeriodic,CG,CG); + TwoFlavourRatioPseudoFermionAction Nf2(PVPeriodic, DdwfPeriodic,CG,CG); ForceTest(Nf2,U,FilterNone); //////////////////// Two Flavour Determinant Ratio /////////////////////////////// - typedef WilsonImplR FermionImplPolicy; - TwoFlavourRatioPseudoFermionAction Nf2deg(DdwfPeriodic, DdwfPeriodic,CG,CG); + TwoFlavourRatioPseudoFermionAction Nf2deg(DdwfPeriodic, DdwfPeriodic,CG,CG); std::cout << "*** DEGENERATE ***\n"; ForceTest(Nf2deg,U,FilterNone); //////////////////// Two Flavour Determinant force test Even Odd /////////////////////////////// - TwoFlavourEvenOddRatioPseudoFermionAction Nf2eo(PVPeriodic, DdwfPeriodic,CG,CG); + TwoFlavourEvenOddRatioPseudoFermionAction Nf2eo(PVPeriodic, DdwfPeriodic,CG,CG); ForceTest(Nf2eo,U,FilterNone); //////////////////// DDHMC Boundary force /////////////////////////////// - SchurFactoredFermionOperator - SchurDwf(DdwfPeriodic, - DdwfDirichlet, - CG,Block); + SchurFactoredFermionOperator + SchurDwf(DdwfPeriodic,DdwfPeriodicF, + DdwfDirichlet,DdwfDirichletF, + Block); - SchurFactoredFermionOperator - SchurPV(PVPeriodic, - PVDirichlet, - CG,Block); + SchurFactoredFermionOperator + SchurPV(PVPeriodic,PVPeriodicF, + PVDirichlet,PVDirichletF, + Block); std::cout << "*** NUMERATOR ***\n"; - DomainDecomposedBoundaryTwoFlavourPseudoFermion DBPFA(SchurDwf,CG,CG); + DomainDecomposedBoundaryTwoFlavourPseudoFermion DBPFA(SchurDwf); ForceTest(DBPFA,U,FilterDDHMC); std::cout << "*** RATIO ***\n"; - DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion DBPFRA(SchurPV,SchurDwf,CG,CG); + DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion DBPFRA(SchurPV,SchurDwf); ForceTest(DBPFRA,U,FilterDDHMC); std::cout << "*** DEGENERATE ***\n"; - DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion DBPFRAdeg(SchurDwf,SchurDwf,CG,CG); + DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion DBPFRAdeg(SchurDwf,SchurDwf); ForceTest(DBPFRAdeg,U,FilterDDHMC); - DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion DBPFBA(SchurPV,CG,CG); + DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion DBPFBA(SchurPV); ForceTest(DBPFBA,U,FilterDDHMC); Grid_finalize();