From ed03bfd5555e490753acd9e20b356e8cf20898cb Mon Sep 17 00:00:00 2001 From: Alessandro Lupo Date: Tue, 12 Oct 2021 12:16:47 +0100 Subject: [PATCH] first hmc --- .../Test_hmc_Sp_WilsonFundFermionGauge.cc | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 tests/sp2n/Test_hmc_Sp_WilsonFundFermionGauge.cc diff --git a/tests/sp2n/Test_hmc_Sp_WilsonFundFermionGauge.cc b/tests/sp2n/Test_hmc_Sp_WilsonFundFermionGauge.cc new file mode 100644 index 00000000..d845c98f --- /dev/null +++ b/tests/sp2n/Test_hmc_Sp_WilsonFundFermionGauge.cc @@ -0,0 +1,78 @@ +#include + +int main(int argc, char **argv) { + using namespace Grid; + + typedef Representations< SpFundamentalRepresentation > TheRepresentations; + + Grid_init(&argc, &argv); + + typedef GenericSp2nHMCRunnerHirep HMCWrapper; // ok + typedef SpWilsonImplR FermionImplPolicy; // ok + typedef SpWilsonFermionR FermionAction; // ok + typedef typename FermionAction::FermionField FermionField; // ok? + + //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + + HMCWrapper TheHMC; + + TheHMC.Resources.AddFourDimGrid("gauge"); + + // Checkpointer definition + CheckpointerParameters CPparams; + CPparams.config_prefix = "ckpoint_lat"; + CPparams.rng_prefix = "ckpoint_rng"; + CPparams.saveInterval = 5; + CPparams.format = "IEEE64BIG"; + + TheHMC.Resources.LoadNerscCheckpointer(CPparams); + + RNGModuleParameters RNGpar; + RNGpar.serial_seeds = "1 2 3 4 5"; + RNGpar.parallel_seeds = "6 7 8 9 10"; + TheHMC.Resources.SetRNGSeeds(RNGpar); + + // Construct observables + typedef PlaquetteMod PlaqObs; + TheHMC.Resources.AddObservable(); + + RealD beta = 2.25 ; + + SymplWilsonGaugeActionR Waction(beta); + + auto GridPtr = TheHMC.Resources.GetCartesian(); + auto GridRBPtr = TheHMC.Resources.GetRBCartesian(); + + SpFundamentalRepresentation::LatticeField U(GridPtr); + //LatticeGaugeField U(GridPtr); + + RealD mass = -0.95; + + FermionAction FermOp(U, *GridPtr, *GridRBPtr, mass); + + + ConjugateGradient CG(1.0e-8, 2000, false); + + TwoFlavourPseudoFermionAction Nf2(FermOp, CG, CG); + + Nf2.is_smeared = false; + + ActionLevel Level1(1); + Level1.push_back(&Nf2); + + ActionLevel Level2(4); + Level2.push_back(&Waction); + + TheHMC.TheAction.push_back(Level1); + TheHMC.TheAction.push_back(Level2); + + TheHMC.Parameters.MD.MDsteps = 20; + TheHMC.Parameters.MD.trajL = 1.0; + + TheHMC.ReadCommandLine(argc, argv); + TheHMC.Run(); + + + Grid_finalize(); +} +