1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-17 15:27:06 +01:00

Several updates

This commit is contained in:
Peter Boyle
2022-02-14 17:29:41 +01:00
parent 3355ceea9f
commit 53e1b00cde
4 changed files with 52 additions and 42 deletions

View File

@ -56,12 +56,12 @@ int main(int argc, char **argv) {
MD.trajL = 1.0;
HMCparameters HMCparams;
HMCparams.StartTrajectory = 0;
HMCparams.StartTrajectory = 17;
HMCparams.Trajectories = 200;
HMCparams.NoMetropolisUntil= 20;
HMCparams.NoMetropolisUntil= 0;
// "[HotStart, ColdStart, TepidStart, CheckpointStart]\n";
HMCparams.StartingType =std::string("ColdStart");
// HMCparams.StartingType =std::string("CheckpointStart");
// HMCparams.StartingType =std::string("ColdStart");
HMCparams.StartingType =std::string("CheckpointStart");
HMCparams.MD = MD;
HMCWrapper TheHMC(HMCparams);
@ -94,7 +94,7 @@ int main(int argc, char **argv) {
RealD b = 1.0;
RealD c = 0.0;
std::vector<Real> hasenbusch({ 0.1 });
std::vector<Real> hasenbusch({ 0.1, 0.4, 0.7 });
auto GridPtr = TheHMC.Resources.GetCartesian();
auto GridRBPtr = TheHMC.Resources.GetRBCartesian();

View File

@ -51,7 +51,7 @@ public:
{};
virtual void refreshRestrict(FermionField &eta)
{
Domains.ProjectDomain(eta,1);
Domains.ProjectDomain(eta,0);
DumpSliceNorm("refresh Restrict eta",eta);
};
};
@ -97,20 +97,29 @@ int main(int argc, char **argv)
// typedef GenericHMCRunner<ForceGradient> HMCWrapper;
// MD.name = std::string("Force Gradient");
typedef GenericHMCRunner<MinimumNorm2> HMCWrapper;
/*
MD.name = std::string("MinimumNorm2");
MD.MDsteps = 4; // dH = 0.08
// MD.MDsteps = 3; // dH = 0.8
MD.trajL = 1.0;
*/
HMCparameters HMCparams;
HMCparams.StartTrajectory = 48;
HMCparams.Trajectories = 20;
{
XmlReader HMCrd("HMCparameters.xml");
read(HMCrd,"HMCparameters",HMCparams);
std::cout << GridLogMessage<< HMCparams <<std::endl;
}
HMCWrapper TheHMC(HMCparams);
/*
HMCparams.StartTrajectory = 66;
HMCparams.Trajectories = 200;
HMCparams.NoMetropolisUntil= 0;
// "[HotStart, ColdStart, TepidStart, CheckpointStart]\n";
// HMCparams.StartingType =std::string("ColdStart");
// HMCparams.StartingType =std::string("ColdStart");
HMCparams.StartingType =std::string("CheckpointStart");
HMCparams.MD = MD;
HMCWrapper TheHMC(HMCparams);
*/
// Grid from the command line arguments --grid and --mpi
TheHMC.Resources.AddFourDimGrid("gauge"); // use default simd lanes decomposition
@ -177,8 +186,10 @@ int main(int argc, char **argv)
double ActionStoppingCondition = 1e-10;
double DerivativeStoppingCondition = 1e-10;
// double BoundaryDerivativeStoppingCondition = 1e-6;
double BoundaryDerivativeStoppingCondition = 1e-10;
// double BoundaryDerivativeStoppingCondition = 1e-10; decent acceptance
double BoundaryDerivativeStoppingCondition = 1e-7; // decent acceptance
// double BoundaryDerivativeStoppingCondition = 1e-6; // bit bigger not huge
// double BoundaryDerivativeStoppingCondition = 1e-5; // Large dH poor acceptance
double MaxCGIterations = 30000;
////////////////////////////////////
@ -239,8 +250,8 @@ int main(int argc, char **argv)
std::vector<LinearOperatorD *> LinOpD;
std::vector<LinearOperatorF *> LinOpF;
const int MX_inner = 1000;
const RealD MX_tol = 1.0e-8;
int MX_inner = 1000;
RealD MX_tol = 1.0e-5;
for(int h=0;h<n_hasenbusch+1;h++){
@ -335,7 +346,9 @@ int main(int argc, char **argv)
DirichletHasenD,DirichletHasenF,
Block);
#if 1
std::cout << GridLogMessage << " Boundary NO ratio "<< std::endl;
MX_tol = 1.0e-5;
Level1.push_back(new
DomainDecomposedBoundaryTwoFlavourPseudoFermion<FimplD,FimplF>
(BoundaryDenominator,
@ -344,13 +357,13 @@ int main(int argc, char **argv)
DomainDecomposedBoundaryTwoFlavourBosonPseudoFermion<FimplD,FimplF>
(BoundaryNumerator,
BoundaryDerivativeStoppingCondition,ActionStoppingCondition,MX_tol));
/*
#else
Level1.push_back(new
DomainDecomposedBoundaryTwoFlavourRatioPseudoFermion<FimplD,FimplF>
(BoundaryNumerator,
BoundaryDenominator,
BoundaryDerivativeStoppingCondition,ActionStoppingCondition));
*/
#endif
/////////////////////////////////////////////////////////////
// Gauge action

View File

@ -59,20 +59,20 @@ int main(int argc, char **argv) {
IntegratorParameters MD;
// typedef GenericHMCRunner<LeapFrog> HMCWrapper;
// MD.name = std::string("Leap Frog");
// typedef GenericHMCRunner<ForceGradient> HMCWrapper;
// MD.name = std::string("Force Gradient");
typedef GenericHMCRunner<MinimumNorm2> HMCWrapper;
MD.name = std::string("MinimumNorm2");
MD.MDsteps = 12;
typedef GenericHMCRunner<ForceGradient> HMCWrapper;
MD.name = std::string("Force Gradient");
//typedef GenericHMCRunner<MinimumNorm2> HMCWrapper;
//MD.name = std::string("MinimumNorm2");
MD.MDsteps = 15;
MD.trajL = 1.0;
HMCparameters HMCparams;
HMCparams.StartTrajectory = 211;
HMCparams.StartTrajectory = 0;
HMCparams.Trajectories = 1000;
HMCparams.NoMetropolisUntil= 0;
HMCparams.NoMetropolisUntil= 10;
// "[HotStart, ColdStart, TepidStart, CheckpointStart]\n";
// HMCparams.StartingType =std::string("ColdStart");
HMCparams.StartingType =std::string("CheckpointStart");
HMCparams.StartingType =std::string("ColdStart");
//HMCparams.StartingType =std::string("CheckpointStart");
HMCparams.MD = MD;
HMCWrapper TheHMC(HMCparams);
@ -97,16 +97,16 @@ int main(int argc, char **argv) {
TheHMC.Resources.AddObservable<PlaqObs>();
//////////////////////////////////////////////
const int Ls = 16;
const int Ls = 24;
Real beta = 2.13;
Real light_mass = 0.01;
Real strange_mass = 0.04;
Real light_mass = 0.005;
Real strange_mass = 0.0362;
Real pv_mass = 1.0;
RealD M5 = 1.8;
RealD b = 1.0;
RealD c = 0.0;
RealD b = 1.5;
RealD c = 0.5;
std::vector<Real> hasenbusch({ 0.1, 0.3, 0.6 });
std::vector<Real> hasenbusch({ 0.02, 0.2, 0.6 });
auto GridPtr = TheHMC.Resources.GetCartesian();
auto GridRBPtr = TheHMC.Resources.GetRBCartesian();